java.security.AccessControlException: access denied (“java.net.SocketPermission” “localhost:2222” “listen,resolve”)

341
18 декабря 2017, 14:03
System.setSecurityManager(new SecurityManager());
        final int port = 2222;
        try {
            Registry registry = LocateRegistry.getRegistry(PORT);
            StubRealize stub = new StubRealize();
            Stub serverStub = (Stub) UnicastRemoteObject.exportObject(stub, PORT);
            registry.rebind("Stub", serverStub);
        } catch (RemoteException e) {
            e.printStackTrace();
        }
        System.out.println("Server started...");

Пытаюсь запустить rmi сервер с политикой:

grant {
    permission java.net.SocketPermission "localhost:2222", "listen, resolve";
}

Путь указан верно. Выдает ошибку:

java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:2222" "listen,resolve") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.security.AccessController.checkPermission(AccessController.java:884) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at java.lang.SecurityManager.checkListen(SecurityManager.java:1131) at java.net.ServerSocket.bind(ServerSocket.java:374) at java.net.ServerSocket.(ServerSocket.java:237) at java.net.ServerSocket.(ServerSocket.java:128) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createServerSocket(RMIDirectSocketFactory.java:45) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createServerSocket(RMIMasterSocketFactory.java:345) at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:666) at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:330) at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:249) at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411) at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:236) at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:383) at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:320)

VM параметры:

-Djava.security.policy=src\main\resources\server.policy;

Спасибо.

Решение:

System.setProperty("java.security.policy", "src\\main\\resources\\server.policy");
Answer 1

Попробуйте создать рядом файл unsecure.policy со следующим содержимым

grant {
    permission java.security.AllPermission;
};

и указать его JVM следующим образом

java -Djava.security.policy==src\main\resources\unsecure.policy ...

(обратите внимания на два знака равенства)

READ ALSO
Ввод. Selenium Webdriver

Ввод. Selenium Webdriver

Нужно сымитировать нажатие клавишиНе ввод по средствам SendKeys, а именно открыть страницу и сымитировать нажатие кнопки на клавиатуре

239
Задача Java Swing AWT Geomtry, rectangle, Ellipse

Задача Java Swing AWT Geomtry, rectangle, Ellipse

Прямоугольная область задана координатами x1 y1, x2 y2 концов ее диагоналиОбласть разбита на прямоугольники так, что одна сторона разбита на n, а другая...

216
Подключение к серверу с помощью Servlet и jetty

Подключение к серверу с помощью Servlet и jetty

Не получается подключиться к ServletДальше ошибка - HTTP ERROR 503 Подскажите в чем проблема?

200
Повернуть отдельный спрайт Android

Повернуть отдельный спрайт Android

Всем привет, я делаю игру в качестве опыта и у меня возникла потребность максимально оптимально произвести поворот спрайтаЯ знаю как нарисовать...

231