Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RMI политики, не понял идею 
:(
    Опции темы
Fieral
Дата 5.2.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 10.12.2007

Репутация: нет
Всего: 1



Программа вываливает:
Exception occurred: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)

Судя по гуглу необходимо разрешить вызов удалёных методов.

В качестве решений предлагаются различные варианты как то:
1) написать свой SecurityManager - который по сути наследует старый, но только методы поправлены так чтоб ему было абсолютно побарабану на то кто и что делает - а он просто всё разрешает.
2) Написать файл политики который нужно вызывать из командной строки каждый раз когда стартует предложение.

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

Второй вариант я вообще не понимаю как использовать: В голову приходит идея каждый раз, когда приложение собирается открыть новый RMI сервер, оно должно писать на диск файл политики, и дёргать из консоли соответствующий класс указывая java -Djava.security.manager -Djava.security.policy=policy-file MyClass. Но даже я понимаю что это какой-то бред.

Может мне кто-нибудь объяснить как вывесив методы для удалённого вызова разрешить их вызывать?


--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
chand0s
Дата 6.2.2009, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 19.2.2007

Репутация: нет
Всего: 3



Цитата(Fieral @ 5.2.2009,  13:43)
Второй вариант я вообще не понимаю как использовать: В голову приходит идея каждый раз, когда приложение собирается открыть новый RMI сервер, оно должно писать на диск файл политики, и дёргать из консоли соответствующий класс указывая java -Djava.security.manager -Djava.security.policy=policy-file MyClass. Но даже я понимаю что это какой-то бред.

Не надо ни на какой диск ничего писать, вы просто запускаете свое приложение с указанием файла политики, который ему (приложению) надо использовать, т.е. создаете файл с содержимым 

Код

grant { 
    permission java.security.AllPermission;
};


и указываете этот файл при старте java-машины, примерно так:
Код

java -Djava.security.policy=<путь к этому файлу>


Кажется так.
PM MAIL   Вверх
Fieral
Дата 10.2.2009, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 10.12.2007

Репутация: нет
Всего: 1



Касательно 
Код

grant { 
    permission java.security.AllPermission;
};

Тут http://patriot.net/~tvalesky/easyrmi.html написано:
When you run the client or the server, pass the location of your new security policy file in as an argument. This allows you to run under a new policy without having to modify your system policy files. Here is a .policy file that grants all permissions to everybody. DO NOT install this policy file in a production system.

К томуже не понятно:
1) как java -Djava.security.policy=<путь к этому файлу> будет попадать в строку запуска Java машины.
2) Лично мне кажется логичным что если в процессе выполнения моей программы я собираюсь открыть порт 7000 то я и выписываю разрешение политику на этот порт, а остальные порты не трогаю. А если вешать permission java.security.AllPermission; то не понятно на зачем вообщи нужны секъюрити-политики, если я "открываю ворота на распашку"? (Ну и конечно если порт 7000 уже кем-то занят, то программа пытаеся открыть 7001 и выписывает разешение на него и т.д...)

Это сообщение отредактировал(а) Fieral - 10.2.2009, 15:38
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
Fieral
Дата 3.4.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 10.12.2007

Репутация: нет
Всего: 1



актуально
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
ivg
Дата 3.4.2009, 16:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 3
Всего: 81



Научились запускать "Java машину"? smile 
PM MAIL   Вверх
Fieral
Дата 4.5.2009, 14:07 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 10.12.2007

Репутация: нет
Всего: 1



допустим.
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
Fieral
Дата 6.5.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 10.12.2007

Репутация: нет
Всего: 1



Особенно интересен данный вопрос в контексте вот этой мысли:
http://forum.vingrad.ru/index.php?showtopi...t&p=1845165
Цитата

Я пишу коммерческое ПО под нашей лицензией. С закрытыми исходниками. Условия лицензии One-Jar соблюдены.
А для пользователя нужно предоставить массу удобств. И программа работать будут не только в Linux, точнее она будет работать в основном в Windows и редко на других платформах. Создавать архив нельзя, потому что нельзя распаковываться. Если бы ты знал, какие бывают чудные пользователи!!! Небольшая трудность и они откажутся от ПО. Поэтому должно быть всё максимально удобно. Если поддерживается клик мышью по jar-файлу с автоматическим запуском, то так и должно быть. А если нет, то надо на сайте максимально понятно указать как запустить программу. Чтобы это было просто. Вот тебе всё понятно. А пользователю может быть не понятно. Он может вообще только что комп увидел и ему просто надо потыкать мышкой и получить результат. Так что должно быть всё просто.


Кто будет на машине юзера 
Цитата(ivg @  3.4.2009,  16:59 Найти цитируемый пост)
запускать "Java машину"?


--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.