3

Context は 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 で導入された否定されたプロファイル (つまり ) 機能を使用することはできません。

理想的には、ソリューションは純粋に Spring 構成にする必要があります。

編集:不足していた use-expressions="true" を2番目の security:http に追加しました

4

0 に答える 0