我在尝试在spring security中注入自定义权限评估程序时遇到问题:
我的前端代码如下所示:
<sec:accesscontrollist hasPermission="VIEW_HEADER,VIEW_ANYTHING" domainObject="${userWebsiteLocationContext}" >
<b>This is a TEST</b>
</sec:accesscontrollist>
我正在我的spring安全配置中尝试以下内容: ...
...
<security:global-method-security>
<security:expression-handler ref="expressionHandler"/>
</security:global-method-security>
<bean id="permissionEvaluator" class="org.atd.storefront.security.impl.DefaultPermissionsEvaluator" >
</bean>
<bean id="defaultExpressionHandler" class="org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler" >
<property name="permissionEvaluator" ref="permissionEvaluator" ></property>
</bean>
我的自定义权限evaulator只返回false但始终显示文本。我也在https://jira.springsource.org/browse/SEC-1749尝试了解决方案,并尝试使用自定义的决策管理器bean:access-decision-manager-ref =“webAccessDecisionManager”但无济于事。
我没有任何异常,我的自定义权限评估者的hasPermission没有被调用。
答案 0 :(得分:0)
为PermissionEvaluator
标记注册accesscontrollist
的实现应该足以将其获取并使用它。
我的建议是在doStartTag()
方法的org.springframework.security.taglibs.authz.AccessControlListTag
方法中设置一个断点,并检查它真正使用的PermissionEvaluator
。