【发布时间】:2011-08-30 08:10:59
【问题描述】:
如果你想根据用户对一个或多个 URL 的访问来显示 JSP 页面中的内容,基于用户对一个 URL 的访问很容易做到:
<sec:authorize url="/someurl">
<!-- show content, if someurl is accessible -->
</sec:authorize>
但是,有时根据用户可访问 URL 上的某些布尔表达式显示内容可能会很方便,例如(不正确):
<sec:authorize url="!'/someurl'">
<!-- show content, if someurl is inaccessible -->
</sec:authorize>
或
<sec:authorize url="'/someurl1' and '/someurl2'">
<!-- show content, if someurl1 and someurl2 are accessible -->
</sec:authorize>
到目前为止,我已经在自定义类中使用带有静态方法的 Spring EL 构造提出了一个肮脏的解决方案:
<sec:authorize access="!T(my.package.MyClass).isAccessibleToUser('/someurl')">
<!-- show content, if someurl is inaccessible -->
</sec:authorize>
有没有更优雅的方法来实现这一点?
【问题讨论】:
标签: java spring jsp spring-security