Shiro會話管理和加密

2021-10-09 16:11:14 字數 1463 閱讀 4414

會話管理

shiro提供了完整的企業級會話管理功能,不依賴於底層容器,不管是j2se還是j2ee環境都可以使用,提供了會話管理,會話事件監聽,會話事件監聽,會話儲存/持久化,容器無關的集群,失效/過期支援,對web的透明支援,sso單點登入的支援等特性.

會話管理api

subject.getsession():獲取會話,等價於subject.getsession(true),既如果當前沒有建立session物件會建立乙個;subject.getsession(false),如果當前沒有建立session物件則返回null.

session.setattribute(key,val):設定會話屬性

session.getattribute(key):獲取會話屬性

session.removeattribute(key):刪除會話屬性

abstractsessiondao:提供了sessiondao的基礎實現,如生成會話id等.

cachingsessiondao:提供了對開發者透明的會話快取的功能,需要設定相應的cachemanageer.

memonrysesiondao:直接在記憶體中進行會話維護.

enterprisecachesessiondao:提供了快取功能的會話維護,預設情況下使用mapcache實現,內部使用concurrenthashmap 儲存快取的會話.

在實際開發中,如果要用到sessionidgenerator屬性,可以自定義類實現自enterprisecachesessiondao類,為其注入sessionidgeneratior屬性,如果用到快取的話還可以注入乙個快取實現.然後將這個sessiondao元件注入給sessionmanager(會話管理器),最後將sessionmanager配置給sescuritymanager.

改造shiroconfig1.3.1雜湊與鹽

如果你需要儲存密碼(比如**使用者的密碼),你要考慮如何保護這些密碼資料,向像下面那樣直接密碼寫入資料庫中是即不安全的,因為任何開啟資料的人,都將可以直接看到這樣密碼,不如之前的600w csdn賬號洩露對使用者可能造成很大的損失。

解決的方法是密碼加密後再儲存進資料庫,比較常用的加密方法是使用雜湊函式(雜湊演算法),常見的雜湊演算法如 md5,sha等。雜湊函式的具體定義,大家可以在網上或者相關書籍中查閱到,簡單地說,它的特性如下:

原始密碼經雜湊函式計算後得到乙個雜湊值
改變原始密碼,雜湊函式計算出的雜湊值也會相應改變
同樣的密碼,雜湊值也是相同的
雜湊函式的單向、不可逆的。也就是說從雜湊值,你無法推算出原始的密碼是多少

超簡單Shiro會話管理和加密

1.新增依賴 org.crazycake groupid shiro redis artifactid 3.1.0 version dependency 2.配置檔案 redis伺服器位址 spring.redis.host localhost redis伺服器連線埠 spring.redis.po...

Shiro會話管理知識以及使用

使用者訪問應用時保持的連線關係,在多次互動中應用能夠識別出當前訪問的使用者是誰,且可以在多次互動中儲存一些資料,當主體成功login後就會建立乙個會話 概述 會話管理器管理著應用中所有 subject的會話的建立 維護 刪除 失效 驗證等工作 概述 會話 用於監聽會話建立 過期及停止事件,通常實現s...

簽名和加密

既然是加密,那肯定是不希望別人知道我的訊息,所以只有我才能解密,所以可得出公鑰負責加密,私鑰負責解密 同理既然是簽名,那肯定是不希望有人冒充我發訊息,只有我才能發布這個簽名,所以可得出私鑰負責簽名,公鑰負責驗證。這裡一共有 兩組四個 金鑰 a的公鑰 pub a a的私鑰 pri a b的公鑰 pub...