![](/img/trans.png)
[英]“No bean named 'springSecurityFilterChain' is defined” Java Config Spring security
[英]No bean named 'springSecurityFilterChain' is defined Java Config
我有應該自行初始化過濾器鏈的類
public class SecurityWebApplicationInitializer
extends AbstractSecurityWebApplicationInitializer {
}
但我仍然得到noSuchBeanDefinException。
我的webSecurityConfig
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled=true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserService userService;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userService).passwordEncoder(passwordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/admin/**")
.access("hasRole('ADMIN')").and().formLogin()
.loginPage("/login").failureUrl("/login?error")
.usernameParameter("username")
.passwordParameter("password")
.and().logout().logoutSuccessUrl("/login?logout")
.and().csrf()
.and().exceptionHandling().accessDeniedPage("/403");
}
@Bean
public PasswordEncoder passwordEncoder() {
PasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder;
}
}
這是我的AppInitialiser
public class WebAppInit extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { HibernateConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { WebMvcConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
我嘗試在AppInit中使用WebSecurityConfig.class,但隨后顯示一個錯誤,當AppInit類工作時,在SecurityConfig中自動裝配的服務類未初始化。 每個在線示例也都像我一樣。 他們只是使用SecurityWebApplicationInitializer。
首先-將WebSecurityConfig放入
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { HibernateConfig.class};
}
並為您擁有的每個CONFIG類添加@componentScan包。 我的錯誤是我以為他們彼此了解。 可能不會。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.