Spring Security拦截不起作用

时间:2015-02-24 00:57:19

标签: java spring-mvc spring-security

我通过java配置开始使用spring安全性,但是当我转到http://localhost:8080/myapp时,我没有像我们预期的那样重定向到登录表单。

我有基本配置,我一直关注this guide

我正在使用Spring Security 3.2.5.RELEASE和Spring Version 4.1.2.RELEASE。

这是我的安全配置:

@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        .authorizeRequests()
            .anyRequest().authenticated()
            .and()
        .formLogin()
            .loginPage("/login")
            .permitAll();
    }

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

和我的安全初始化程序:

public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {



}

My Spring Servlet Dispatcher:

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

1 个答案:

答案 0 :(得分:0)

在您的情况下,问题似乎是因为您的springSecurityFilterChain未被扫描而未创建SecurityConfig

很多事情都可能是这个原因;

  1. 您的网络容器不支持Web应用程序3.0(仅支持Jetty 8.x)
  2. 您没有@ComponentScan来覆盖SecurityConfig,以便它可以注册过滤器bean springSecurityFilterChain
  3. 您必须在SecurityConfig中明确注册SecurityInitializer类,并确保正在调用SecurityInitializer。

    public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {
    
        public SecurityInitializer() {
            super(SecurityConfig.class);
        }
    
    }