Spring Security流程

1.系統啓動時會登記FilterSecurityInterceptor.objectDefinitionSource(獲取訪問被訪問的資源所需要的權限)--->實現類FactoryBean類的getObject() ,返回一個包含(鍵) RUL和(值)LIST<包含功能ID信息>的鍵值對LinkedHashMap。objectDefinitionSource 2.用戶第一次訪問網站時(SESSION創建時),會將未登錄用戶菜單項放入HttpSessionConstants.SAN_USER_FUNCTION_MENU_MAP,默認選中第一個菜單項放入 HttpSessionConstants.SAN_SELECTED_MENUS_ARR。 3.用戶在登錄時會調用ValidationCodeAuthenticationFilter過濾器,同時也是將用戶所屬菜單信息放入HttpSessionConstants.SAN_USER_FUNCTION_MENU_MAP中。 4.每一次資源請求都會執行整理顯示菜單的過濾器ShowMenusFilter,主要負責從HttpSessionConstants.SAN_USER_FUNCTION_MENU_MAP中獲取當前選中的功能項,並將其存入 HttpSessionConstants.SAN_SELECTED_MENUS_ARR數組,該數組成員最多三個,分別代表某一層中被選中的那一個功能項。 5.dao方式設置用戶權限,就是每一個用戶都有一個UserDetails,UserDetails裏面包含一個權限數組GrantedAuthority[],具體到系統就是一些FunctionMenuId. 6. 疑點: 1.FunctionMenuEO.popedomCtrlUrls存放的是些URL,作用。。。 RequestKey key = new RequestKey(functionUrlExpression);//匹配所有URL String[] strArrFunctionPopedom = functionPopedom.toArray(new String[0]); ConfigAttributeDefinition definition = new ConfigAttributeDefinition(strArrFunctionPopedom); functionPopedomMap.put(key, definition); GrantedAuthority[]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章