使用主机名而不是IP地址实现java安全策略?

时间:2013-10-08 22:28:27

标签: java security-policy

我目前必须执行以下操作以允许在我们的java安全策略中发送邮件。

permission java.net.SocketPermission "smtp.example.com", "resolve";
permission java.net.SocketPermission "10.0.0.1:25", "connect,resolve";
permission java.net.SocketPermission "10.0.0.2:25", "connect,resolve";
permission java.net.SocketPermission "10.0.0.3:25", "connect,resolve";

然而,IP地址可能会不时发生变化,我需要确保如果有人添加新的smtp服务器,我们的应用程序不会中断。

是否可以妥协以允许基于主机名而不是IP地址的连接?

1 个答案:

答案 0 :(得分:2)

来自SocketPermission页面的java文档:

SocketPermission包含主机规范和一组“操作”,指定连接到该主机的方法。主机指定为

host = (hostname | IPv4address | iPv6reference) [:portrange]

SocketPermissions的创建和含义示例:

new SocketPermission("puffin.eng.sun.com:7777", "connect,accept");