spring security:自定义认证成功处理器
使用spring认证登录,登录之后,一般还需要进行其他处理,例如:保存登录时间、登录ip到数据库,缓存用户信息到redis数据库等等,这些操作可以通过自定义一个登录成功处理器来处理。
自定义认证成功处理器
只需要继承AuthenticationSucdessHandler即可实现自定义处理器:
public class AuthenticationSuccessHandlerImpl implements AuthenticationSuccessHandler {@Overridepublic void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,Authentication authentication) throws IOException, ServletException {request.getRequestDispatcher("/login").forward(request, response);}}
我自定义的处理器很简单,直接转发请求到/login
,这是因为,我在使用spring security 之前,就已经写了一个登录功能,这样,不用修改代码就可以运行之前的登录逻辑了。
当然,spring-security.xml文件也要做小小的修改:
<http><intercept-url pattern="/user/**" access="hasRole('USER')" /><intercept-url pattern="/admin/**" access="hasRole('ADMIN')" /><form-login login-page="/login"login-processing-url="/login"authentication-failure-url="/login?error"username-parameter="phone"password-parameter="password" authentication-success-handler-ref="authSuccess"/><logout invalidate-session="true"logout-url="loginout"logout-success-url="/login"/></http> <!-- 自定义认证成功处理器 --><beans:bean id="authSuccess" class="com.huanle.utils.security.AuthenticationSuccessHandlerImpl"></beans:bean>
上面的代码中,我们定义了一个AuthenticationSuccessHandlerImpl
的bean
然后,在<form-login>
标签中添加了authentication-success-handler-ref="authSuccess"
,删除了default-target-url
属性,因为自定义处理器之后,default-target-url
就失效了。
spring security:自定义认证成功处理器相关推荐
- (二)Spring Security自定义登录成功或失败处理器
目录 一:创建登录成功处理器 二:创建登录失败处理器 三:添加处理器 三. 项目地址 我们接着上一章 Spring Security最简单的搭建,进行开发 LoginSuccessHandler 和L ...
- spring security 自定义认证登录
spring security 自定义认证登录 1.概要 1.1.简介 spring security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,以此来管理权限认证等. 1 ...
- SpringSecurity自定义认证成功处理器
自定义认证成功处理器 代码实现 1.实现AuthenticationSuccessHandler接口 第一步:实现 AuthenticationSuccessHandler @Component(&q ...
- Spring Security——自定义认证错误提示信息及自适应返回格式解决方案
解决方案 package com.hailiu.web.handler;import com.hailiu.model.Log; import com.hailiu.web.bean.Response ...
- spring security登陆认证成功后无法控制权限
刚接触spring security不久便遇到成功登陆但是无法控制权限的问题,一直找资料都没找到原因,之后才发现是个小坑.. 我们在定义角色表的时候要在角色的前面加上 ROLE_ 前缀 不然secur ...
- spring security自定义指南
序 本文主要研究一下几种自定义spring security的方式 主要方式 自定义UserDetailsService 自定义passwordEncoder 自定义filter 自定义Authent ...
- 3.Spring Security 自定义用户认证
Spring Security自定义用户认证 自定义认证过程 自定义认证的过程需要实现Spring Security提供的UserDetailService接口,该接口只有一个抽象方法loadUser ...
- Spring Security用户认证和权限控制(默认实现)
1 背景 实际应用系统中,为了安全起见,一般都必备用户认证(登录)和权限控制的功能,以识别用户是否合法,以及根据权限来控制用户是否能够执行某项操作. Spring Security是一个安全相关的框架 ...
- Spring Security自定义登录验证及登录返回结果
Spring Security自定义登录验证及登录返回结果 一.功能描述 二.处理逻辑 简单流程 自定义UserDetails 自定义UserDetailsDAO 自定义UserDetailsServ ...
最新文章
- java怎么创建二进制文件_Java:如何编写二进制文件?
- LeetCode-数学-9. 回文数
- 盘它:1200 天积淀,超 750 篇干货,为你甄选这 100 + 篇精华!
- C#基础解析之Ⅲ 【循环结构】
- java dao模式_Java DAO 模式
- html5怎么设置li向下移,请问如何实现鼠标移到li上改变另一个div的样式
- oracle Client 11g静默安装
- [Teamcenter 2007 开发实战] 调用web service
- [转载]Qt之获取本机网络信息_vortex_新浪博客
- armhf php环境搭建,armel、armhf 和 arm64 区别选择
- 浅析JDK,JRE,JVM的区别
- D. Powerful array 莫队算法或者说块状数组 其实都是有点优化的暴力
- C#积木游戏(改编自DevExpress GridTetris)
- ListView 控件与 ImageList 控件
- 点云数据(point cloud)
- js科学计算机,js网页在线科学计算器代码
- matlab弹簧振子的阻尼振动,matlab阻尼振动模拟
- python pipe_python pipe模块用法
- 一些EXCHANGE命令
- 计算机找不管理员,Win7系统鼠标右键找不到“管理员获取所有权”选项怎么办...
热门文章
- JavaScript计算两个日期相差天数/分钟/小时
- 解决Vue跳转到当前路由报错问题
- mysql自带加密解密字符集问题
- C# 获取gzip网页解压处理
- abaqus生成adams柔性体_基于ADAMS 的大型反铲挖泥机加装破碎锤 结构动力学分析
- linux安装数据库依赖包,Linux下安装DB2的包依赖
- mysql error 1201_ERROR 1201 (HY000): Could not initialize master info structure; .....
- 自定义链表增,删除,链表逆序
- 热度3年猛增20倍,Serverless云开发的技术架构全解析
- 扩展 KMP(模板) 洛谷P5410