当前位置: 首页 > 面试题库 >

访问被拒绝(java.net.SocketPermission 127.0.0.1:8080 connect,resolve)

贝凯
2023-03-14
问题内容

我在位于http:// localhost:8080 /
index.html
的简单HTML页面上插入了Java Applet :

<applet id="applet" code="SomeCode.class" archive="lib.jar" Width="1" Height="1"></applet>

Java Applet具有一种类似于以下代码的方法:

public void PostStuffToServer() {
  String server = "http://localhost:8080/PostHandler.ashx";
  URL u = new URL(server);
  URLConnection con = u.openConnection();
  con.setDoOutput(true);
  con.getOutputStream().write(stream.toByteArray());
  con.connect();
}

当我像这样从JavaScript执行applet代码时:

obj = document.getElementById('applet');
obj.getClipboardImageURL();

我收到以下错误:

_访问被拒绝(java.net.SocketPermission 127.0.0.1:8080 connect,resolve)_

似乎Java代码将域 localhost
解析为其等效的IP地址,因此提高了跨域安全性的限制。当我从http://127.0.0.1:8080/index.html执行相同的代码时,它工作正常。lib.jar文件已签名。

反正有避免这种情况吗?


问题答案:

安装Java 6 Update 22之后,我遇到了相同的问题。我的小程序已经运行了几年,没有任何报告的错误。当我降级到版本6 Update
21时,一切正常。我的小程序未签名。

解决方案:我花了一些时间才找到问题的原因。实际上,就我而言,有几个因素导致了安全错误。该问题已由crossdomain.xml文件解决。Java
applet尝试下载跨域文件,但失败了,甚至没有费心在Java控制台中显示错误(调试级别5)。Java尝试从我的域的IP地址(http://ip-
address/crossdomain.xml)下载文件,而不是从我的网站的根目录(http://domain-
name/crossdomain.xml)下载文件。我猜这对安全性更好?然后,我必须配置Web服务器以在IP地址上公开跨域文件。就我而言,出于安全原因,我已经删除了ISS中的默认网站,并且不得不创建一个新网站。然后,我发现Java小程序不适用于与Flash一起使用的跨域文件:

<?xml version="1.0"?>
<cross-domain-policy>
   <site-control permitted-cross-domain-policies="master-only"/>
   <allow-http-request-headers-from domain="*" headers="*"/>
   <allow-access-from domain="*" />
</cross-domain-policy>

我必须从xml文件中删除site-control和allow-http-request-headers-节点,以使applet正常工作。



 类似资料:
  • 问题内容: 这是我的编辑从第27行到第39行的代码: 我认为我的问题可能与Win7教授有关:(访问被拒绝) 如何解决这个问题,或者我需要做些什么或阅读才能使它起作用? 谢谢你不燃烧。 我只是更改了文件夹选项,使我获得完整的(Access …),现在我只需要弄清楚为什么在运行javac VendingMachine.java时为什么没有得到任何输出,我想是有一个新问题。 问题答案: 您的工作目录为。

  • 问题内容: 我正在尝试读取文件夹中的文件,但是当我运行该程序时,它将引发此异常。我也尝试了其他一些文件夹。它引发相同的异常。 问题答案: 您无法打开和读取目​​录,无法使用和方法区分文件和文件夹。您可以使用和方法获取文件夹的内容(分别用于文件名和s),还可以指定一个过滤器来选择列出的文件的子集。

  • 我正在使用wamp服务器,我的phpMyAdmin页面返回了以下错误。 Wamp服务器版本:2.2 MySQL版本:5.5.24 #1045-用户“root”@“本地主机”的访问被拒绝(使用密码:是) 我编辑了我的配置文件wamp\app\phpmyadmin4.1.14\config.inc.php: 但这并没有解决问题。任何帮助都将不胜感激。

  • 我正在使用JCIFS写入windows共享。这一直很有效。它突然停止工作,现在得到一个jcifs.smb.smbauthException:访问被拒绝。例外。我知道我的凭据很好,因为我可以使用smb手动连接并写入文件夹,所以这不是问题。我使用的代码是: 它在“SmbFileOutputStream outputStream=new SmbFileOutputStream(file)”行上爆炸。几个

  • 我的教授让我们从IntelliJ的社区版本升级到最终版本,并且开始使用JDK9.0和1.8并开始使用SceneBuilder。但是,当我试图构建代码时,我总是得到(访问被拒绝)错误。当我试图打开 “C:\users\username.intellijideA2017.2\system\compile-server\PT_2_868F9741\mappings” 我已经尝试卸载IntelliJ并运行

  • 问题内容: 我在FoxPro 6.0命令窗口中使用SQL命令,并遇到“文件访问被拒绝”。 我的SQL命令是: 情况: Windows 7专业版 FoxPro 6.0 main.dbf被共享给许多用户。 main.dbf不是 隐藏的 ,也不是 只写 任何意见将不胜感激! 问题答案: 此DBF文件位于共享驱动器上吗?如果是这样,则另一个用户可能使文件打开了“排他”,或者您正试图打开文件“排他”。默认状

  • 问题内容: 嘿,尝试启动正在编写的RMI应用程序时出现提示,我无法弄清楚为什么在默认端口1099或其他动态端口(当前是我的策略文件)上打开此异常时会出现此异常的原因授予所有权限(应用完成后会更改)。 我被困在哪里出了问题,任何帮助都会很有用 我的密码 } 堆栈跟踪 有效端口 65000 我的政策文件 问题答案: 基本上,我很愚蠢,我认为因为Java并不抱怨它找不到.policy文件AOK,所以事实