本站首页    管理页面    写新日志    退出


«may 2026»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:946509
建立时间:2007年5月10日




[acegi权限认证]Acegi学习小结
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/7/3 10:07:38

jamesby 发表于 2007-01-17 15:34   浏览4853次关键字: Spring   acegi加入在 Acegi 专栏 专栏   一、基本原理 Acegi认证授权主要基于两大技术,一是Filter机制,二是AOP的拦截机制。通过FilterSecurityInterceptor很好地实现了对URI的保护,通过MethodSecurityInterceptor实现了对Service的方法的拦截保护,通过ACL 实现了对prototype类型的Object进行过滤和保护。 二、基本概念 HttpSessionContextIntegrationFilter 存储SecurityContext in HttpSession ChannelProcessingFilter 重定向到另一种协议,如http到https ConcurrentSessionFilter 因为不使用任何SecurityContextHolder的功能,但是需要更新SessionRegistry来表示当前的发送请求的principal,通过在web.xml中注册Listener监听Session事件,并发布相关消息,然后由SessionRegistry获得消息以判断当前用户的Session数量。 AuthenticationProcessingFilter 普通认证机制(大多数用这个) CasProcessingFilter CAS认证机制 BasicProcessingFilter Http协议的Basic认证机制 HttpRequestIntegrationFilter Authentication 从容器的HttpServletRequest.getUserPrincipal()获得 JbossIntegrationFilter 与Jboss相关。 SecurityContextHolderAwareRequestFilter 与servlet容器结合使用。 RememberMeProcessingFilter 基于Cookies方式进行认证。 AnonymousProcessingFilter 匿名认证。 ExceptionTranslationFilter 捕获所有的Acegi Security 异常,这样要么返回一个HTTP错误响应或者加载一个对应的AuthenticationEntryPoint AuthenticationEntryPoint 认证入口 三、Acegi认证授权流程 1、FilterToBeanProxy 负责代理请求给FilterChainProxy 2、FilterChainProxy 方便的将多个Filter串联起来,如上面基本概念中提到的各种Filter,当然如果对URI进行授权保护,也可以包含FilterSecurityInterceptor。注意各Filter的顺序。 3、AbstractSecurityInterceptor 调度中心。负责调用各模块完成相应功能。 FilterSecurityInterceptor 对URI进行拦截保护 AspectJSecurityInterceptor 对方法进行拦截保护 MethodSecurityInterceptor 对方法进行拦截保护 4、AuthenticationManager 用户认证 -> AuthenticationProvider 实际进行用户认证的地方(多个)。 -> UserDetailsService 返回带有GrantedAuthority的UserDetail或者抛出异常。 5、AccessDecisionManager(UnanimousBased/AffirmativeBased/ConsensusBased) 授权 -> AccessDecisionVoter(RoleVoter/BaseAclEntryVoter) 实际投票的Voter(多个). 6、RunAsManager 变更GrantedAuthority 7、AfterInvocationManager 变更返回的对象 -> BaseInvocationProvider 实际完成返回对象变更的地方(多个)。 四、Acegi实例 http://www.javaeye.com/topic/43341声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。若作者同意转载,必须以超链接形式标明文章原始出处和作者。


阅读全文(3819) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144854498 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号