Установка разрешений SecurityManager из кода Java

Я запускаю апплет, который делает подключение Socket, я получаю исключение java.security.AccessControlException: access denied (java.net.SocketPermission xxx.xxx.xxx.xxx:80 connect,resolve) Я гуглил и обнаружил, что это из-за менеджера безопасности Java, поэтому я добавил

grant{    
    java.net.SocketPermission xxx.xxx.xxx.xxx:80 "connect";
    java.net.SocketPermission xxx.xxx.xxx.xxx:80 "resolve";
}

Внутри java.policy в C:\Program Files\Java\jre6\lib\security с использованием policytool.exe успешно работали

Но я хотел, чтобы это было сделано программно, поэтому я сделал следующее

AccessController.doPrivileged(new PrivilegedExceptionAction() { public Object run() throws Exception {                                                                         
       socketchannel1 = SocketChannel.open();
       socketchannel1.connect( new InetSocketAddress( xxx.xxx.xxx.xxx, 80 ) );
return null;} });}

здесь я говорю securityManager не трогать код внутри запуска, это также успешно, но теперь я хочу знать, есть ли какой-либо другой метод, с помощью которого я могу специально добавить SocketPermission для соединения, решить с помощью Policy.setpolicy или что-то вроде setpermission или изменить над собой. заранее спасибо

0 ответов

Другие вопросы по тегам