Указание удаленной кодовой базы для политики безопасности Java
-
02-10-2019 - |
Вопрос
У меня есть политика безопасности клиента с заявлением, которое дает разрешения. Я хочу иметь возможность указать его, чтобы предоставить набор разрешений только для сервера RMI. Например, это работает:
grant{
//my permissions
};
Но я не могу выяснить, как связать набор разрешений, чтобы они применялись к моей кодовой базе на сервере. На самом деле все, пока его привязан к серверу, будет в порядке. Я пытался:
grant codeBase "file://hostname/-"{
//my permissions
};
С именем хоста быть именем или IP машины, с помощью и W / O номер порта. Но это не работает, ни использует HTTP вместо файла. Если я понимаю, что я прочитал так далеко правильно, дефис в конце должен применять разрешения на что-либо, расположенное на сервере. Кто-нибудь знает, что мне нужно сделать, чтобы заставить это работать?
Спасибо.
Воюет кодовую базу, указанную при запуске сервера:
-Djava.rmi.server.codebase=file://home/me/PageServer/build/classes/ pageserver.LoginService pageserver.PlannerService
Решение
Где находится местный JVM код, который должен быть предоставлен разрешениями?
Если он загружает код из HTTP CodeBase на сервере, вы можете использовать URL, начиная с «http:».
Если это локальный код, вы можете использовать URL, начиная с «файла:» и заканчивая локальным путем.
Отказ от ответственности: Я написал файлы безопасности для Jini, который построен ATOP RMI, и это было несколько лет. Извиняюсь за все, что я пропустил.
Другие советы
Используйте банку для кодовой базы и укажите ровно HTTP URL в файле .policy, который вы указали в -djava.rmi.server.codebase.