IniWebEnvironment中的WebSecurityManager加載過程分析

1步,直接調用構造函數,將ini設置到成員變量中,沒什麼可看的。

2步,最終會調用WebIniSecurityManagerFactory.createInstance(Ini ini)方法


由上面的代碼可以看出,SecurityManager優先且只處理[main]部分的內容。


上面這段代碼是核心,集中在以上3個步驟中

1步,做的事情最多,看下圖


我們接着看SecurityManager是如何create的



繼續super()方法,如下


繼續看super()方法,如下


最終的super()方法實現,如下,設置了eventBus


好,我們再回到SessionsSecurityManager的構造函數,看看DefaultSessionManager都幹了什麼


我們來看一張Session的類圖


我們再回到,IniSecurityManagerFactory.createDefaults(Ini ini, Ini.Section mainSection)看看createRealm(Ini ini)如何實現


很簡單,對吧。。。

再回到IniSecurityManagerFactory.createSecurityManager()

其中的buildInstances()方法,很簡單,用反射把[main]節點設置的filter, real等進行實例化,並加到一個map中。

其中的setRealms()方法,如下


afterRealmsSet()是核心,如下


OK,完成...

發佈了154 篇原創文章 · 獲贊 203 · 訪問量 103萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章