为 JVM 指定 Java.Security 文件的 Java 参数

标签 java security jvm weblogic

我正在寻找一个 java 参数(或者可能是一些不同的方法)来允许我指定一个 JVM 使用的文件作为 java.security 文件,而不是使用在 JDK 中找到的那个(在JRE 库)。

为了给您提供更多背景信息,我正在使用由其他人设置的 WebLogic 服务器,该服务器在同一个 JDK 上运行两个(或更多)不同的 JVM。我们现在遇到了一个问题,我在一个 JVM 上所做的工作需要一个与另一个 JVM 当前正在使用的文件不同的 java.security 文件。我希望有一种方法可以让我将我的 JVM 指向一个新的 java.security 文件,而不必将它指向一个全新的 JDK(由于空间限制,我们希望避免上传特定于每个 JVM 的 JDK ).

我意识到服务器的设置并不理想,但是完全重新安排现有设置是不可行的,而且我也无能为力。因此,我希望有人可能有一个创造性的解决方案,允许多个 JVM 在同一个 JDK 上运行,但具有不同的安全配置。

我一直在努力寻找解决方案,但我的 Google-Foo 似乎没有我希望的那么强大。在此希望你们中的一位能得到答案!

非常感谢。

编辑
抱歉,我的原始帖子可能不清楚,但我对指定 java.security 文件很感兴趣,它通常也称为 Java 主安全属性文件,而不是在中找到的 java.policy 文件同一个目录。

我的解决方案

我将我的解决方案贴在这里,以供其他可能遇到类似情况的人引用。

因为我似乎找不到在启动时指定的参数,所以我决定放弃 java.security 属性文件。可以使用安全类 (java.security.Security) 在代码中设置属性和提供程序(通常在文件中配置)。因此,至少在此期间,我计划编写一个类,该类将在启动后设置我的 JVM 特定安全配置(基本上覆盖文件为其他 JVM 提供的默认配置)。虽然此解决方案的明显缺点是它不会外部化此 JVM 的安全配置,但该解决方案确实为我提供了一种设置 JVM 特定属性和提供程序的方法,而不会影响运行在同一 JDK 上的其他 JVM 的配置。

我感谢其他人给予的时间和考虑。谢谢=)

最佳答案

查看 OpenJDK source ,您不能更改 java.security 文件的加载。但是,该文件有一个名为 security.overridePropertiesFile 的属性,如果设置为 true(就像我当前的普通安装一样),您可以加载额外的安全性通过名为 java.security.properties 的系统属性指定的属性文件。另请注意,命令行语法遵循与策略文件类似的模式,其中 = 指定附加配置,== 指定完整的替换配置。

关于为 JVM 指定 Java.Security 文件的 Java 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4521119/

相关文章:

security - .pem 文件是否同时包含私钥和公钥?

java - 如何创建自定义 JVM 启动器?

java - 判断字符串是否包含 a-z 字符

java - SVNKit 替代品

security - 如何安全登录gitlab中的私有(private)docker注册表?

security - Ansible 成为最佳实践并享有特权

java - 常量池 (JVM JDK 6) 中的 “a” 与 'new String(“b” )' (渴望真相)

java - 哪种语言(在 JVM 上运行)最适合创建 DSL?

java - 我如何创建一个递归的 Anagram 工具来打印一串字母的所有可能组合,包括前缀?

java - 年龄计算方法不能返回正确的年龄?