未强制执行 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 安全策略?

未强制执行 Azure 策略

我在用命令禁用驱动强制签名提示设置元素数据出错。该值受安全策略保

ADSelfSecive Plus如何对AD域用户密码进行安全管理?

系统安全保护以及防火墙策略管理

selinux初级管理