超簡單Shiro會話管理和加密

2021-10-09 16:19:33 字數 3052 閱讀 9437

1.新增依賴

org.crazycake<

/groupid>

shiro-redis<

/artifactid>

3.1.0

<

/version>

<

/dependency>

2.配置檔案

#redis伺服器位址

spring.redis.host=localhost

#redis伺服器連線埠

spring.redis.port=

6379

#redis伺服器連線密碼

#spring.redis.password=foobared

#連線池最大連線數

spring.redis.lettuce.pool.max-active=

8#連線池最大阻塞等待時間

spring.redis.lettuce.pool.max-wait=-1

#連線池最大空閒連線

spring.redis.lettuce.pool.max-idle=

8#連線池最小空閒連線

spring.redis.lettuce.pool.min-idle=

0#redis伺服器超時時間

spring.redis.timeout=

5000

3.改造shiroconfig

@value

("$"

)private string host;

@value

("$"

)private

int port;

@value

("$"

)private

int timeout;

@bean

public myshirorealm myshirorealm()

@bean

public securitymanager securitymanager()

@bean

public shirofilte***ctorybean shirofilte***ctorybean

(securitymanager securitymanager)}/

/配置認證訪問

filterchaindefinitionmap.

put(

"/**"

,"authc");

//必須放在過濾器的最後面

shirofilte***ctory.

setfilterchaindefinitionmap

(filterchaindefinitionmap)

;return shirofilte***ctory;

}

4.測試它會報user轉換錯誤別慌!新增乙個熱部署包來提高效率先!!!

完成後再redis中檢視資訊如下:

加上"鹽"試試

@test

public

void

tes***5hash()

設倆個介面:

public

inte***ce

passwordservice

public

inte***ce

credentialsmatcher

1.在service新增加密方法:

@override

public string encryptpassword

(object plaintextpassword)

throws illegalargumentexception

2.在shiroconfig中注入myshirorealm

@bean

public hashedcredentialsmatcher hashedcredentialsmatcher()

3.修改返回身份資訊的**

@override

protected authenticationinfo dogetauthenticationinfo

(authenticationtoken authenticationtoken)

throws authenticationexception if(

"lock"

.equals

(operations.

get(shiro_is_lock+usrname)))

user user = userservice.

getuserbyusername

(usrname);if

(user==null)

if(user.

getusrflag()

==null || user.

getusrflag()

.intvalue()

==0) ******authenticationinfo info =

new******authenticationinfo

(user,user.

getusrpassword()

, bytesource.util.

bytes

("czkt"),

getname()

);return info;

}

**這樣我們在去測試看看就好了!我們下次見~**

Shiro會話管理和加密

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

shiro加密簡單實現

1 新增shiro依賴 定義shiro的版本號 1.2.3 加入shiro的依賴 org.apache.shiro shiro core org.apache.shiro shiro web org.apache.shiro shiro spring org.apache.shiro shiro a...

Shiro會話管理知識以及使用

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