Spring security中怎么自定义成功和失败
发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,本篇文章为大家展示了Spring security中怎么自定义成功和失败,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。实现步骤1. 复制上一示例的源码重命名包
千家信息网最后更新 2024年11月16日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安全错误
数据库的锁怎样保障安全
服务机器人应用软件开发
近代华文数据库
服务器软件工程师培训
武汉市泰和软件开发有限公司
三级网络技术格式
数据库的管理系统
培育网络安全人才
ibm服务器断电重插开不了机
护苗青少年网络安全课活动
金华蓝巨星网络技术有限公司
荆门定制软件开发企业
同学网络安全教程
软件开发财务经历怎么写
计算机网络技术职业特点有哪些
数据库最后一条命令
惠普服务器打开f12按键没反应
华盛顿网络安全大会
护苗网络安全课答题
网络技术工程师应聘
数据库高级技术专家
上位机软件开发c 面试
电脑显示服务器未开启是为什么
兼职软件开发商通过什么挣钱
服务器安全方案归纳pdf
井陉网络安全检查
数据库表设计 用户信息表
爱康科技互联网投票
温州网络技术支持费用
软件开发交付是交几个税
数据库高级技术专家