Java 8(1.8.0_162,32位)访问被拒绝(“ java.lang.RuntimePermission”“ modifyThreadGroup”)

时间:2018-12-13 08:40:46

标签: java 32-bit

即使就地设置了“授予所有权限”,我也会得到意外的安全性访问被拒绝

我正在Windows Server 2016 Standard操作平台上运行“ JRE版本1.8.0_162 32位”。

我有此政策文件:

grant {
  permission java.security.AllPermission;
};

出于调试目的,我使用以下选项运行JVM:“ -Djava.security.debug = access,failure”。

从日志中我得到:

...
access: access allowed ("java.util.PropertyPermission" "jsse.SSLEngine.acceptLargeFragments" "read")
access: access denied ("java.lang.RuntimePermission" "modifyThreadGroup")
java.lang.Exception: Stack trace
    at java.lang.Thread.dumpStack(Thread.java:1336)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:462)
    at java.security.AccessController.checkPermission(AccessController.java:884)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkAccess(SecurityManager.java:729)
    at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
    at java.lang.Thread.init(Thread.java:394)
    at java.lang.Thread.init(Thread.java:349)
    at java.lang.Thread.<init>(Thread.java:511)
    at sun.security.ssl.SSLSocketImpl$NotifyHandshakeThread.<init>(SSLSocketImpl.java:2692)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1104)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
    at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:757)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at java.io.DataOutputStream.flush(DataOutputStream.java:123)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:229)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:338)
    at sun.rmi.transport.DGCImpl_Stub.clean(DGCImpl_Stub.java:75)
    at sun.rmi.transport.DGCClient$EndpointEntry.makeCleanCalls(DGCClient.java:700)
    at sun.rmi.transport.DGCClient$EndpointEntry.access$1700(DGCClient.java:192)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread$1.run(DGCClient.java:610)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread$1.run(DGCClient.java:603)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:603)
    at java.lang.Thread.run(Thread.java:748)
access: access allowed ("java.security.SecurityPermission" "getPolicy")
access: domain that failed ProtectionDomain  null
 null
 <no principals>
 java.security.Permissions@126be6b (
 ("java.net.SocketPermission" "*" "connect,resolve")
)
...

无论如何,在同一日志中,“ 访问被拒绝”之前的几行,可以看到多行,如下所示:

access: access allowed ("java.lang.RuntimePermission" "modifyThreadGroup")

我已经尝试了其他Java 8更新,例如192、101和31,结果是相同的。 但是,对于Java 8 update 25,该问题永远不会发生。 (此外,对于Java 7,也没有问题。)

有人可以帮助我吗?

0 个答案:

没有答案