SpringSecurity-5-自定义登录验证
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
默认登录成功失败跳转页
Spring Security 默认的登录成功处理器为 SimpleUrlAuthenticationSuccessHandler
,其 defaultTargetUrl
默认为 /
,导致登录成功后会跳转到主页(如 index.html
)。登录失败时,默认使用 AuthenticationFailureHandler
跳转到配置的 failureUrl
。
为什么自定义登录验证结果处理场景
自定义登录结果处理通常是因为需要后端返回JSON数据,或者需要根据不同用户登录后跳转到不同页面。
自定义登录成功的结果处理
通过实现 AuthenticationSuccessHandler
,可以创建自定义的成功处理器,如 MyAuthenticationSuccessHandler
,返回JSON数据。也可以继承 SavedRequestAwareAuthenticationSuccessHandler
来记住用户原请求路径,并在登录成功后跳转到该路径,可以通过配置文件设置返回类型为HTML或JSON。
自定义登录失败的结果处理
自定义登录失败处理器 MyAuthenticationFailureHandler
实现了 AuthenticationFailureHandler
接口,返回JSON数据。另外,继承 SimpleUrlAuthenticationFailureHandler
的处理器可以简化代码,通过配置决定是返回JSON数据还是跳转到登录页面。
自定义权限访问异常结果处理
MyAuthenticationEntryPoint
和 MyAccessDeineHandler
分别用于处理匿名用户无权限访问和认证用户无访问权限的情况,均返回JSON格式的错误信息。
想要了解更多内容?