首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数为JVM指定Java.Security文件。

参数为JVM指定Java.Security文件。
EN

Stack Overflow用户
提问于 2010-12-23 17:37:11
回答 3查看 31.6K关注 0票数 15

我正在寻找一个java参数(或者其他一些方法),允许我指定一个文件作为java.security文件,而不是使用JDK中的文件(在JRE中)。

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

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

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

非常感谢。

编辑

很抱歉,我最初的文章可能不清楚,但我对指定java.security文件感兴趣,它通常被称为Java安全属性文件,而不是位于同一个目录中的java.policy文件。

我的解决方案

我将在这里张贴我的解决方案,以供其他可能陷入类似情况的人参考。

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

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

EN

回答 3

Stack Overflow用户

发布于 2010-12-23 19:14:58

查看OpenJDK源,您无法更改java.security文件的加载。但是,该文件有一个名为security.overridePropertiesFile的属性,如果设置为true (正如我当前的普通安装),则允许您加载通过名为java.security.properties的系统属性指定的附加安全属性文件。还请注意,命令行语法遵循与策略文件类似的模式,其中=指定附加配置,==指定完全替换配置。

票数 18
EN

Stack Overflow用户

发布于 2010-12-23 17:41:17

也许这条线上接受的答案会帮助您解决问题;基本上,它说您需要指定您自己的策略文件,最后的调用应该如下所示:

代码语言:javascript
复制
java -Djava.security.manager -Djava.security.policy=/some/path/my.policy
票数 7
EN

Stack Overflow用户

发布于 2013-07-31 06:53:16

您只需将系统属性-Djava.security.properties=*****设置为指定要加载的安全属性,但必须在使用此方法之前设置属性security.overridePropertiesFile=true。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4521119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档