Spring security Spring security WebSecurity配置适配器读取应用程序.properties
在我的应用程序中,我想配置spring security来配置HSTS支持。 我修改了pom.xml以添加所需的库 现在我想从application.properties中读取与HSTS相关的配置。我已经添加了如下代码Spring security Spring security WebSecurity配置适配器读取应用程序.properties,spring-security,Spring Security,在我的应用程序中,我想配置spring security来配置HSTS支持。 我修改了pom.xml以添加所需的库 现在我想从application.properties中读取与HSTS相关的配置。我已经添加了如下代码 @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Value("${app.security
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Value("${app.security.headers.hsts}")
private boolean hsts;
@Value("${app.security.headers.hsts.includeSubDomains}")
private boolean includeSubDomains;
@Value("${app.security.headers.hsts.maxAge}")
private long maxAge;
@Override
protected void configure(HttpSecurity http) throws Exception {
if(hsts) {
http.headers().
httpStrictTransportSecurity().
includeSubDomains(includeSubDomains).
maxAgeInSeconds(maxAge);
}
}
}
但是,spring应用程序无法启动。这是一个错误
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webSecurityConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'app.security.headers.hsts' in value "${app.security.headers.hsts}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
你也可以分享你的application.properties文件吗?这是我的错误;application.properties不保留在spring配置位置;添加--spring.config.location参数作为命令行参数后;它开始读取属性。谢谢你的回复!!!