Указание удаленной базы кода для политики безопасности Java - PullRequest
0 голосов
/ 15 сентября 2010

У меня есть политика безопасности на стороне клиента, с утверждением, которое предоставляет разрешения. Я хочу иметь возможность указать его, чтобы предоставить набор разрешений только для сервера RMI. Например это работает:

grant{    
    //my permissions    
};

Но я не могу понять, как связать набор разрешений, чтобы они применялись к моей кодовой базе на сервере. На самом деле все, что угодно, если его привязать к серверу будет в порядке. Я пробовал:

grant codeBase "file://hostname/-"{    
    //my permissions   
};

С именем хоста, являющимся именем или IP-адресом машины, как с номером порта, так и без него. Но это не работает, равно как и использование http вместо файла. Если я правильно понимаю, что я прочитал до сих пор, дефис в конце должен применять разрешения ко всему, что находится на сервере. Кто-нибудь знает, что мне нужно сделать, чтобы заставить это работать?

Спасибо.

Вот кодовая база, указанная при запуске сервера:

-Djava.rmi.server.codebase=file://home/me/PageServer/build/classes/  pageserver.LoginService pageserver.PlannerService 

Ответы [ 2 ]

1 голос
/ 15 сентября 2010

Где местная JVM получает код, которому должны быть предоставлены разрешения?

Если он загружает код из базы кодов HTTP на сервере, вы можете использовать URL, начинающийся с «http:».

Если это локальный код, вы можете использовать URL-адрес, начинающийся с «file:» и заканчивающийся локальным путем.

Отказ от ответственности: я написал файлы безопасности для Jini, которая построена поверх RMI, и это было несколько лет. Извиняюсь за все, что я пропустил.

0 голосов
/ 12 октября 2010

Используйте JAR для базы кода и укажите именно HTTP-URL в файле .policy, который вы указали в -Djava.rmi.server.codebase.

...