因爲項目變動,須要把帳號體系轉移。也就是帳號驗證走的是另一個項目,本身的代碼再也不驗證帳號;因此須要經過內部接口,把帳號密碼提交;因爲本身項目自己已經使用shiro作登陸驗證;而驗證又是根據密碼,可是兩個項目的密碼加密方式不同,因此密碼要明文傳給接口; 因此如今來講說shiro中token 與token AuthenticationInfo的關係;數據庫
Token:是用戶提交給登陸接口;接口解析用戶提交的數據生成一個帶帳號和密碼等信息的token;緩存
AuthenticationInfo:是認證信息;若是啓用緩存,認證信息會保存在緩存中; 認證信息通常也是碼農的代碼實現的,而且信息是根據token的帳號到數據庫中取的信息;加密
因此爲了保證token與AuthenticationInfo可以驗證經過,必須保證token的密碼和AuthenticationInfo的密碼是同樣的;經過數據庫中密碼是加密過的,因此token的密碼也應該用相同的加密方式加密;token
-----------------------------------------------我是分割線-------------------------------------------------接口
shiro的認證和受權:it
認證:在subject.login()中起做用,並調用realm的doGetAuthenticationInfo方法;若是返回成功,那麼已經時人證完成,也就是登陸成功;io
受權:須要程序主動檢查受權信息。如:subject.isPermitted("xxx"); 這時會觸發受權流程,調用realm的doGetAuthorizationInfo方法。若是沒有緩存受權信息,那麼每次都會觸發;登錄