Spring security实现记录用户登录时间功能的案例分析

  介绍

小编给大家分享一下Spring security实现记录用户登录时间功能的案例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>一、原理分析

Spring security提供了一个接口AuthenticationSuccessHandler,该接口中只有一个方法,用来进行登录成功后的操作

公共接口AuthenticationSuccessHandler {/* *
  *时调用一个用户已成功进行身份验证。
  *
  * @param请求导致成功的身份验证的请求
  * @param响应的响应
  * @param认证& lt; tt> Authentication</tt>对象中创建
  *身份验证过程。
  */空白> @ component (“loginSuccessHandler")
  公开课LoginSuccessHandler延伸SavedRequestAwareAuthenticationSuccessHandler {
  
  @ autowired
  私人IUserDao userDao;
  公共空间> & lt; !——自定义登录页面——比;
  & lt;安全:登录登录页面=?login.html"login-processing-url=?login"
  username参数=皍sername"password参数=皃assword"
  authentication-failure-forward-url=?failed.html"
  default-target-url=?index.html"
  authentication-success-handler-ref=發oginSuccessHandler"/在

实例上就是在定义自定义登录页面的标签内指定authentication-success-handler-ref=發oginSuccessHandler",其中loginSuccessHandler是自定义的这个bean在容器中的名称

2.3测试

启动工程,进行登录,登录成功后会更新用户表中的last_login_time字段。

 Spring security实现记录用户登录时间功能的案例分析

需要注意的是如果是通过readme进行的登录,不会更新当前用户的登录时间,只有通过账号密码登录时才会进行更新,也就是只有这时才会执行这个onAuthenticationSuccess方法

在用户登录成功后记录本次登录相关的信息,需要继承Spring security提供的SavedRequestAwareAuthenticationSuccessHandler类,重写其中的onAuthenticationSuccess方法,在其中进行记录用户信息的操作,在方法的最后调用父类的方法把用户引导到未登录前要去的页面。

测试工程代码的地址:工程示例

以上是Spring security实现记录用户登录时间功能的案例分析的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

Spring security实现记录用户登录时间功能的案例分析