【问题标题】:Security manager rarely used on server?服务器上很少使用安全管理器?
【发布时间】:2013-02-15 21:15:31
【问题描述】:

最近在 SO 上的 question 将我引向了关于 Java 安全管理器的旧 answer。我在那个答案中关于这一行的问题:

虽然安全管理器会影响性能,但它很少在服务器端使用。

有人可以支持或反驳吗?我认为总是有一个安全管理器,一个自定义的或默认的,并且容器一直使用它。

【问题讨论】:

    标签: java securitymanager


    【解决方案1】:

    自己编写的服务器端代码中,我认为您不需要使用 SecurityManager,因为如果您正在编写代码以在 中执行某些操作您的应用程序,您不太可能需要检查您的代码是否具有您授予它的权限。

    例如,SecurityManager 中的很多方法都与 IO 操作有关 - checkDelete()checkRead()checkWrite() 等。JDK 库类会在您尝试创建/写入/读取时调用这些方法/delete 一个文件,所以自己调用它们是没有意义的。

    因此,您的服务器端代码不太可能大量使用 SecurityManager。但是,运行您的代码的代码(例如,如果您部署在 servlet 容器中)可能会使用这些方法,因为它们有兴趣确定 您的 代码是否具有某种级别的权限他们给它。

    【讨论】:

    • 如果我理解正确,您的意思是服务器上的顶级容器使用SecurityManager 对部署到它的(任意)内容实施安全策略,但那里无需在单独部署的单位本身中使用。对吗?
    • 是的,至少我想不出需要。例如,Tomcat 的管理员可能会设置某些权限来控制所包含的 Web 应用程序可以做什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 2015-11-20
    • 2018-11-08
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多