| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Права на коннект к сокету |
| Автор: knave 16.12.2003, 22:07 |
| Пытаюсь создать сокет так: sock = new Socket("chat.iFriends.net", 8086); В результате получаю это: access denied (java.net.SocketPermission chat.iFriends.net resolve) access denied (java.net.SocketPermission chat.iFriends.net resolve) Кто нить может сказать вчем проблема |
| Автор: AntonSaburov 17.12.2003, 09:57 |
| А подробнее можно ? И больше кода привести Это у тебя обычное приложение ? Или апплет ? И каков класс эксепшена ? И полное сообщение об ошибке тоже надо. |
| Автор: knave 17.12.2003, 10:26 |
| Это аплет. Эта строчка заключена в try catch. Название класса исключения я непомню сейчас. Вообще это готовый аплет уже кем то сделанный ранее и он говорит что у него работает. А у меня вот нет. Там еще есть каталог Meta-inf или чтото в этом духе. внем файл в котором названием результирующего файла и какие то закриптованные строчки, короткие. Может в нем все дело |
| Автор: AntonSaburov 17.12.2003, 11:29 |
| Если апплет, то такое действительно вполне понятно. Закриптованные строчки - это подпись апплета, которая подтверждается сторонними провайдерами. Подпись апплета говорит о том, что этот апплет сделан тем-то и тем-то и если какие-то вредности он будет делать, то можно бить по голове производителя апплета. Но сам понимаешь, что производитель не заинтересован в таком. Но вот по поводу подписей апплета более подробно с примерами - я с ними не работал. Только теория. Можно конечно посмотреть, но это уже не прямо сейчас. |
| Автор: knave 17.12.2003, 14:34 |
| вот код того мета которое выдает ошибку выполнения Socket sock; ... try { sock = new Socket("chat.iFriends.net", 8086); } catch(Exception exception) { System.out.println(exception.getMessage()); sock = null; } |
| Автор: AntonSaburov 17.12.2003, 14:40 | ||
Да вообщем-то теперь это совсем необязательно. Явно дело в секьюрити, но более подробно на данный момент ответить не могу - не знаю. Но посмотрю. Может что-то накопаю. |
| Автор: Alone 17.12.2003, 14:43 |
| Я на эту тему тоже пока однозначного решения не нашел, но как workarround сгодится прописывание в java.policy строки: grant { permission java.security.AllPermission; }; |
| Автор: knave 17.12.2003, 14:50 |
| а где должен быть этот java.policy |
| Автор: Alone 17.12.2003, 14:57 |
| Linux: $HOME/.java.policy Win: c:\windows\System\Java\lib\security\java.policy |
| Автор: AntonSaburov 17.12.2003, 15:59 | ||
Скорее там где JRE установлен - это обычно Program Files\Java\j2re<версия>\lib\security\java.policy |
| Автор: knave 17.12.2003, 16:04 |
| Спасибо, попробую и там и там |
| Автор: Alone 17.12.2003, 17:54 |
| Насчет винды могу и ошибиться, так как уже 5 лет её в глаза не видел |
| Автор: daniel (yerevan| javaxp@ya 18.12.2003, 11:37 |
| esli eto applet to socket moget podkluchitsya tolko k serveru s kotorogo on zagruzilsya applet. getCodeBase() // v etom rode |
| Автор: AntonSaburov 18.12.2003, 13:11 | ||
Не совсем так. Такое поведение было организовано в самой первой JAVA - 1.1. При выходе JAVA 2 неудобство таких ограничений было учтено. Теперь каждый клиент может сам решать, кому можно, а кому нельзя. В случае с подписанными апплетами алгоритм работы такой: Клиент при получении апплета проверяет подлинность подписи в каком-либо хранилище ключей. В интеренет несколько таких сайтов, где вы можете проверить подлинность подписи. Алгоритм основан на том, что подпись + характеристики документа (файла) дают уникальную комбинацию и исправить (подправить) подписанный файл уже практически невозможно. Таким образом гарантируется целостность подписанного файла. Кроме этого на самом клиенте в файле java.policy прописывается кому можно доверять, а кому нельзя. Кстати делать так, как посоветовал Alone реально опасно. Чужим апплетам можно все. |
| Автор: Alone 18.12.2003, 14:50 |
| Я в курсе. Это я предложил как временное решение проблемы, дабы разрешить апплету работать. А реально, я и сам хотел бы уточнить как эта вся процедура подписи апплета делается. |
| Автор: Unregistered 21.12.2003, 19:49 |
| Вариант с java.policy прошел |