title: No bean named 'springSecurityFilterChain' is defined error with javaconfig
body: <p>I'm having some problems adding spring security. It shows an error that says:No bean named 'springSecurityFilterChain' is defined</p>
  
  <pre><code>public class WebInitializer implements WebApplicationInitializer {
  
      public void onStartup(ServletContext servletContext) throws ServletException {
  
  
          // Create the 'root' Spring application context
          AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
          rootContext.register(App.class);
          servletContext.addListener(new ContextLoaderListener(rootContext));
  
  
         // security filter
          servletContext.addFilter(
                  "springSecurityFilterChain",
                  new DelegatingFilterProxy("springSecurityFilterChain"))
                  .addMappingForUrlPatterns(null, false, "/*");
  
          // Manage the lifecycle of the root application context
          AnnotationConfigWebApplicationContext webContext = new AnnotationConfigWebApplicationContext();
          webContext.register(WebConfig.class);
          webContext.setServletContext(servletContext);
  
  
          ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(webContext));
          servlet.addMapping("/");
          servlet.setLoadOnStartup(1);
      }
  }
  </code></pre>
  
  <p>In the moment I add the security filter, it shows this error. I've been like crazy trying to resolve this with no success.</p>
  
  <p>This is my <strong>WebSecurityConfigurerAdapter</strong></p>
  
  <pre><code>@Configuration
  @EnableWebSecurity
  public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
      @Autowired
      public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
          auth.inMemoryAuthentication().withUser("tom").password("123456").roles("USER");
          auth.inMemoryAuthentication().withUser("bill").password("123456").roles("ADMIN");
          auth.inMemoryAuthentication().withUser("james").password("123456").roles("SUPERADMIN");
      }
  
      @Override
      protected void configure(HttpSecurity http) throws Exception {
  
          http.authorizeRequests()
                  .antMatchers("/signin").access("hasRole('ROLE_ADMIN')")
                  .and().formLogin();
  
      }
  }
  </code></pre>
  
  <p><strong>WebConfig</strong></p>
  
  <pre><code>@Configuration
  @EnableWebMvc
  @ComponentScan(value = {"com.hp.visitor.controller"})
  @Import({ WebSecurityConfig.class })
  public class WebConfig extends WebMvcConfigurerAdapter {
  
      @Bean
      UrlBasedViewResolver setupViewResolver(){
          UrlBasedViewResolver resolver = new UrlBasedViewResolver();
          resolver.setPrefix("/");
          resolver.setSuffix(".jsp");
          resolver.setViewClass(JstlView.class);
          return resolver;
      }
  
      @Override
      public void addResourceHandlers(ResourceHandlerRegistry registry) {
          registry.addResourceHandler("/static/**").addResourceLocations("/static/");
      }
  
  }
  </code></pre>
  
  <p>I've been trying a lot, but it always shows an 503 error.</p>
  
  <p>How can I fix it?</p>