我已经使用Spring Initializr,使用嵌入式Tomcat + Thymeleaf模板引擎生成了一个Spring Boot Web应用程序,并将其作为可执行JAR文件打包。使用Spring Boot - Spring security @ComponentScan或@Import
技术:
春季启动1.4.2.RELEASE,春天4.3.4.RELEASE,Thymeleaf 2.1.5.RELEASE,Tomcat的嵌入8.5.6时,Maven 3,Java的8
我有此安全类
com.tdk.config
/**
* @author nunito
* @version 1.0
* @since 4 mar. 2017
*/
@Configuration
@EnableWebSecurity
@PropertySource("classpath:/com/tdk/config/app-${APP-KEY}.properties")
public class SecurityConfig extends WebSecurityConfigurerAdapter {
protected String loginPage = "/tdk/login";
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin()
.loginPage(getLoginPage())
.permitAll()
.and()
.authorizeRequests()
.antMatchers("/mockup/**").permitAll()
.antMatchers("/welcome/**").authenticated()
.and()
.logout()
.permitAll()
.logoutSuccessUrl("/index.html");
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.passwordEncoder(new StandardPasswordEncoder())
.withUser("nunito").password("08c461ad70fce6c74e12745931085508ccb2090f2eae3707f6b62089c634ddd2636f380f40109dfb").roles("ADMIN").and()
.withUser("nunito").password("4cfbf05e4493d17125c547fdba494033d7aceee9310f253f3e96c4f928333d2436d669d63a84fe4f").roles("ADMIN");
}
public String getLoginPage() {
return loginPage;
}
public void setLoginPage(String loginPage) {
this.loginPage = loginPage;
}
使用这个配置文件
@SpringBootApplication
@ComponentScan(basePackages = "com.tdk.config")
@EnableAutoConfiguration
public class TdkCloudApplication {
public static void main(String[] args) {
SpringApplication.run(TdkCloudApplication.class, args);
}
}
我有一个404,无论我存取权限S IN的URL
但这种配置一切正常
@SpringBootApplication
@EnableAutoConfiguration
@Import({SecurityConfig.class})
public class TdkCloudApplication {
public static void main(String[] args) {
SpringApplication.run(TdkCloudApplication.class, args);
}
}
我想知道其中的差别,因为对我来说是两种不同的方式做同样认为
您可以尝试删除'@EnableWebSecurity',因为它禁用了spring-boot自动配置,因为不需要'@ComponentScan',因为spring引导会扫描所有子包,不需要'@EnableAutoConfiguration' – Shahbour