第
1,
2,
3,
4 页
Acegi 安全配置
现在我们来讨论如何在 Spring 配置文件中配置 Acegi 安全性。 如上文所述,我们已经配置了业务逻辑 Bean,使其方法调用被 securityInterceptor
Bean 拦截以执行安全性检查。 让我们来看看这个 Bean 是如何配置的。 下面展示了 securityInterceptor
Bean 的 Spring 配置文件片段。 securityInterceptor
Bean 是由一个称为 securityInterceptor
的 Acegi 类提供的。 正如其名字的含意一样,该类用于加强方法调用的安全性(方法是拦截方法调用,检查调用者是否被授权)。
<beans> . . . <bean id="securityInterceptor" class="org.acegisecurity.intercept.method. aopalliance.MethodSecurityInterceptor"> <property name="authenticationManager"> <bean class="org.acegisecurity. providers.ProviderManager"> <property name="providers"> <list> <bean class="org.acegisecurity. providers.anonymous. AnonymousAuthenticationProvider"> <property name="key" value="changeThis"/> </bean> </list> </property> </bean> </property> <property name="accessDecisionManager"> <bean class="org.acegisecurity.vote. UnanimousBased"> <property name="decisionVoters"> <list> <bean class="org.acegisecurity. vote.RoleVoter"/> </list> </property> </bean> </property> <property name="objectDefinitionSource"> <value> com.mybank.bizlogic.AccountMgr. transferFunds=ROLE_MANAGER </value> </property> </bean> . . .</beans>
我们需要使用 authenticationManager
属性来配置 securityInterceptor
Bean 以指示使用哪种授权方式。 由于设计上依靠 Axis 事务处理程序执行授权,我们在此处不需要进行授权,只需使用 AnonymousAuthenticationProvider
进行配置。 另外,在 Axis 事务处理程序中创建授权标识的方式,将会使 Acegi 知道已经进行了授权,因此不会再次授权。 我们将在讨论 Axis 事务处理程序的时候详加讨论。
接下来,需要使用 accessDecisionManager
属性配置该 Bean 以指定它如何决定某人是否有对方法调用进行访问的权限。 Acegi 有三个具体的访问决定管理器实现:AffirmativeBased
、ConsensusBased
和 UnanimousBased
。 Acegi 作出访问决定的方式是:依靠投票者投票,决定是否授予某人访问权限来执行具体操作。 它通过计算票数来决定是否授予访问权限。 我们选择了 UnanimousBased
访问决定管理器,该管理器要求所有投票者通过投票来授予客户端执行特定操作的权限。 阅读 Acegi 文档可以深入了解其工作原理。 接下来,我们要使用一个投票者名单来配置 accessDecisionManager
。 本示例中,只有一个投票者,称为 RoleVoter
。 它是 Acegi 的一个类,根据基于角色的访问控制,该类对授予权限与否进行投票。 同样,阅读 Acegi 文档可以深入了解 RoleVoter
如何工作。
最后一个需要配置的属性是 objectDefinitionSource
。 这是授予权限的方式,即,对于各种受到安全保护的对象,对象上的方法调用需要授予何种访问权限。 此处,只需要保证 transferFunds()
方法的安全,并且只将权限授予 Manager 角色。 为达到此目的,我们需要列出类的全限定名称和方法的名称以及访问该方法的角色:
com.mybank.bizlogic.AccountMgr.transferFunds= ROLE_MANAGER
分享到:
相关推荐
阿里支付demo
org.springframework.web-3.0.5.RELEASE.jar
文件已上传到百度网盘,附件中是下载地址。... Java.Web.Services-Up.and.Running_2nd.Edition—Java.Web服务-构建与运行(第2版).pdf 〔美〕martin kalin(马丁·卡林)(著) 电子工业出版社 9787121245015 2014-11-01
只需要导入aspose-words-14.9.0-jdk16.jar 无需license.xml,直接去水印,文件内含示例代码(6行代码,doc转无码pdf就是这么简单)。亲测可用,有问题留言
javax.servlet.jsp.jstl-api-1.2.1.jar
毕业设计-基于java+HBase实现的手机数据备份系统(短信、联系人、重要文件).zip 基于HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人等。 包括服务器端(Server)和客户端(Client) Server...
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="...-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web... <display-name>网站名称</display-name> <description>网站描述</description> ...
javax.annotation-3.1.2.2-sources.jar,javax.annotation-3.1.2.2.jar无分共享
spring-data-commons-1.7.2.RELEASEspring-data-jpa-1.5.2.RELEASE-java datajpa
socket.io,socket.io-client 用于java或android连接nodejs websocket
javax.servlet-api-3.1.0.jar,处理找不到servlet JAR的问题
Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext Copy rxtxSerial.dll ---> <JAVA_HOME>\jre\bin Copy rxtxParallel.dll ---> <JAVA_HOME>\jre\bin Linux Choose your binary build - x86_64 or i386 (based on ...
org.springframework.web.servlet-3.0.0.M4.jar
课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书...
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <description>cas client test</description> <!--CAS Authentication FILTER --> <filter> ...
Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext Copy rxtxSerial.dll ---> <JAVA_HOME>\jre\bin Copy rxtxParallel.dll ---> <JAVA_HOME>\jre\bin 2. Copy rxtxSerial.dll ---> C:\Windows\System32 Copy ...
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error ...
org.springframework.context-3.1.1.RELEASE.jar java 开发专用
04 JAVA SE 环境搭建 --> 基础程序 --> 面向对象 --> 应用开发 --> 高级应用 --> Java新特性 --> JDBC 05 JAVA EE WEB HTML --> JavaScript --> JSP --> JavaBean --> DAO --> Smartupload --> Servlet --> MVC 06 ...