3

上下文是 Spring 3.1(我们使用 Spring MVC 和 Spring Security)。

我们正在尝试做的是仅在admin配置文件处于活动状态时才可用的管理页面。使用 Spring Security,我们尝试了类似的方法:

<security:http use-expressions="true" entry-point-ref="entryPointDenied">
    <security:intercept-url pattern="/admin/**" access="denyAll" />
</security:http>

<beans profile="admin">
    <security:http use-expressions="true">
        <security:intercept-url pattern="/admin/**" access="permitAll" />
        <sec:form-login/>
    </security:http>
</beans>

但这不起作用,因为我们无法覆盖security:http定义(我们尝试使用该http@name属性)。所以通过上面的配置,我们得到

Caused by: java.lang.IllegalArgumentException: A universal match pattern ('/**') is defined  before other patterns in the filter chain, causing them to be ignored.

此外,我们不能使用profile="!admin"Spring 3.2 中引入的否定配置文件(ie)特性。

理想情况下,解决方案应该是纯 Spring 配置。

编辑:将缺少的 use-expressions="true" 添加到第二个安全性:http

4

0 回答 0