Java 当用户未通过身份验证时,Spring security不会重定向到登录页面

Java 当用户未通过身份验证时,Spring security不会重定向到登录页面,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我试图阻止访问我的网站中的页面,但下面的安全配置不限制访问私人页面 我的安全配置: @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Resource private UserService detailsService; @Override protected void configure(HttpS

我试图阻止访问我的网站中的页面,但下面的安全配置不限制访问私人页面

我的安全配置:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Resource
    private UserService detailsService;

    @Override
    protected void configure(HttpSecurity http)
        throws Exception {
        http.authorizeRequests().antMatchers("/passwordrequest/**", "/initSystem").permitAll().anyRequest()
            .authenticated().and().formLogin().loginPage("/login").usernameParameter("email").permitAll().and()
            .logout().permitAll().and().csrf().disable();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth)
        throws Exception {
        auth.userDetailsService(detailsService);
    }
}
我有一个用于
/login
的控制器,它将用户放在模型上,以便我可以评估他们的信息。我还根据需要实施了
UserDetails
UserDetails服务


请就可能出现的问题提出建议。(如果您希望我添加一些特定代码,请告诉我)

您的配置中的私人页面在哪里?你需要有那个配置。 例如:


检查您是否在web.xml中配置了spring安全过滤器以拦截所有安全化请求

  <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>

springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*

这不是
.anyRequest().authenticated()所做的吗?任何其他请求都需要进行身份验证吗?我将尝试添加
.access
。哦,对不起,我没有看到。但我考虑匿名身份验证。为什么不在控制器方法中添加一个atPreauthorize,以确保安全。你想要样品吗?你是说像这样的东西吗
@Preauthorized@RequestMapping(value=“/submitted/{assessmentId}”,method=RequestMethod.POST)公共字符串setStatus……。
?类似于这样的“@PreAuthorize”(“hasRole('ROLE_USER')”),如果这样做,我还需要我的安全配置吗?是的。这只是指示spring安全性指示重定向到登录页面,如securityconfig中所述。另外,我更喜欢在DAO和服务层中使用“@Secured”,在控制器中使用“@Preauthorize”。
  <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>