未强制执行 Java 安全策略
Posted
技术标签:
【中文标题】未强制执行 Java 安全策略【英文标题】:Java security policy is not enforced 【发布时间】:2019-04-02 16:34:20 【问题描述】:我正在研究学习 Java 中的一个示例,该示例讨论了创建安全策略以允许套接字连接。我添加了一个允许应用程序打开连接的策略文件。但是当我运行它时,连接是不允许的。
非常感谢任何帮助。
汤姆
Here is the code
//file: EvilEmpire.java
import java.net.*;
public class EvilEmpire
public static void main(String[] args) throws Exception
try
Socket s = new Socket("192.168.0.1", 80);
System.out.println("Connected!");
catch (SecurityException e)
System.out.println("SecurityException: could not connect.");
And here is the policy file
grant codeBase "file:/c:/users/flash/eclipse-workspace/learning java/bin/"
permission java.net.SocketPermission "192.168.0.1", "connect";
;
【问题讨论】:
实际错误是什么?也许你得到了connection refused
,它与安全管理器无关,而是事实上你尝试连接的端点没有运行。
默认情况下,常规 Java 应用程序已经有权打开/连接到网络上的任何套接字。您在哪种情况下执行您认为需要额外权限的程序?
它说“SecurityException:无法连接。”来自 catch 子句
我从 Eclipse IDE 运行它
【参考方案1】:
嗯,刚刚更新了eclipse,现在程序可以正常运行了。不知道是更新还是IDE重启了。
感谢大家的cmets。
汤姆
【讨论】:
以上是关于未强制执行 Java 安全策略的主要内容,如果未能解决你的问题,请参考以下文章
iphone/ipad : 如何通过 iOS 应用程序执行 Apple 安全策略?
我在用命令禁用驱动强制签名提示设置元素数据出错。该值受安全策略保