Установка разрешений 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 или изменить над собой. заранее спасибо