2 つのサーブレットと、各サーブレットに関連付けられた複数のマッピングを持つ Web アプリケーションがあります。
web.xml
:
<servlet-mapping>
<servlet-name>cheese</servlet-name>
<url-pattern>/edam/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cheese</servlet-name>
<url-pattern>/cheddar/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dog</servlet-name>
<url-pattern>/poodle/*</url-pattern>
</servlet-mapping>
...
サーブレットごとに異なるセキュリティ構成で、Spring Security をこの Web アプリケーションに適用したいと思います。これは、サーブレットの認証要件が異なるためです。そのため、2 つのフィルター マッピングのみが必要です。
<filter-mapping>
<filter-name>springSecurityFilterChainCheese</filter-name>
<servlet-name>cheese</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>springSecurityFilterChainDog</filter-name>
<servlet-name>dog</servlet-name>
</filter-mapping>
Spring Security 3.1 を使用すると、複数の<http>
要素を定義できます。これは良い方法のようです。<http>
ただし、各要素の Bean 名を指定する方法や、要素をサーブレットにマッピングするその他の方法がわかりません。
で属性を指定pattern
<http>
できることはわかっていますが、DRY ではない Spring Security 構成でサーブレットから URL へのマッピングを繰り返す必要があります。
<http>
このように要素を特定のサーブレットにマップするにはどうすればよいですか? それとも、<http>
要素を展開してすべての Spring Security Bean を自分で定義する必要がありますか?