【问题标题】:Java security access control exceptionJava 安全访问控制异常
【发布时间】:2012-07-11 18:19:33
【问题描述】:

我正在尝试执行这个程序, http://java.sun.com/developer/technicalArticles/ThirdParty/WebCrawler/WebCrawler.java 在我参考此页面后,程序编译没有任何错误, http://www.velocityreviews.com/forums/t146972-web-crawler.html

但是在使用命令“appletviewer WebCrawler.html”执行时,我得到了这个异常..

Exception in thread "Thread-4" 
java.security.AccessControlException:access denied(java.net.SocketPermission java.sun.com:80 connect,resolve)

at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)

at java.security.AccessController.checkPermission(AccessController.java:546)

at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)

at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)

at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)

at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)

at sun.net.www.http.HttpClient.New(HttpClient.java:306)

at sun.net.www.http.HttpClient.New(HttpClient.java:323)

at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:860)

at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)

at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:726)

at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)

at java.net.URL.openStream(URL.java:1010)

at WebCrawler.robotSafe(WebCrawler.java:139)

at WebCrawler.run(WebCrawler.java:235)

at java.lang.Thread.run(Thread.java:619)

我如何使它工作。?

【问题讨论】:

  • 你有权限访问本地文件WebCrawler.html吗?
  • 如何设置权限?

标签: java applet appletviewer


【解决方案1】:

默认情况下,applet 只能连接到它所在的同一服务器 + 端口。您可以执行以下操作之一:

  1. 将应用转成应用,解除安全限制
  2. 使用受信任/签名的小程序

您还可以看看为小程序配置跨域,请参阅:

http://weblogs.java.net/blog/2008/05/28/java-doodle-crossdomainxml-support

【讨论】:

  • Reimus- 我试图将它转换成一个签名的小程序。但是我对在清单文件中分配开始类感到震惊。我应该添加哪个类?这个“public class WebCrawler extends Applet implements ActionListener, Runnable”这个类必须加还是必须加“public static void main(String argv[])”??
【解决方案2】:

自签名小程序非常简单(您可以免费这样做)。如果您不签署小程序,您将只能获得最低限度的安全访问权限,并且不会授予对套接字的访问权限。

简单的 3 步指南在这里:

http://www.narendranaidu.com/2007/11/3-easy-steps-to-self-sign-applet-jar.html

或更深入的解释: http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多