繁体   English   中英

我可以设置 java.security.auth.login.config 的相对路径吗?

[英]Can i set relative path to java.security.auth.login.config?

在我的 Spring Boot 应用程序中,我需要调用:

System.setProperty("java.security.auth.login.config", authConf);

其中 authConf 似乎被认为是文件的绝对路径。

问题是,我的 Spring Boot 应用程序被打包并作为 jar 执行,我想将文件打包到 jar 中。

在所提供的答案这个问题,当一个WAR被部署在一台服务器可能只工作。 当我们使用嵌入式容器运行 JAR 时,它似乎不起作用。

有什么方法可以设置 java.security.auth.login.config 的相对路径来引用我的 jar 中打包的 conf 文件?

我知道答案晚了大约 6 年,但我最近遇到了同样的问题并找到并回答了。 也许我的回答至少会帮助下一个面临这个问题的开发者。

我能够通过首先创建一个JavaLoginConfig类型的javax.security.auth.login.Configuration然后使用相同 Configuration 类的Configuration.setConfiguration(configuration method)来解决它。 使用这种方法,我能够将我们的jaas.conf捆绑在 jar 中并使用它的相对路径。

举个具体的例子:

  1. 获取要使用的安全配置文件的 URL
    URL configLocation=YourClass.getClassLoader().getResource("resources/jaas.conf);"
  2. 创建 JavaLoginConfig 配置
    Configuration secConfig=Configuration.getInstance("JavaLoginConf", new URIParameter(configLocation.toURI());
  3. 将配置设置为您在步骤 2 中创建的配置
    Configuration.setConfiguration(secConfig);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM