2016-10-22 158 views
0

我尝试将Spring Security添加到我的projcet,但它没有奏效。我仍然可以在没有任何登录的情况下访问我的web应用程序。WebSecurityConfigurerAdapter没有工作

主要配置

public class SpittrWebAppInitializer 
     extends AbstractAnnotationConfigDispatcherServletInitializer { 
    @Override 
    protected String[] getServletMappings() { 
     return new String[]{"/"}; 
    } 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class<?>[]{RootConfig.class,SecurityConfig.class}; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return new Class<?>[]{WebConfig.class}; 
    } 
} 

SecurityConfig

@Configuration 
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 
    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
      .authorizeRequests() 
      .anyRequest().authenticated() 
      .and() 
      .formLogin().and() 
      .httpBasic(); 
    } 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
      .inMemoryAuthentication() 
      .withUser("user").password("password").roles("USER"); 
    } 
} 

什么,我做错了什么? 使用SpringSecurity 4.1.3

回答

1

要启用Spring Security的需要添加类这样

public class SpringSecurityInitializer extends AbstractSecurityWebApplicationInitializer { 
} 

或XML配置

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy 
       </filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping>