【问题标题】:Other SecurityManager implementations available?其他可用的 SecurityManager 实现?
【发布时间】:2011-01-31 00:46:27
【问题描述】:

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

我正在寻找类似的功能

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

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

【问题讨论】:

  • 你有没有“找到”解决方案?
  • 不,我真的没有找到合适的库来提供复杂的 SecurityManager 实现

标签: java securitymanager


【解决方案1】:
  • 动态 ProtectionDomains(在 1.4 IIRC 中引入),委托给可修改的 Policy
  • 按线程确定权限非常棘​​手。小程序安全管理员通过ThreadGroup 进行操作,这通常被认为是一件坏事。
  • 您可以允许连接到特定端口。同样,您可以拥有一个特权 JDBC 驱动程序,该驱动程序可能代理到另一个通过 AccessController.doPrivileged 声明特定特权的驱动程序。
  • 可以为每个单独的键指定系统属性的权限。
  • Sun/Oracle 实现中的AccessController 确实具有跟踪功能。
  • Applets/WebStart 将显示一个对话框,例如打印。但是 JNLP 服务方法要好得多。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-01
      • 2014-10-18
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      相关资源
      最近更新 更多