默认情况下,是否可以在安装级别启用java安全管理器?

时间:2016-03-05 09:54:39

标签: java securitymanager

根据理解,可以使用反射来操纵final关键字的一般概念。

使用安全管理器也可以防止这种情况发生。

默认情况下是否可以启用安全管理器(在jdk安装级别)?

参考文献:

更新1:

鉴于它需要被启用以便工作,它不太可能。

我最接近的是将System.setSecurityManager(new SecurityManager())放在类的静态块中,将其捆绑为jar并将其放在'jre / lib / ext'中,但发现默认情况下未加载我们仍然需要使用Class.forName。

所以即使是其他选项,只能使用-Djava.security.manager标志或以编程方式添加。

1 个答案:

答案 0 :(得分:0)

您可以使用_JAVA_OPTIONS环境变量设置默认Java系统属性,因此您可以在系统上设置_JAVA_OPTIONS="-Djava.security.manager",这将确保所有Java进程在启用安全管理器的情况下运行。

当然这个变量可能会被覆盖,因此根据您的环境可能不够安全。

如果您尝试确保无法使用反射覆盖特定类的最终成员,则另一个选项是在该类中放置一个静态初始化块,用于检查安全管理器是否已安装并抛出SecurityException,如果不是。