其他SecurityManager实现可用吗?

时间:2010-03-23 22:14:48

标签: java securitymanager

是否有任何其他实现(例如在OSS项目中)的 Java SecurityManager 可用,它具有比JDK更多的功能?

我正在寻找像

这样的功能
  • 在运行时配置
  • 策略在运行时可更新,从security.policy文件
  • 以外的其他数据源读取
  • 支持线程,例如每个线程不同的策略
  • 更高级别的政策,例如“禁用网络功能,但允许JDBC流量”
  • 常见的预定义政策,例如“允许对file.encodingline.separator等常用系统属性进行读访问,但不允许对user.home进行读访问”
  • 监控和审核跟踪日志记录,例如“记录所有文件访问权限,记录所有网络访问权限不会发送到knownhost.example.org”
  • 阻止作业“请求”权限,直到管理员授予权限,让线程/作业继续
  • ...

我很确定应用程序服务器(至少是商业服务器)有自己的SecurityManager实现或者至少有自己的策略配置。我想知道是否有任何类似要求的免费项目。

2 个答案:

答案 0 :(得分:2)

我不知道一个独立的SecurityManager项目。任何应用程序服务器(JBoss,Glassfish)都将包含一个用于控制加载的应用程序可以执行的操作的程序。

以下是我在滚动自己的主题上找到的一些链接:

答案 1 :(得分:2)

  • 动态ProtectionDomains(在1.4 IIRC中引入),委托给可修改的Policy
  • 通过线程确定权限是呃,很棘手。小程序安全managaer通过ThreadGroup执行,这通常被认为是一件坏事。
  • 您可以允许连接到特定端口。类似地,您可以拥有一个特权JDBC驱动程序,该驱动程序可能代理到通过AccessController.doPrivileged声明特定权限的另一个驱动程序。
  • 可以为每个单独的密钥指定系统属性的权限。
  • Sun / Oracle实现中的
  • AccessController确实具有跟踪功能。
  • Applets / WebStart将显示一个对话框,例如打印。但是JNLP服务方法要好得多。
每次请求权限时,“Glossitope”都试图让系统弹出一个对话框。当然,对于想要看到跳舞的猪的用户来说,该请求是没有意义的。 (Glossitope尝试了Java版本的Vista侧面板。添加到6u10的功能(拖放式安装,非矩形窗口,警告图标而不是横幅,JNLP服务)使其大部分都是多余的。)< / p>