Отказано в разрешении на регистрацию веб-приложения - PullRequest
4 голосов
/ 13 августа 2011

возможно ли использовать java.util.Logging и войти в файл в приложении java webstart?У меня есть следующий код регистрации:


 Handler fh = new FileHandler("myapp.log");
 Logger.getLogger(MyApp.class.getName()).addHandler(fh);

и я получил следующее исключение:


java.security.AccessControlException: access denied (java.util.logging.LoggingPermission control)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.util.logging.LogManager.checkAccess(Unknown Source)
    at java.util.logging.Handler.checkAccess(Unknown Source)
    at java.util.logging.FileHandler.(Unknown Source)
    at whoisapiclient.WhoisAPIClientApp.main(WhoisAPIClientApp.java:80)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.javaws.Launcher.executeApplication(Unknown Source)
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Ответы [ 2 ]

6 голосов
/ 13 августа 2011

Исключение контроля доступа говорит следующее:

"доступ запрещен (java.util.logging.LoggingPermission control)"

javadoc так как класс разрешений говорит следующее:

"В настоящее время существует только одно имя с именем LoggingPermission. Это" контроль ", и он дает возможность контролировать конфигурацию ведения журнала, например, добавляя или удаляяОбработчики, добавляя или удаляя Фильтры, или изменяя уровни ведения журнала."

То, что вы делаете, явно подпадает под разрешение" control ".

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


Кстати, если вам все-таки удалось обойти LoggingPermission("control"), вы столкнулись бы с другой проблемой доступа при открытии журналафайл.

Обе проблемы решаются путем подписания заявки.Затем у вас возникает проблема с тем, что пользователь должен принять / доверять вашему ключу подписи.Но это достаточно справедливо!Насколько песочница безопасности Java может сказать, что вы делаете, может потенциально повредить машину пользователя.

0 голосов
/ 13 августа 2011

Вы пытались указать абсолютный путь?Возможно, проблема в том, что у вас нет доступа к текущему рабочему каталогу самого приложения.

...