securityManager設置realm之后,realm再設置matcher,怎么生效的?
CustomRealm?customRealm?=?new?CustomRealm(); DefaultSecurityManager?defaultSecurityManager?=?new?DefaultSecurityManager(); //?設置realm defaultSecurityManager.setRealm(customRealm); HashedCredentialsMatcher?matcher?=?new?HashedCredentialsMatcher(); matcher.setHashAlgorithmName("md5"); matcher.setHashIterations(1); //?設置matcher customRealm.setCredentialsMatcher(matcher); SecurityUtils.setSecurityManager(defaultSecurityManager);
2018-12-19
JAVA的對象參數(shù)是引用傳遞的而不是值傳遞。你無論什么時候設置對象參數(shù)的屬性都一樣。
2018-09-03
去看HashedCredentialsMatcher的源碼,里邊有個doCredentialsMatch方法,你可以把斷點打到這里,程序運行的時候一步步看,很清楚地就能看到shiro的匹配過程
2018-07-02
java的引用傳遞
2018-05-22
matcher設置進到了customRealm,customRealm設置進了defaultSecurityManager,
defaultSecurityManager設置進到了SecurityUtils,
通過SecurityUtils獲取一個subject主體,登錄的token會依據(jù)這條鏈路最終使用到設置的匹配器matcher的規(guī)則去進行權限認證。