快速业务通道

使用Acegi保护Java应用程序,第1部分: 架构概览和安全过滤器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
int">       <property name="loginFormUrl" value="/login.jsp" />     </bean>    </property>   <property name="accessDeniedHandler">     <bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">        <property name="errorPage" value="/accessDenied.jsp" />      </bean>   </property> </bean>

正如清单 5 所示,ETF 包含两个参数,名为 authenticationEntryPoint 和 accessDeniedHandler。authenticationEntryPoint 属性指定登录页面,而 accessDeniedHandler 指定 Access Denied 页面。

拦截过滤器

Acegi 的拦截过滤器 用于做出授权决策。您需要在 APF 成功执行身份验证 后对拦截过滤器进行配置,以使其发挥作用。拦截器使用应用程序的访问控制策 略来做出授权决定。

本系列的下一篇文章将展示如何设计访问控制策略,如何将它们托管在目录 服务中,以及如何配置 Acegi 以读取您的访问控制策略。但是,目前我将继续 向您展示如何使用 Acegi 配置一个简单的访问控制策略。在本文后面的部分, 您将看到使用简单的访问控制策略构建一个样例应用程序。

配置简单的访问控制策略可分为两个步骤:

编写访问控制策略。

根据策略配置 Acegi 的拦截过滤器。

步骤 1. 编写简单的访问控制策略

首先看一下 清单 6,它展示了如何定义一个用户及其用户角色:

清单 6. 为用户定义简单的访问控制策略

  alice=123,ROLE_HEAD_OF_ENGINEERING

清单 6 所示的访问控制策略定义了用户名 alice,它的密码是 123,角色是 ROLE_HEAD_OF_ENGINEERING。(下一节将说明如何在文件中定义任意数量的用户 及其用户角色,然后配置拦截过滤器以使用这些文件。)

使用Acegi保护Java应用程序,第1部分: 架构概览和安全过滤器(6)

时间:2011-09-07 Bilal Siddiqui

步骤 2. 配置 Acegi 的拦截过滤器

拦截过滤器使用三个组件来做出授权决策,我在清单 7 中对其进行了配置:

清单 7. 配置拦截过滤器

<bean id="filterInvocationInterceptor"    class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">< BR>  <property name="authenticationManager" ref="authenticationManager" />   <property name="accessDecisionManager" ref="accessDecisionManager" />    <property name="objectDefinitionSource">      <value>        CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON        PATTERN_TYPE_APACHE_ANT        /protected/**=ROLE_HEAD_OF_ENGINEERING        /**=IS_AUTHENTICATED_ANONYMOUSLY     </value>    </property>   <!-- More properties of the interceptor filter --> </bean>

如清单 7 所示,配置所需的三个组件是 authenticationManager、 accessDecisionManager、objectDefinitionSource:

authenticationManager 组件与我在介绍 Authentication Processing Filter 时讨论过的身份验证管理器相同。拦截过滤器可以在授权的过程中使用 authenticationManager 重新对客户机进行身份验证。

accessDecisionManager 组件管理授权过程,这部分内容将在本系列的下篇 文章中详细讨论。

objectDefinitionSource 组件包含对应于将要发生的授权的访问控制定义。 例如,清单 7 中的 objectDefinitionSource 属性值包含两个 URL (/protected/* 和 /*)。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号