Spring 春季安全安全套

Spring 春季安全安全套,spring,spring-security,Spring,Spring Security,我使用的是SpringSecurity 3.2.0.0版本。 我想将用户重定向到另一个URL,如果不允许他查看该页面,我该如何做 .antMatchers("/cabinet/control/members/*").hasRole("OWNER").redirectTo(..) 您必须定义拒绝访问处理程序/页面,请参阅: 如果抛出了一个AccessDeniedException,并且用户已经过身份验证,则这意味着尝试了一个他们没有足够权限的操作。在这种情况下,ExceptionTranslat

我使用的是SpringSecurity 3.2.0.0版本。 我想将用户重定向到另一个URL,如果不允许他查看该页面,我该如何做

.antMatchers("/cabinet/control/members/*").hasRole("OWNER").redirectTo(..)

您必须定义拒绝访问处理程序/页面,请参阅:

如果抛出了一个
AccessDeniedException
,并且用户已经过身份验证,则这意味着尝试了一个他们没有足够权限的操作。在这种情况下,
ExceptionTranslationFilter
将调用第二个策略,即
AccessDeniedHandler
。默认情况下,使用的是
AccessDeniedHandlerImpl
,它只向客户端发送403(禁止)响应。或者,您可以显式地配置一个实例(如上面的示例所示),并设置一个错误页面URL,它将把请求转发给[]。这可以是一个简单的“拒绝访问”页面,如JSP,也可以是一个更复杂的处理程序,如MVC控制器。当然,您可以自己实现接口并使用自己的实现

例如:

@Override
protected void configure(final HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/cabinet/control/members/*").hasRole("OWNER")
            .and()
        .exceptionHandling()
            .accessDeniedPage("/access_denied.jsp")
            .and()
        .formLogin();
}

您必须定义拒绝访问处理程序/页面,请参阅:

如果抛出了一个
AccessDeniedException
,并且用户已经过身份验证,则这意味着尝试了一个他们没有足够权限的操作。在这种情况下,
ExceptionTranslationFilter
将调用第二个策略,即
AccessDeniedHandler
。默认情况下,使用的是
AccessDeniedHandlerImpl
,它只向客户端发送403(禁止)响应。或者,您可以显式地配置一个实例(如上面的示例所示),并设置一个错误页面URL,它将把请求转发给[]。这可以是一个简单的“拒绝访问”页面,如JSP,也可以是一个更复杂的处理程序,如MVC控制器。当然,您可以自己实现接口并使用自己的实现

例如:

@Override
protected void configure(final HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/cabinet/control/members/*").hasRole("OWNER")
            .and()
        .exceptionHandling()
            .accessDeniedPage("/access_denied.jsp")
            .and()
        .formLogin();
}