繁体   English   中英

Spring Boot Application SSL 属性配置:getKeyStorePassword 之前 setKeyStorePassword

[英]Spring Boot Application SSL property configuration: getKeyStorePassword before setKeyStorePassword

在尝试使用 spring boot 和 tomcat 配置 HTTPS/SSL 功能时,我开始看到此错误:

Caused by: java.lang.IllegalArgumentException: Invalid keystore format
        at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:116)
        at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:87)
        at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:225)
        at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1150)
        at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:591)
        at org.apache.catalina.connector.Connector.startInternal(Connector.java:1018)
        ... 22 common frames omitted

进一步挖掘,我看到了填充类SSL.java的顺序( SSL.java是用于配置的基本 POJO)。 访问 POJO 以获取值的顺序令人震惊。 我在“set”调用之前看到了“get”调用(特别是setKeyStorePassword之前的getKeyStorePassword )。 这不可能是好事!

这似乎是一个非常奇怪的弹簧错误,它与自己竞争以设置和获取值。 在这种情况下,即使正确的值最终就位,SSL 配置也会失败,因为它们在设置之前已被访问。 有人可以强调为什么会出现这种情况以及潜在的解决方法吗?

我们使用的是 Spring 1.5.12,可以确认所有配置都是正确的。

奇怪的是,这似乎是 POM/Maven 问题。

通过将我们的资源过滤设置为 false,应用程序开始以正确的顺序设置其所有变量。

<resource>
   <directory>src/main/java/resources</directory>
   <filtering>false</filtering>
</resource>

暂无
暂无

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

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