5

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

我正在寻找类似的功能

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

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

4

2 回答 2

2

我不知道有一个独立的 SecurityManager 项目。任何应用程序服务器(JBoss、Glassfish)都将包含一个来控制加载的应用程序可以做什么。

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

于 2010-03-23T22:30:23.827 回答
2
  • Dynamic ProtectionDomains(在 1.4 IIRC 中引入),委托给可修改的Policy.
  • 按线程确定权限是,呃,很棘手。小程序安全管理器通过ThreadGroup,这通常被认为是一件坏事。
  • 您可以允许连接到特定端口。类似地,您可以拥有一个特权 JDBC 驱动程序,该驱动程序可能代理到另一个通过AccessController.doPrivileged.
  • 可以为每个单独的键指定系统属性的权限。
  • AccessController在 Sun/Oracle 实现中确实具有跟踪功能。
  • Applets/WebStart 将显示一个对话框,例如打印。但是 JNLP 服务方法要好得多。

“Glossitope”试图让一个系统在每次请求权限时都会弹出一个对话框。当然,对于只想看跳舞猪的用户来说,这个请求毫无意义。(Glossitope 是对 Vista 侧面板的 Java 版本的尝试。添加到 6u10 的功能(拖放式安装、非矩形窗口、警告图标而不是横幅、JNLP 服务)使其大多是多余的。)

于 2010-03-24T00:03:42.290 回答