小编给大家分享一下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字段。
需要注意的是如果是通过readme进行的登录,不会更新当前用户的登录时间,只有通过账号密码登录时才会进行更新,也就是只有这时才会执行这个onAuthenticationSuccess方法
在用户登录成功后记录本次登录相关的信息,需要继承Spring security提供的SavedRequestAwareAuthenticationSuccessHandler类,重写其中的onAuthenticationSuccess方法,在其中进行记录用户信息的操作,在方法的最后调用父类的方法把用户引导到未登录前要去的页面。
测试工程代码的地址:工程示例
以上是Spring security实现记录用户登录时间功能的案例分析的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!