话说Spring Security权限管理(源码详解)
最近项目需要用到Spring Security的权限控制,故花了点时间简单的去看了一下其权限控制相关的源码。到此,应该明白AffirmativeBased、UnanimousBased、ConsensusBased三者的区别了吧,spring security默认使用的是AffirmativeBased, 如果有需要,可配置为其它两个,也可自己去实现。spring security默认注册了RoleVoter和AuthenticatedVoter两个投票者。很简单吧,同时,我们还可以通过实现AccessDecisionManager来扩展自己的voter。但是,要实现这个,我们还必须得弄清楚attributes这个参数是从哪儿来的,这个是个很关键的参数啊。通过一张官方图能很清晰的看出这个问题来:接下来,就看看AccessDecisionManager的调用者AbstractSecurityInterceptor。看完这个,不知你是否能扩展出一套适合自己需求的权限需求来呢,如果还不太清楚,那也没关系,下篇就实战一下,根据它来开发一套自己的权限体系。
下载地址
用户评论