由SpringBootServletInitializer类开始我的Spring Boot应用程序,因为我想将它部署为.war文件。我不知道如何启用安全性。如何将Spring Boot配置为.war文件以及安全性?
public class ApplicationInitializer extends SpringBootServletInitializer {
private static final Object[] configurations = {
SecurityConfiguration.class,
ApplicationInitializer.class
};
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(configurations);
}
}
其中SecurityConfiguration情况如下:
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter{
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
/******/
}
@Override
protected void configure(HttpSecurity http) throws Exception {
/******/
}
}
有了这个配置,我得到AlreadyBuiltException:
'springSecurityFilterChain' threw exception; nested exception is org.springframework.security.config.annotation.AlreadyBuiltException: This object has already been built
尝试的全局实例加载在'application.sources只有当前类()'例如'返回application.sources(ApplicationInitializer.class);''SecurityConfiguration'将被组件扫描,如果应用程序结构正确。 –
SecurityConfiguration与ApplicationInitializer在同一个包中。但是,当我只加载ApplicationInitializer时,spring安全仍然处于默认模式(基本身份验证只有一个用户,并且在控制台中随机生成密码) –
ApplicationInitializer是否具有'@ SpringBootApplication'? –