spring security實現單使用者登入

2021-08-19 11:47:29 字數 1221 閱讀 9971

建議先看完spring security的基礎配置,再看下面的配置流程就會很明白了。

在完成spring基礎配置之後,可以在配置限制單個使用者只能一處登入應用程式的功能,spring security支援這種開箱即用的功能。

第一步:使用自定義過濾器,配置concurrentsessionfilter,用來判斷session是否過期以及更新最新訪問時間;

在配置收到http請求時的安全驗證中新增以下配置:

並配置相應的

第二步:注入sessionauthenticationstrategy到customusernamepasswordauthenticationfilter中,否則預設使用的是nullauthenticatedsessionstrategy,則獲取不到登入使用者數;

其中「sas」配置為:

「sessionregistry」配置為:

配置完成後,重跑程式發現功能並沒有實現,在除錯過程中發現,判斷當前使用者是否重複時,這裡的sessioncount總是0

於是,我點開sessionreistry.getallsessions方法

發現這裡取principle是根據hashmap取值的,hashmap判斷相等需要hashcode相同,因此兩個相同使用者登入的時候需要相同的hashcode。在實現userdetails介面的使用者資訊中新增以下**

/**

* 當同一使用者登入多次時,獲取的使用者不是同乙個使用者

* 所以需要重寫hashcode和equals方法

*/@override

public boolean equals(object rhs)

return false;

}@override

public int hashcode()

初步理解Spring Security並實踐

spring security如何使用,先在你的專案pom.xml檔案中宣告依賴。org.springframework.bootgroupid spring boot starter securityartifactid dependency 然後建立乙個類並繼承websecurityconfig...

初步理解Spring Security並實踐

spring security如何使用,先在你的專案pom.xml檔案中宣告依賴。org.springframework.boot spring boot starter security 然後建立乙個類並繼承websecurityconfigureradapter這個方法,並在之類中重寫confi...

初步理解Spring Security並實踐

spring security如何使用,先在你的專案pom.xml檔案中宣告依賴。org.springframework.boot spring boot starter security 然後建立乙個類並繼承websecurityconfigureradapter這個方法,並在之類中重寫confi...