建議先看完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...