我目前正在使用持续集成来自动设置和配置服务器。不幸的是,当 Elastic Beanstalk Tomcat 8 初始化时,我遇到了问题。仅从AWS运行时,我才收到以下错误,它在我的IDE中运行良好:
Caused by: java.lang.NullPointerException: null
at org.springframework.security.config.annotation.web.builders.HttpSecurity.addFilterBefore(HttpSecurity.java:1112) ~[spring-security-config-3.2.5.RELEASE.jar:3.2.5.RELEASE]
at uk.co.thinkinnovate.security.WebSecurityConfig.configure(WebSecurityConfig.java:41) ~[WebSecurityConfig.class:na]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.getHttp(WebSecurityConfigurerAdapter.java:199) ~[spring-security
以及有问题的代码块:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf()
.disable()
.addFilterBefore(tokenProcessingFilter(),
BasicAuthenticationFilter.class)
.addFilterBefore(new SimpleCORSFilter(),
AuthenticationTokenProcessingFilter.class)
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().exceptionHandling();
}
@Bean
public AuthenticationTokenProcessingFilter tokenProcessingFilter() {
System.out.println("Getting token processing filter.");
System.out.println(this.tokenBasedRememberMeService);
return this.tokenBasedRememberMeService;
}
为什么TomCat版本没有自动连接tokenBasedRememberMeService,但我的Spring Boot应用程序是?
谢谢大家。
编辑:只是一个奇怪的说明:"获取令牌处理过滤器"仅在AWS应用程序中调用并且为空,而在IDE和Spring Boot中则不会出现。
我觉得我在这里错过了一些关键概念。
这个问题太简单了!
确保您的应用程序类extends SpringBootServletInitializer implements InitializingBean