다른 API 버전에 대해 서로 다른 필터 체인을 정의하고 RequestMatcher
을 사용하여 요청의 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>
중복으로 인해 너무 많은 경우 네임 스페이스 구성을 사용하고 가능한 경우 필터 체인간에 빈을 공유하지 마십시오.
니스! 네가 할 수 있다는 것을 몰랐어. – maxenglander