gpt4 book ai didi

localhost 的 java.net.SocketPermission 在 Java 1.8 上不起作用,但对于您的本地 IP 却可以

转载 作者:行者123 更新时间:2023-12-01 22:58:13 25 4
gpt4 key购买 nike

我对 Java 8 策略有一个看似奇怪的问题。

我在 Java 7 更新 51 中使用了以下权限,并且运行良好:

grant { 
(...)
java.net.SocketPermission "localhost:1024-", "accept,connect,listen,resolve";
};

但现在我正在检查 Java 8 支持,并且收到此异常:

Exception in thread "RMI TCP Connection(idle)" java.security.AccessControlException: access denied ("java.net.SocketPermission" "10.1.17.112:55703" "accept,resolve")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkAccept(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.checkAcceptPermission(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.checkAcceptPermission(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

运行 IPConfig 显示 10.1.17.122 是我本地计算机的 IP:

   Ethernet adapter Local Area Connection:

IPv4 Address. . . . . . . . . . . : 10.1.17.112
Subnet Mask . . . . . . . . . . . : 255.255.252.0
Default Gateway . . . . . . . . . : 10.1.19.254

如果我将权限更改为 127.0.0.1,它也不起作用:

grant { 
(...)
java.net.SocketPermission "127.0.0.1:1024-", "accept,connect,listen,resolve";
};

但是,如果我输入我的 IP 地址,一切都会再次正常工作:

grant { 
(...)
java.net.SocketPermission "10.1.17.112:1024-", "accept,connect,listen,resolve";
};

有什么想法吗?

编辑:对我来说,这似乎是 Java 8 中的一个错误,有人能证实这一点吗?

最佳答案

“本地主机”是 127.0.0.1。 “10.1.17.112”完全是另一回事。你很幸运它曾经有效过。

关于localhost 的 java.net.SocketPermission 在 Java 1.8 上不起作用,但对于您的本地 IP 却可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23731680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com