gpt4 book ai didi

java - Spring 启动 : accessDeniedHandler does not work

转载 作者:IT老高 更新时间:2023-10-28 13:58:18 25 4
gpt4 key购买 nike

我有以下 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,当未经身份验证的用户尝试访问 protected 资源时调用它。你应该可以使用

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

而不是你所拥有的。更多详情,请查看API docs .

关于java - Spring 启动 : accessDeniedHandler does not work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com