色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Spring security如何實(shí)現(xiàn)記錄用戶登錄時(shí)間功能

瀏覽:76日期:2023-09-17 15:32:25

一、原理分析

spring security提供了一個(gè)接口 AuthenticationSuccessHandler,該接口中只有一個(gè)方法,用來進(jìn)行登錄成功后的操作

public interface AuthenticationSuccessHandler { /** * Called when a user has been successfully authenticated. * * @param request the request which caused the successful authentication * @param response the response * @param authentication the <tt>Authentication</tt> object which was created during * the authentication process. */ void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException;}

我們可以通過實(shí)現(xiàn)該接口來自定義登錄成功后的操作,但spring security提供了一個(gè)SavedRequestAwareAuthenticationSuccessHandler實(shí)現(xiàn)類,這個(gè)實(shí)現(xiàn)類可以記住用戶未登錄前要訪問的地址,這樣登錄成功后就可以把用戶再跳轉(zhuǎn)到他想去的頁面。所以我們一般使用繼承這個(gè)類的方式來實(shí)現(xiàn)自定義登錄后續(xù)操作的功能。

二、實(shí)現(xiàn)方式

2.1 自定義AuthenticationSuccessHandler實(shí)現(xiàn)類

自定義AuthenticationSuccessHandler接口的實(shí)現(xiàn)類,繼承SavedRequestAwareAuthenticationSuccessHandler類,并加入到spring容器中

@Component('loginSuccessHandler')public class LoginSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler { @Autowired private IUserDao userDao; public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { //記錄相關(guān)的用戶信息,如上次登錄時(shí)間 String name = authentication.getName(); userDao.updateLastLonginTime(System.currentTimeMillis(),name); //調(diào)用父類的方法把用戶引導(dǎo)到未登錄前要去的頁面 super.onAuthenticationSuccess(request,response,authentication); }}

其中remember-me-parameter='remembermeParamater'指定前臺(tái)傳遞的是否rememberme的參數(shù)名,前臺(tái)要傳遞的參數(shù)值是true或false

2.2 在spring-security的配置文件中指定自定義的AuthenticationSuccessHandler

<!--自定義登錄頁面--> <security:form-login login-page='/login.html' login-processing-url='/login' username-parameter='username' password-parameter='password' authentication-failure-forward-url='/failed.html' default-target-url='/index.html' authentication-success-handler-ref='loginSuccessHandler' />

實(shí)例上就是在定義自定義登錄頁面的標(biāo)簽內(nèi)指定authentication-success-handler-ref='loginSuccessHandler',其中l(wèi)oginSuccessHandler是自定義的這個(gè)bean在容器中的名稱

2.3 測(cè)試

啟動(dòng)工程,進(jìn)行登錄,登錄成功后會(huì)更新用戶表中的last_login_time字段。

Spring security如何實(shí)現(xiàn)記錄用戶登錄時(shí)間功能

需要注意的是如果是通過readme進(jìn)行的登錄,不會(huì)更新當(dāng)前用戶的登錄時(shí)間,只有通過賬號(hào)密碼登錄時(shí)才會(huì)進(jìn)行更新,也就是只有這時(shí)才會(huì)執(zhí)行這個(gè)onAuthenticationSuccess方法

三、總結(jié)

在用戶登錄成功后記錄本次登錄相關(guān)的信息,需要繼承spring-security提供的SavedRequestAwareAuthenticationSuccessHandler類,重寫其中的onAuthenticationSuccess方法,在其中進(jìn)行記錄用戶信息的操作,在方法的最后調(diào)用父類的方法把用戶引導(dǎo)到未登錄前要去的頁面。

測(cè)試工程代碼的地址:工程示例

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 免费看又黄又爽又猛的网站 | 国产成人精品福利网站在线 | 91精品视频免费 | 国产精品久久一区一区 | 国产高清一级视频在线观看 | 国产成人免费高清在线观看 | 国产a久久精品一区二区三区 | 成年人色网站 | 97视频在线免费播放 | 男人天堂网址 | 亚洲天堂视频网 | 深夜福利视频在线观看 | 手机毛片 | 国产欧美视频综合二区 | 欧美色视频日本片免费高清 | 一级做a爱过程免费观看 | 国产精品久久久久久网站 | 免费视频一区二区三区四区 | 东京一区二区三区高清视频 | 欧美一级成人免费大片 | 欧美一区二区三区久久综 | 亚洲国产欧美视频 | 欧美性aaaxxx级| 久久www免费人成_看片高清 | 99久久综合 | 日本不卡免费高清一级视频 | 久久成人综合网 | 欧美成人高清免费大片观看 | 国产一区二区免费不卡在线播放 | 自拍偷拍二区 | 成人久久网| 欧美在线成人午夜网站 | 欧洲免费无线码二区5 | 亚洲精品免费在线观看 | 国产一区二区三区精品视频 | 91久久国产成人免费观看资源 | 国内真实愉拍系列情侣 | 亚洲伊人色综合网站亚洲伊人 | 国产欧美在线不卡 | 久久99国产亚洲高清观看韩国 | 国产在线精品一区免费香蕉 |