`
erichua
  • 浏览: 516409 次
  • 性别: Icon_minigender_2
  • 来自: 远方
社区版块
存档分类
最新评论

Spring Security Acl- MethodSecurityInterceptor冲突解决

阅读更多
在Spring Security Acl中使用methodSecurityInterceptor的时候,总是不起作用。
配置如下
<bean id="objectDefinitionSource"
		class="org.springframework.security.annotation.SecuredMethodDefinitionSource" />

	<!--
		<bean id="objectManagerSecurityAdvisor"
		class="org.springframework.security.intercept.method.aopalliance.MethodDefinitionSourceAdvisor">
		<constructor-arg index="0" ref="objectManagerSecurity" /> </bean>
	-->

	<!-- 使用了around aspecty -->
	<bean id="objectManagerSecurity"
		class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor">
		<property name="accessDecisionManager" ref="businessAccessDecisionManager" />
		<property name="afterInvocationManager" ref="afterInvocationManager" />
		<property name="objectDefinitionSource" ref="objectDefinitionSource" />
		<property name="authenticationManager" ref="authenticationManager" />
	</bean>

跟踪代码的时候发现不是不起作用而是被重置了。
终于发现原来都是aspect惹的祸。
	<!-- Enable @AspectJ support 
	<aop:aspectj-autoproxy />-->

究其原因,是MethodSecurityInterceptor也是一种aspect,但不是用annonation来进行声明的。而spring中加了@aspect就会自己去byType匹配。造成了,后面的覆盖了前面的配置。aspect这东东真不错。
去掉以后,大工告成。Spring Security Acl终于实现。哈哈


1
1
分享到:
评论
1 楼 theabab 2008-12-09  
您好,不知道能方便发份代码吗?theabab@163.com,我也正在学习这方面,但是没什么突破,在方法安全这块老是碰壁,希望你能给点建议!谢谢。

相关推荐

Global site tag (gtag.js) - Google Analytics