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