Spring Boot:accessDeniedHandler不起作用

我有以下Spring Security配置:

@Configuration

@EnableWebSecurity

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Override

protected void configure(HttpSecurity http) throws Exception {

http.authorizeRequests().antMatchers("/api/private/**", "/app/**").authenticated();

http.csrf().disable();

http.logout().logoutSuccessUrl("/");

http.exceptionHandling().accessDeniedPage("/403"); //.accessDeniedHandler(accessDeniedHandler);

}

}

我期望以下逻辑:未经身份验证的用户将被重定向到/403。而不是那个Spring显示默认的Tomcat

403页面。我也尝试过自定义,accessDeniedHandler尽管没有成功。

如何在访问失败时实施自定义逻辑?

回答:

AccessDeniedHandler仅适用于经过身份验证的用户。未经身份验证的用户的默认行为是重定向到登录页面(或适用于所使用身份验证机制的任何内容)。

如果要更改,则需要配置AuthenticationEntryPoint,当未经身份验证的用户尝试访问受保护的资源时会调用。您应该可以使用

http.exceptionHandling().authenticationEntryPoint(...)

而不是你所拥有的。有关更多详细信息,请查看API文档。

以上是 Spring Boot:accessDeniedHandler不起作用 的全部内容, 来源链接: utcz.com/qa/436287.html

回到顶部