全局并最终存储SecurityManager的检查是否可以接受



全局并最终存储安全管理器的检查是否可以接受?

给定以下代码行:

public static final boolean SEC_ON = (System.getSecurityManager() != null);

将其放在库中并在JVM的整个生命周期中重用结果是否可以接受?

为什么?或者为什么不呢?

[update]类似的代码存在于Java EE-JSP规范的参考实现中。任何使用它的应用程序服务器/servlet容器都不支持SecurityManager的动态配置。

否。如果安全管理器最初不存在,则可以随时安装。

由于安全管理器可以在JVM的生命周期中随时更改,因此这不是一个好的做法。如果他们需要一个方便快捷方式,他们应该使用这样的方法:

public static boolean isSecurityOn() {
    return (System.getSecurityManager() != null);
}

在就主题向Java EE用户组请愿后(https://java.net/projects/javaee-spec/lists/users/archive/2013-08/message/8)看来,他们的立场是不就这样做是否可以做出任何这样的决定。

因此,可悲的是,尽管我们可能希望答案是"你不应该那样做",但现实是,你不能依赖这种假设,因为有人现在和可能会继续这样做

相关内容

  • 没有找到相关文章

最新更新