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 に追加しました