没有合适的资源?快使用搜索试试~ 我知道了~
首页自定义Spring Security的身份验证失败处理方法
资源详情
资源评论
资源推荐

自定义自定义Spring Security的身份验证失败处理方法的身份验证失败处理方法
在本篇文章里小编给大家整理了一篇关于自定义Spring Security的身份验证失败的处理方法,有需要的朋友们学
习下。
1.概述概述
在本快速教程中,我们将演示如何在Spring Boot应用程序中自定义Spring Security的身份验证失败处理。目标是使用表单登录
方法对用户进行身份验证。
2.认证和授权认证和授权(Authentication and Authorization)
身份验证和授权通常结合使用,因为它们在授予系统访问权限时起着重要且同样重要的作用。
但是,它们具有不同的含义,并在验证请求时应用不同的约束:
身份验证 - 在授权之前;它是关于验证收到的凭证;我们验证用户名和密码是否与我们的应用程序识别的用户名和密码相匹配
授权 - 用于验证成功通过身份验证的用户是否有权访问应用程序的某个功能
我们可以自定义身份验证和授权失败处理,但是,在此应用程序中,我们将专注于身份验证失败。
3. Spring Security的的AuthenticationFailureHandler
Spring Security提供了一个默认处理身份验证失败的组件。
但是,我们发现于默认行为不足以满足实际要求的情况是很常见的。
如果是这种情况,我们可以创建自己的组件并通过实现AuthenticationFailureHandler接口提供我们想要的自定义行为:
public class CustomAuthenticationFailureHandler
implements AuthenticationFailureHandler {
private ObjectMapper objectMapper = new ObjectMapper();
@Override
public void onAuthenticationFailure(
HttpServletRequest request,
HttpServletResponse response,
AuthenticationException exception)
throws IOException, ServletException {
response.setStatus(HttpStatus.UNAUTHORIZED.value());
Map<String, Object> data = new HashMap<>();
data.put(
"timestamp",
Calendar.getInstance().getTime());
data.put(
"exception",
exception.getMessage());
response.getOutputStream()
.println(objectMapper.writeValueAsString(data));
}
}
默认情况下,Spring使用包含错误信息的请求参数将用户重定向回登录页面。
在此应用程序中,我们将返回401响应,其中包含有关错误的信息以及错误发生的时间戳。
DelegatingAuthenticationFailureHandler将AuthenticationException子类委托给不同的AuthenticationFailureHandler,这
意味着我们可以为AuthenticationException的不同实例创建不同的行为
ExceptionMappingAuthenticationFailureHandler根据AuthenticationException的完整类名将用户重定向到特定的URL
无论AuthenticationException的类型如何,ForwardAuthenticationFailureHandler都会将用户转发到指定的URL
SimpleUrlAuthenticationFailureHandler是默认使用的组件,如果指定,它会将用户重定向到failureUrl;否则,它只会返回
401响应
现在我们已经创建了自定义AuthenticationFailureHandler,让我们配置我们的应用程序并覆盖Spring的默认处理程序:
@Configuration
@EnableWebSecurity
public class SecurityConfiguration
extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth)



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0