java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8081 connect,resolve) - 主要原因

And*_*oni 5 java security applet

导致报告异常的主要原因是什么?

相同的可信签名小程序(Digicert 证书),在某些 PC 上运行良好,在其他 PC 上不起作用。当我尝试通过附件流时发生异常URLConnection

在它不起作用的地方,我解决了

grant { 
    permission java.security.AllPermission; 
};
Run Code Online (Sandbox Code Playgroud)

java.policy
但我想避免更新每台 PC。

可能是port(8081)问题吗?我应该调查什么?

Vic*_*kor 0

为您的小程序编写自定义内容SecurityManager可以解决您的问题。设置您自己的SecurityManager将授予您的小程序的所有权限。

class customSecurityManager extends SecurityManager {

        SecurityManager original;

        customSecurityManager(SecurityManager original) {
            this.original = original;
        }

        /**
         * Deny permission to exit the VM.
         */
        public void checkExit(int status) {
            //throw(new SecurityException("Not allowed"));
        }

        /**
         * Allow this security manager to be replaced, if fact, allow pretty
         * much everything.
         */
        public void checkPermission(Permission perm) {
        }

        public SecurityManager getOriginalSecurityManager() {
            return original;
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在为您的小程序设置此安全管理器

public void init() {
   customSecurityManager cSM = new customSecurityManager(System.getSecurityManager());
   System.setSecurityManager(cSM);
}
Run Code Online (Sandbox Code Playgroud)

注意System.setSecurityManager(null) 的影响