如何理解java Socket-Permissions?

时间:2012-09-05 14:53:43

标签: java sockets securitymanager

permission java.net.SocketPermission "192.168.1.1:31337", "connect, accept, resolve";

以下权限允许哪些内容?我的应用程序是否允许仅接受来自192.168.1.1:31337的连接(可能是外部客户端)或接受连接到192.168.1.1:31337(我的应用程序运行在192.168.1.1:31337,其中与&#的区别在哪里39;听'?)

1 个答案:

答案 0 :(得分:3)

如果您的代码是applet或在Java安全管理器下运行,则需要明确授予其执行操作的权限。

  

为了允许applet(或使用安全管理器运行的应用程序)进行资源访问,必须为尝试访问的代码显式授予相应的权限。

默认情况下,您的代码没有套接字权限。您的许可是说您的代码有权接受端口192.168.1.1上的IP 31337连接,连接和解析 主机。

“接受”和“连接”动作显而易见。

  

当任何其他操作发生时,隐含“解决”操作   当下。 “解析”操作是指主机/ IP名称服务查找。

     

“listen”操作仅在与“localhost”一起使用时才有意义。

listen和accept之间的区别在于听力意味着“为连接做好准备,看看是否有连接等待”,接受意味着“好,接受它”。

See the docs for permissions in java 7.java.net.SocketPermission java docs