異なる API バージョンに対して異なるフィルタ チェーンを定義し、リクエストのヘッダーにRequestMatcher
基づいて一致させるために a を使用できます。Content-Type
<bean id="apiV1Matcher" class="org.springframework.security.web.util.ELRequestMatcher">
<constructor-arg value="hasHeader('Content-Type','<pattern for api v1>')"/>
</bean>
<bean id="apiV2Matcher" class="org.springframework.security.web.util.ELRequestMatcher">
<constructor-arg value="hasHeader('Content-Type','<pattern for api v2>')"/>
</bean>
<security:http request-matcher-ref="apiV1Matcher" ...>
<!-- config for api v1 requests -->
</security:http>
<security:http request-matcher-ref="apiV2Matcher" ...>
<!-- config for api v2 requests -->
</security:http>
これにより重複が多すぎる場合は、ネームスペース構成を使用せず、可能であればフィルターチェーン間で Bean を共有してください。