我正在尝试在我的spring项目的jsp页面中使用hasPermission。我已经在我的控制器/服务类的方法中使用它没有问题。阅读文章:
从官方文档中,我理解为了在我的JSP页面中使用它,我需要实现一个派生自DefaultPermission的类,它将从自定义的AclService类加载。
我的问题是,它找不到任何关于如何实施所有课程的信息,甚至不知道这种方法是否是唯一的,或者我是否理解了这一课程以正确的方式(官方文件非常简短,关于这个主题,在互联网的其余部分,我无法找到更多信息)。
任何人都可以指出我在正确的方向吗?也许指出一些教程或代码示例。
答案 0 :(得分:1)
这就是我所做的。我创建了自己的许可证:
public class MyPermissionEvaluator implements PermissionEvaluator {
...
}
然后我配置spring以通过
使用该evaulator<beans:bean id="expressionHandler"
class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
<beans:property name="permissionEvaluator" ref="permissionEvaluator"/>
</beans:bean>
<beans:bean id="webExpressionHandler"
class="com.bulb.learn.webapp.security.CustomWebSecurityExpressionHandler">
<beans:property name="permissionEvaluator" ref="permissionEvaluator"/>
</beans:bean>
<beans:bean id="permissionEvaluator" class="my.domain.MyPermissionEvaluator" />
这样所有表达式处理程序都可以访问我的evaulator。
然后,在JSP中(实际上,我使用的是jspx),我可以制作这样的标签:
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
...
<sec:authorize access="hasPermission(#childUnit, 'read')">
...
</sec:authorize>
希望能让你朝着正确的方向前进。