【问题标题】:access denied ("java.net.SocketPermission"...) with Java 8 [duplicate]使用 Java 8 拒绝访问(“java.net.SocketPermission”...)
【发布时间】:2014-10-21 14:36:35
【问题描述】:

我在一个简单的 HTML 页面上插入了一个 Java Applet:

<applet width="100%" height="100%" id="StatApplet" code="stat.applet.StatApplet.class" archive="stat.jar">
    <PARAM NAME="_cx" VALUE="25903">
    <PARAM NAME="_cy" VALUE="19738">
    <param name="frame" value="0">
    <param name="module" value="1">
    <param name="count" value="4">
    <param name="image" value="RSload.gif">
    <param name="boxbgcolor" value="#ffffff">
    <param name="boxmessage" value="Monitor loading">
</applet>

小程序使用有效的 GlobalSign 证书进行签名。 JAR 和 HTML 文件放置在嵌入式 Web 服务器上,地址为 http://192.168.0.91/Beck IPC SC143。小程序打开一个到加载它的服务器的套接字连接:

try {
    final int CONNECT_ETHERNET_TIMEOUT_MS = 5000;
    final int PORT_STATUSMON = 945;

    String host = getCodeBase().getHost();  // get host address
    if (host.equals("")) {
        host = getParameter("host");    // to run applet from eclipse
    }
    InetAddress inetAddress = InetAddress.getByName(host);

    Socket ethernetSocket = new Socket();
    ethernetSocket.connect(new InetSocketAddress(inetAddress, PORT_STATUSMON), CONNECT_ETHERNET_TIMEOUT_MS);

    ethernetSocket.close();
} catch (Exception e) {
    e.printStackTrace();
}

在 Java 7 Update 45 之前一切正常,但在将 VM 升级到 Java 8 Update 25 后出现安全异常:

java.security.AccessControlException: access denied ("java.net.SocketPermission" "192.168.0.91:945" "connect,resolve")

connect() 处抛出异常。小程序可以与加载它的主机进行套接字连接,这不是真的吗?

【问题讨论】:

  • 感谢 Holger 将我指向该线程(之前没有看到它)。

标签: java security sockets applet


【解决方案1】:

确保提供您的主机名applet.getDocumentBase().getHost()

如果您尝试连接到 127.0.0.1 但您从 192.168.x.x 或 10.0.0.x 提供服务,那么您将收到 AccessControlException

你应该使用相关的:

new Socket( applet. getDocumentBase (). getHost (), 4444 )

【讨论】:

  • 我正在连接到 192.168.0.91,由 getCodeBase().getHost() 返回,getDocumentBase().getHost() 也是如此。
猜你喜欢
  • 2015-08-13
  • 1970-01-01
  • 2012-11-27
  • 2015-02-23
  • 2015-06-30
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多