自定义权限评估程序

时间:2014-01-10 05:41:57

标签: java spring spring-security

我正在尝试覆盖Spring Security 3.0中的默认权限评估程序,但无论我做什么,都会忽略权限提升,而是调用默认的DenyAllPermissionEvaluator

我正在使用程序化配置,我尝试通过覆盖WebSecurityConfigurerAdapter类的configure(WebSecurity)和configure(Http)方法来设置权限评估程序,但这没有多大帮助。 / p>

设置Spring Security实际使用的自定义权限评估程序的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

使用xml conf

<security:global-method-security secured-annotations="enabled" pre-post-annotations="enabled">
    <security:expression-handler ref="methodSecurityExpressionHandler"/>
</security:global-method-security>

<bean id="methodSecurityExpressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
       <property name="permissionEvaluator" ref="defaultPermissionEvaluator"/>
    </bean>

然后简单地像正常一样定义你的bean:

<bean id="defaultPermissionEvaluator" class="com.your.class.implements.permissionevaluator"/>

还没有用java conf(我是唯一还在使用xml conf的人吗?),但不应该很难从上面转换。并确保您在正确的位置定义,在大多数情况下是根上下文,无论我们在Web上下文中这样做,以便保护控制器