shiro免密碼登錄問題

最近需要從第三方跳轉,進行免密碼登錄,之前也沒研究過shiro,不過看了之後感覺不是很難!

先說說自己當初的打算,首先配置sso登錄

接收消息,得到token,內置一個賬號和密碼,進行登錄,後來考慮到有密碼有可能改變,或者需要獲得不同權限的登錄,因此決定進行無密碼登錄。

1.新建 CaptchaUsernamePasswordToken繼承 UsernamePasswordToken,添加一個免密碼標識,如:public boolean unpass=false;

2.新建RetryLimitHashedCredentialsMatcher繼承HashedCredentialsMatcher,重寫doCredentialsMatch,這個方法是關鍵,用於繼承密碼驗證


3.新建 ShiroDbRealm 繼承 AuthorizingRealm,密碼驗證在這個類的doGetAuthenticationInfo中,因此重寫doGetAuthenticationInfo,裏邊寫獲得用戶信息等信息,這裏邊不是重點,不詳細說明,重點在initCredentialsMatcher中,這個方法也可以在shiro.xml中配置(未嘗試),引入自己寫的密碼驗證類,HASH_ALGORITHM是加密算法,HASH_INTERATIONS這個加密迭代次數

 

最後就可以在SsoLoginFilter中,創建token,設置免密標識爲true,便可以進行登錄,用戶需要是系統中存在的,權限等信息都是原來賬號具備的,可以根據傳遞過來的信息,獲取不同賬號的權限

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章