Java SecurityManager是否有任何其他实现(例如在OSS项目中)可用,它具有比JDK更多的功能?
我正在寻找像这样的功能
>可在运行时配置
>策略可在运行时更新,从security.policy文件以外的其他数据源读取
>线程感知,例如每个线程不同的策略
>更高级别的政策,例如“禁用网络功能,但允许JDBC流量”
>常见的预定义策略,例如“允许对file.encoding或line.separator等常用系统属性进行读访问,但不允许对user.home进行读访问”
>监控和审核跟踪日志记录,例如“记录所有文件访问权限,记录所有网络访问权限不会发送到knownhost.example.org”
>阻止作业“请求”权限,直到管理员授予权限,让线程/作业继续
> ……
我很确定应用程序服务器(至少是商业服务器)有自己的SecurityManager实现或者至少有自己的策略配置.我想知道是否有任何类似要求的免费项目.
最佳答案
>动态
>通过线程确定权限是呃,很棘手.小程序安全managaer由ThreadGroup执行,这通常被认为是一件坏事.
>您可以允许连接到特定端口.类似地,您可以拥有一个特权JDBC驱动程序,该驱动程序可能代理到通过AccessController.doPrivileged声明特定权限的另一个驱动程序.
>可以为每个单独的密钥指定系统属性的权限.
> Sun / Oracle实现中的AccessController确实具有跟踪功能.
> Applets / WebStart将显示一个对话框,例如打印.但JNLP服务方法要好得多.
ProtectionDomain
s(在1.4 IIRC中引入),委托可修改的政策.>通过线程确定权限是呃,很棘手.小程序安全managaer由ThreadGroup执行,这通常被认为是一件坏事.
>您可以允许连接到特定端口.类似地,您可以拥有一个特权JDBC驱动程序,该驱动程序可能代理到通过AccessController.doPrivileged声明特定权限的另一个驱动程序.
>可以为每个单独的密钥指定系统属性的权限.
> Sun / Oracle实现中的AccessController确实具有跟踪功能.
> Applets / WebStart将显示一个对话框,例如打印.但JNLP服务方法要好得多.
每次请求权限时,“Glossitope”都试图让系统弹出一个对话框.当然,对于想要看到跳舞的猪的用户来说,该请求是没有意义的. (Glossitope是对Vista侧面板Java版本的尝试.添加到6u10的功能(拖放安装,非矩形窗口,警告图标而不是横幅,JNLP服务)使它大部分是多余的.)