Я работаю над проектом искусственного интеллекта, который является логической игрой и нацеливает двух пользователей, соединяющихся с сервером в сети, кто действует как Администратор, и затем начните играть один за другим.
Для создания соединений у меня есть серверный код, который просто слушает на localhost:8000 и присваивает значения команды клиентам, когда они прибывают. После соединения клиенты делают свое перемещение под управлением Администратора.
Вопрос состоит в том, что, когда я пытаюсь поместить свой код для работы в браузере, он перестал работать со следующей ошибкой:
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8000 connect,resolve)
Даже при том, что я создал свою собственную политику, сначала предоставив только право доступа Сокета кодовой базе моей папки проекта (file:///home/xxx/projects/-
), после того, как это не работало, я дал все разрешения от всей кодовой базы. Я пытался поместить свой файл политики и в корневой каталог и в тот же каталог, где мой код апплета находится.
Цените любые подсказки, спасибо.
по умолчанию, я думаю, он ищет файл с именем .java.policy в вашем домашнем каталоге
вы можете проверить файл /lib/security/java.security, чтобы увидеть, где он ищет. проверьте ключи с именем policy.url.n
Поместите файл политики на место JRE.
Например, мой файл политики находится в C: \ Program Files \ Java \ jre1.6.0_01 \ lib \ security
Я настоятельно рекомендую соблюдать политику same-origin. Последствия для безопасности не всегда очевидны в лучшие времена. Кроме того, апплет со стандартными разрешениями имеет лучшее удобство использования и должен быть проще в обслуживании.