У меня проблема с разрешениями при использовании Java Web Start.
Я получаю следующее исключение из-за Apache commons-logging (версия 1.1.1):
Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getClassLoader")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at com.sun.javaws.security.JavaWebStartSecurity.checkPermission(Unknown Source)
at java.lang.ClassLoader.checkClassLoaderPermission(Unknown Source)
at java.lang.ClassLoader.getParent(Unknown Source)
at org.apache.commons.logging.impl.LogFactoryImpl.getLowestClassLoader(LogFactoryImpl.java:1327)
at org.apache.commons.logging.impl.LogFactoryImpl.getBaseClassLoader(LogFactoryImpl.java:1247)
at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1048)
at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:914)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
В файле JNLP указано следующее:
<security>
<all-permissions/>
</security>
Я добавил это в файл jav aws .policy из JRE (Oracle 1.8.0_162), который я использую для запуска JWS:
grant {
permission java.security.AllPermission;
};
Я также добавил следующее к файлу MANIFEST.MF в JAR-клиенте, который вызывает ошибку:
Permissions: all-permissions
Я видел, что эта проблема в общем журнале была решена позже версии, но я не могу легко обновить общинную регистрацию, поскольку это косвенная зависимость, используемая другими библиотеками. Я бы предпочел сохранить их в их текущих версиях, чтобы избежать риска регрессии в максимально возможной степени.
Сам код, по-видимому, не проблематичен c, так как клиент работает так, как задумано в IDE , Эта ошибка появляется только при запуске соответствующего JAR-файла из файла JNLP с Java Web Start.
Что можно сделать, чтобы решить эту проблему с разрешениями?
Спасибо.