最近項目需要用到Spring Security的權(quán)限控制,故花了點時間簡單的去看了一下其權(quán)限控制相關(guān)的源碼(版本為4.2)。
AccessDecisionManager
spring security是通過AccessDecisionManager進(jìn)行授權(quán)管理的,先來張官方圖鎮(zhèn)樓。
AccessDecisionManager
AccessDecisionManager 接口定義了如下方法:
//調(diào)用AccessDecisionVoter進(jìn)行投票(關(guān)鍵方法)void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes) throws AccessDeniedException, InsufficientAuthenticationException;boolean supports(ConfigAttribute attribute);boolean supports(Class clazz);