【问题标题】:Applet is not able open socket connection in JRE 8 was working in JRE 7 and below [duplicate]Applet 无法在 JRE 8 中打开套接字连接在 JRE 7 及更低版本中工作 [重复]
【发布时间】:2014-10-22 12:26:31
【问题描述】:

它在 JDK 1.7 或更早版本上运行良好,但是一旦我们使用 JDK 8 进行测试,就会出现以下异常

Exception in thread "cth" java.security.AccessControlException: access denied              ("java.net.SocketPermission" "IP:PORT" "connect,resolve")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin2.applet.SecurityManagerHelper.checkConnectHelper(Unknown Source)
at sun.plugin2.applet.AWTAppletSecurityManager.checkConnect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at iyp.simplegameapplet.d.f.a(Unknown Source)
at iyp.b.a.b$c.run(Unknown Source)

我们有一个小程序,它将打开一个套接字连接与服务器套接字应用程序进行通信这里是用于打开套接字通信的小程序代码

Socket sock = new Socket();
InputStream is;
OutputStream os;
try {
    sock.connect(serverAddr, timeoutMs);
} catch(SocketTimeoutException ex) {
    return false;
}
is = sock.getInputStream();
os = sock.getOutputStream();

我们正在使用签名的小程序。 任何帮助将不胜感激...

【问题讨论】:

    标签: sockets applet java-8 accesscontrolexception


    【解决方案1】:

    顶部有一条线索,线程“cth”java.security.AccessControlException 中的异常:访问被拒绝。您发布的代码片段很好,但我们需要更详细地查看它以找出拒绝访问的原因。

    【讨论】:

    • 感谢您的更新,例外是理解套接字由于权限而无法与服务器通信,但我在 serversocket 上使用了具有完整权限的 java.policy 文件。但我仍然遇到了这个问题,并且在 JRE 7 或更早版本上运行良好。
    • 您是否检查过您尝试与之通信的服务器/客户端是否允许此连接?
    • 我用 java 客户端程序测试,这工作正常,只有 Applet 有问题。可能是 Applet 安全需要使用完整权限,我们尝试使用 MANIFEST.MF with Permissions: all-permissions 以及 applet 的对象参数。
    猜你喜欢
    • 2012-11-24
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多