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

时间:2013-08-19 20:24:54

标签: java architecture global-variables securitymanager

全局是否可以接受并最终存储安全管理员的支票?

给出以下代码行:

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

所以,遗憾的是,虽然我们可能希望答案是“你不应该这样做”,但现实是你不能依赖这个假设,因为某人已经并且可能会继续这样做。