Spring security中怎么自定义成功和失败
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,本篇文章为大家展示了Spring security中怎么自定义成功和失败,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。实现步骤1. 复制上一示例的源码重命名包
千家信息网最后更新 2025年01月24日Spring security中怎么自定义成功和失败实现步骤
本篇文章为大家展示了Spring security中怎么自定义成功和失败,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
实现步骤
1. 复制上一示例的源码
重命名包名 case3 为 case4
重命名 Case3Application.java 为 Case4Application.java
2. 在 WebSecurityConfig 中配置登录页
在 config(HttpSecurity http) 方法中对 formLogin 选项进行配置。需要包含以下设置:
创建 SuccessHandler 实现 AuthenticationSuccessHandler 接口,并实现 onAuthenticationSuccess 方法,自定义返回内容;
创建 FailureHandler 实现 AuthenticationFailureHandler 接口,并实现 onAuthenticationFailure 方法,自定义返回内容;
在 formLogin 配置项上增加 successHandler 和 failureHandler 配置
相关代码如下:
package net.txt100.learn.springsecurity.base.case4.config;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.HttpStatus;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;import org.springframework.security.core.Authentication;import org.springframework.security.core.AuthenticationException;import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;import org.springframework.security.crypto.password.PasswordEncoder;import org.springframework.security.web.authentication.AuthenticationFailureHandler;import org.springframework.security.web.authentication.AuthenticationSuccessHandler;import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Title: WebSecurityConfig * Package: net.txt100.learn.springsecurity.base.case2.config * Creation date: 2019-08-11 * Description: * * @author Tonglei * @since 1.0 */@Configurationpublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Bean public PasswordEncoder passwordEncoder() { // 配置密码的保护策略,spring security 默认使用 bcrypt 加密算法。 // 此处只要显式声明 BCryptPasswordEncoder Bean 即可 return new BCryptPasswordEncoder(); } @Override protected void configure(HttpSecurity http) throws Exception { AuthenticationSuccessHandler successHandler = new AuthenticationSuccessHandler() { @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { response.setContentType("application/json;charset=UTF-8"); JSON.writeJSONString(response.getOutputStream(), authentication); } }; AuthenticationFailureHandler failureHandler = new AuthenticationFailureHandler() { @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); response.setContentType("application/json;charset=UTF-8"); JSON.writeJSONString(response.getOutputStream(), exception); } }; http .csrf().disable() // 关闭 CSRF 保护功能,否则不支持 Post 请求 .authorizeRequests() // 针对 HttpServletRequest 进行安全配置 .antMatchers("/login.html").permitAll() // login.html 页面无需登录即可访问 .anyRequest().authenticated() // 对所有 Request 均需安全认证 .and().formLogin() .successHandler(successHandler) .failureHandler(failureHandler) .and().httpBasic(); // 定义如何验证用户,此项代表弹出浏览器认证窗口 }}
上述内容就是Spring security中怎么自定义成功和失败,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
配置
内容
方法
成功
安全
技能
接口
知识
保护
登录
认证
简明
简明扼要
代码
代表
功能
安全认证
密码
就是
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广东潮阳网络技术有限公司
戴尔服务器r720光盘重装系统
新一代网络安全公司
微软软件开发标准模板
河南通信软件开发价格
科技互联网观察家世界500强
宣化区网络安全宣传
GBI是什么数据库
银狐软件开发
戴尔服务器如何开通远程管理
战网国际服找不到服务器
macos服务器系统
做网络安全的书籍
怎么开csgo社区服务器
网络技术信息搜集
广东专业软件开发报价
淘宝上的出租服务器是什么意思
魔兽世界各服务器开启条件
操作系统与数据库的安全性
服务器虚拟机如何调用
中国电影数据库
牡丹江软件开发公司收费
数据库加载对象
杭州西奥服务器如何设置并联
天书奇谈服务器找不到怎么办
向日葵服务器连接一段时间失败
软件开发英语词汇音标
网络安全主题还可以有哪些
亚马逊数据库的特点
国家安全教育日网络安全培训