java.security.AccessControlException: доступ запрещен (чтение java.util.PropertyPermission http.agent) - PullRequest
2 голосов
/ 23 марта 2010

У меня есть не подписанный Java-апплет, взаимодействующий с тем же хостом.Каждый раз, когда я нажимаю на элемент на моей странице, апплет (это апплет третьей части, над которым у меня нет контроля) должен загружать данные из URL.Я должен сказать, потому что для некоторых файлов я получаю

java.security.AccessControlException: доступ запрещен (чтение java.util.PropertyPermission http.agent)

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

Я также обнаружил, что в некоторых случаях файлы, которые ранее возвращали ошибку, теперь загружаются и продолжают загружаться, поэтомукажется, что кеш как-то задействован.

Кто-нибудь из вас имеет представление о том, что здесь происходит?Поведение кажется абсолютно случайным, и у меня нет способа выполнить отладку этой вещи.Примечание. Я использовал этот апплет для доступа ко многим другим «одиночным» файлам, и он никогда не доставлял мне никаких проблем.Единственное очевидное отличие, которое у меня есть, заключается в том, что теперь я делаю это «по требованию» через событие javascript.

В чем может быть причина, в java апплета или где-либо еще?

Ответы [ 3 ]

2 голосов
/ 10 мая 2011

Это ошибка в Java VM. http://bugs.sun.com/view_bug.do?bug_id=6593830 Эта проблема возникает только с апплетом. Java Web Start, кажется, не затронут.

1 голос
/ 23 марта 2010

Некоторые обработчики URL http и https используют http.agent для установки заголовка User-Agent.

Правильный способ справиться с этим - сделать копию этого конкретного системного свойства доступной независимо от того, предоставлено разрешение или нет (как и для ряда других). Однако, что было сделано, это добавить его к разрешениям, предоставляемым апплетам и приложениям JNLP. Это означает, что если какой-либо код загружается через другой механизм (например, вызов из JavaScript через LiveConnect), он не будет иметь разрешений и может произойти сбой. Если элемент уже кэширован, то нет необходимости писать HTTP-заголовок, и, следовательно, свойство не нужно читать.

0 голосов
/ 23 марта 2010

Апплет сломан.Он пытается получить доступ к значению свойства, которое правила безопасности «песочницы» говорят, что оно не может.

Сообщите об этом поставщику апплета и попросите исправить ошибку или обойти ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...