我关注了这个自定义提供商:
https://www.baeldung.com/spring-security-authentication-provider
因为我正在使用一项服务来检查用户/通行证。登录工作正常(错误凭据时为 401),我想使用自定义失败处理程序在授权失败时返回自定义消息。
我遵循了另一个自定义故障处理程序指南:
https://www.baeldung.com/spring-security-custom-authentication-failure-handler
但这对我不起作用。我将打印消息放在 onAuthenticationFailure() 方法中,以检查它是否被命中,而没有被命中。
除了凭据检查和我的配置代码之外,我的所有 WebSecurityConfig 类都是相同的:
http.exceptionHandling().and().antMatcher("/**").authorizeRequests().anyRequest().authenticated().and().httpBasic().and().csrf().disable().formLogin().failureHandler(authenticationFailureHandler());
我在我的 WebSecurityConfig 中声明了这个:
@Bean
public AuthenticationFailureHandler authenticationFailureHandler() {
return new CustomAuthenticationFailureHandler();
}
我仍然收到 401 和空白响应,而不是我在处理程序中指定的 json。
编辑:在这里找到解决方案:
Customize authentication failure response in Spring Security using AuthenticationFailureHandler