欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringSecurity rememberme功能實現(xiàn)過程解析

 更新時間:2020年03月03日 14:37:51   作者:天宇軒-王  
這篇文章主要介紹了SpringSecurity rememberme功能實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

記住我功能原理分析

還記得前面咱們分析認證流程時,提到的記住我功能嗎?

現(xiàn)在繼續(xù)跟蹤找到AbstractRememberMeServices對象的loginSuccess方法:

再點進去上面if判斷中的rememberMeRequested方法,還在當前類中:

如果上面方法返回true,就表示頁面勾選了記住我選項了。

繼續(xù)順著調(diào)用的方法找到PersistentTokenBasedRememberMeServices的onLoginSuccess方法:

注意name和value屬性的值不要寫錯哦!

先測試一下,認證通過后,關(guān)掉瀏覽器,再次打開頁面,發(fā)現(xiàn)還要認證!為什么沒有起作用呢?
這是因為remember me功能使用的過濾器RememberMeAuthenticationFilter默認是不開啟的!

開啟remember me過濾器

<security:remember-me token-validity-seconds="60"></security:remember-me>

說明:RememberMeAuthenticationFilter中功能非常簡單,會在打開瀏覽器時,自動判斷是否認證,如果沒有則
調(diào)用autoLogin進行自動認證。

remember me 安全性分析

記住我功能方便是大家看得見的,但是安全性卻令人擔憂。因為 Cookie畢竟是保存在客戶端的,很容易盜取,而且
cookie的值還與用戶名、密碼這些敏感數(shù)據(jù)相關(guān),雖然加密了,但是將敏感信息存在客戶端,還是不太安全。那么
這就要提醒喜歡使用此功能的,用完網(wǎng)站要及時手動退出登錄,清空認證信息。

此外,SpringSecurity還提供了remember me的另一種相對更安全的實現(xiàn)機制 :在客戶端的cookie中,僅保存一個
無意義的加密串(與用戶名、密碼等敏感數(shù)據(jù)無關(guān)),然后在db中保存該加密串-用戶信息的對應關(guān)系,自動登錄
時,用cookie中的加密串,到db中驗證,如果通過,自動登錄才算通過。

持久化remember me信息

創(chuàng)建一張表,注意這張表的名稱和字段都是固定的,不要修改。

 <security:remember-me token-validity-seconds="60"
               data-source-ref="dataSource"
     remember-me-parameter="remember-me"></security:remember-me>
CREATE TABLE `persistent_logins` (
`username` varchar(64) NOT NULL,
`series` varchar(64) NOT NULL,
`token` varchar(64) NOT NULL,
`last_used` timestamp NOT NULL,
PRIMARY KEY (`series`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java編程之基于SpringBoot框架實現(xiàn)掃碼登錄

    java編程之基于SpringBoot框架實現(xiàn)掃碼登錄

    本文將介紹基于SpringBoot + Vue + Android實現(xiàn)的掃碼登錄demo的總體思路,文中附含詳細示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Java中的CopyOnWriteArrayList原理詳解

    Java中的CopyOnWriteArrayList原理詳解

    這篇文章主要介紹了Java中的CopyOnWriteArrayList原理詳解,如源碼所示,CopyOnWriteArrayList和ArrayList一樣,都在內(nèi)部維護了一個數(shù)組,操作CopyOnWriteArrayList其實就是在操作內(nèi)部的數(shù)組,需要的朋友可以參考下
    2023-12-12
  • Java實現(xiàn)Excel文件轉(zhuǎn)PDF(無水印無限制)

    Java實現(xiàn)Excel文件轉(zhuǎn)PDF(無水印無限制)

    這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)Excel文件轉(zhuǎn)PDF的效果,并可以無水印、無限制。文中的示例代碼講解詳細,需要的可以參考一下
    2022-06-06
  • SpringBoot項目@Async方法問題解決方案

    SpringBoot項目@Async方法問題解決方案

    這篇文章主要介紹了SpringBoot項目@Async方法問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 深入淺析JDK8新特性之Lambda表達式

    深入淺析JDK8新特性之Lambda表達式

    Lambda表達式主要是替換了原有匿名內(nèi)部類的寫法,也就是簡化了匿名內(nèi)部類的寫法。這篇文章主要介紹了JDK8新特性之Lambda表達式,非常不錯感興趣的朋友參考下吧
    2016-10-10
  • eclipse中maven插件安裝教程

    eclipse中maven插件安裝教程

    這篇文章主要為大家詳細介紹了eclipse中maven插件安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Java的Lombok之@Builder使用總結(jié)

    Java的Lombok之@Builder使用總結(jié)

    這篇文章主要介紹了Java的Lombok之@Builder使用總結(jié),當不使用@Builder注解到類上,創(chuàng)建T1的有參構(gòu)造函數(shù),入?yún)⒉粌H包括T1中所有的參數(shù),還包括T中所有的參數(shù),T2的屬性由T1在有參構(gòu)造函數(shù)中通過調(diào)用父類構(gòu)造器的方式賦初值,需要的朋友可以參考下
    2023-12-12
  • spring實例化javabean的三種方式分享

    spring實例化javabean的三種方式分享

    這篇文章介紹了spring實例化javabean的三種方式,有需要的朋友可以參考一下
    2013-10-10
  • Java中如何將?int[]?數(shù)組轉(zhuǎn)換為?ArrayList(list)

    Java中如何將?int[]?數(shù)組轉(zhuǎn)換為?ArrayList(list)

    這篇文章主要介紹了Java中將?int[]?數(shù)組?轉(zhuǎn)換為?List(ArrayList),本文通過示例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • JAVA中的函數(shù)接口示例詳解

    JAVA中的函數(shù)接口示例詳解

    創(chuàng)建一個自定義的Sayable接口,這是一個使用@FunctionalInterface注解的函數(shù)式接口,這篇文章主要介紹了JAVA中的函數(shù)接口,你都用過嗎,需要的朋友可以參考下
    2023-11-11

最新評論