java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")

12,526

Solution 1

First, run the derby batch file sysinfo.bat to determine which JDK/JRE is being used to run it. If you are unable to pin point it, go to your computer's environment variables and check the value of JAVA_HOME .

Then go to that JDK/JRE's \jre\lib\security folder and add this:

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

Solution 2

From https://docs.oracle.com/cd/E18930_01/html/821-2418/beabx.html :

Each GlassFish Server domain has its own global J2SE policy file, located in domain-dir/config. The file is named server.policy.

Share:
12,526
sthor69
Author by

sthor69

Updated on June 13, 2022

Comments

  • sthor69
    sthor69 almost 2 years

    Again I have to face this error.

    Fri Sep 16 17:17:29 CEST 2016 : access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")
    java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "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.<init>(ServerSocket.java:237)
        at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.createServerSocket(Unknown Source)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.access$000(Unknown Source)
        at org.apache.derby.impl.drda.NetworkServerControlImpl$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(Unknown Source)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.executeWork(Unknown Source)
        at org.apache.derby.drda.NetworkServerControl.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.enterprise.admin.cli.optional.DerbyControl.invokeNetworkServerControl(DerbyControl.java:158)
        at com.sun.enterprise.admin.cli.optional.DerbyControl.main(DerbyControl.java:245)
    java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "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.<init>(ServerSocket.java:237)
        at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.createServerSocket(Unknown Source)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.access$000(Unknown Source)
        at org.apache.derby.impl.drda.NetworkServerControlImpl$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(Unknown Source)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.executeWork(Unknown Source)
        at org.apache.derby.drda.NetworkServerControl.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.enterprise.admin.cli.optional.DerbyControl.invokeNetworkServerControl(DerbyControl.java:158)
        at com.sun.enterprise.admin.cli.optional.DerbyControl.main(DerbyControl.java:245)
    

    This time I couldn't solve the issue editing the java.policy file.

    Result of java -version:

    openjdk version "1.8.0_91"
    OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14)
    OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
    

    I found java.policy files in

    /etc/java-8-openjdk/security
    /usr/java/jdk1.8.0_25/jre/lib/security
    

    both of them with the row:

    permission java.net.SocketPermission "localhost:1527", "listen,resolve";
    

    My machine is Linux 16.04.01 and the server is Glassfish4

    Are there other possible places where to edit java.policy file? Are there other possible causes?