【问题标题】:java socket permission problemjava socket权限问题
【发布时间】:2011-09-06 20:58:28
【问题描述】:

我需要通过小程序中的套接字写入远程计算机。小程序驻留在封闭医院系统的内部网中,因此更改 java 安全文件不是问题。在 Oracle 网站上,他们建议更改以下政策:

授予{ 权限 java.net.SocketPermission “10.130.71.156:8000”,“连接,接受”; };

我已经这样做了,但我仍然收到以下错误:

java.security.AccessControlException: access denied (java.net.SocketPermission [10.130.71.156:8000]resolve)     

你有什么想法吗?

【问题讨论】:

  • 您知道puffin.eng.sun.com 只是一个演示/占位符地址,对吧?
  • 是的。那不是我的许可文件中的内容。我有我正在尝试连接的服务器的实际 DNS。
  • 尝试将主机名更改为通配符*,以确保不会混淆 DNS 主机名解析。
  • 您是使用appletviewer 还是浏览器进行测试?您确定正在使用正确的策略文件吗?
  • 更改为通配符有效。我不确定为什么。但这是一个非常有用的建议。谢谢,

标签: java security sockets


【解决方案1】:

现在提出问题的方式是抛出 SecurityException,因为策略不允许“解决”。该政策很可能是

grant { 权限 java.net.SocketPermission "10.130.71.156:8000", "connect,resolve"; };

【讨论】:

    【解决方案2】:

    存在导致错误的配置问题。配置文件中的 IP 地址与策略文件中的 IP 地址不匹配。这就是出现安全错误的原因。在他们的评论中推荐使用通配符的人(ataylor)应该得到回答这个问题的功劳。通配符允许我们查看正在轮询的 DNS。谢谢!

    艾略特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-03
      • 2013-08-27
      • 2012-05-17
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 2011-01-20
      • 2011-08-18
      相关资源
      最近更新 更多