org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为' springSecurityFilterChain'是spring mvc定义的异常

时间:2015-08-10 15:15:47

标签: java spring-mvc tomcat java-ee spring-social

我正在创建一个Spring社交登录或弹簧安全的春季应用程序。

My SecurityConfig.java看起来像这样:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .formLogin()
                .loginPage("/login")
                .loginProcessingUrl("/login/authenticate")
                .failureUrl("/login?error=bad_credentials")
            .and()
                .logout()
                    .deleteCookies("JSESSIONID")
                    .logoutUrl("/logout")
                    .logoutSuccessUrl("/login")
            .and()
                .authorizeRequests()
                    .antMatchers(
                            "/auth/**",
                            "/login",
                            "/signup/**",
                            "/user/register/**"
                    ).permitAll()
            .and()
                .apply(new SpringSocialConfigurer()
                .postLoginUrl("/")
                .alwaysUsePostLoginUrl(true));
}

@Bean
public SocialUserDetailsService socialUsersDetailService() {
    return new UserDetailServiceImpl(userDetailsService());
}

WebConfig.java:

@EnableWebMvc
@Configuration
@ComponentScan({ "com.spark.webcontroller" })
@Import({ SecurityConfig.class, SocialConfig.class })
@PropertySource("classpath:resources/application.properties")
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}

public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

@Bean
public ServletContextTemplateResolver templateResolver() {
    ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
    templateResolver.setPrefix("/WEB-INF/view/html/");
    templateResolver.setSuffix(".html");
    templateResolver.setTemplateMode("HTML5");
    templateResolver.setOrder(1);
    return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    templateEngine.setTemplateResolver(templateResolver());
    return templateEngine;
}

@Bean
public ThymeleafViewResolver viewResolver() {
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setTemplateEngine(templateEngine());
    viewResolver.setOrder(1);
    return viewResolver;
}   

最后是我的WebInitilizar.java

public class WebInitilizer extends
    AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
    return new Class[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
    return new Class[] { WebConfig.class };
}
@Override
protected String[] getServletMappings() {
    return new String[] { "/" };
}

RootConfig.java仅用于添加服务类。

当我在Tomcat8上运行此应用程序时,我正在

  

org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为&#39; springSecurityFilterChain&#39;被定义为       在org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687)       在org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1168)       在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:281)       在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)       在org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:962)       在org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:324)       在org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:235)       在org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:199)       在org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)       在org.apache.catalina.core.ApplicationFilterConfig。(ApplicationFilterConfig.java:109)       在org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4615)       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222)       在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)       在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1409)       在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1399)       at java.util.concurrent.FutureTask.run(Unknown Source)       at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)       at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)       在java.lang.Thread.run(未知来源)

对此有任何帮助将不胜感激

0 个答案:

没有答案