shrio學習過程的理解(1)
到他的屬性設定資訊,例如你設定一個user,設定一個realm實現,又在realm中實現一個
自己的驗證規則,等等,他都會是根據自己的內部呼叫順序去呼叫對應的實現,如果發現
你實現了就用你的,沒有發現就用自己預設的,
例如:從你的配置檔案中獲取到了一個使用者資訊,然後token傳進來,他就是用自己預設的
驗證規則去驗證登入,
再例如,我沒有衝你的配置檔案中獲取到使用者資訊,但是獲取到了一個realm,這個realm
還實現了驗證規則,那麼你把token傳給securityManager,他就去根據這個規則去驗證
能不能登入,
從目前來看,他的預設的驗證規則就是查詢設定給securityManager使用者資訊和你傳入的
token進行比對.如果你覆蓋了他的規則就肯定用你的,securityManager你給他舍不設定
使用者資訊就沒有關係了
那個多個realm的驗證和對應的驗證順序就不多說
從資料庫獲取使用者資訊進行校驗,即使用JdbcRealm來驗證
說白了,就是你傳給我一個身份資訊,我從資料庫裡面查詢是不是有這個資訊,當然,這個的
的前提就是你要給我配置好我去查詢哪一個資料庫,進一步,他有一套自己的查詢規則,
就是shiro自己定義的一套查詢語句,這個必須是可以換的,在對應的資料庫裡面建立自己
的表,然後重新定義查詢語句就可以了,我現在能想到的是直接繼承Jdbcrealm,然後重寫
對應的方法,簡單,粗暴
發現了嗎,就是在圍繞著securityManager在設定,這個比一定控制著校驗的順序,校驗的
介面標準,包括授權,也就是說,我們要了解一個系統的安全設定,看一下系統對security
的設定就可以了
授權
上面講了驗證,驗證了之後要幹嘛,當讓是授權了,不然你驗證了幹嘛,就是要給我說我能
不能幹,這是事情還是securityManager來幹,上面也說了,這個比控制著整個許可權流程,
繞不開啊,授權這有一點沒有搞懂,就是他的這個角色的名字從哪來,還有就是許可權控制,
難道我要在每個方法上上面加一個註解???這肯定很逗啊,繼續往下看
這裡看到一個關鍵點,說shiro不維護角色和許可權的,要應用自己維護,那就有這個可能,
通過註解給資源設定一個許可權名稱,然後通過配置去給使用者授予這種許可權,我勒個去,先看,
我先不吐槽,而且他的資源:操作這種授權這裡的資源說的可能是表,.....!我感覺這牛逼了,