我有一个自定义的预认证过滤器,它基本上验证并创建了一个令牌。
我只想把这个预认证过滤器称为安全API。
例如,我有以下两个API:
GET /api/products
(不安全)POST /api/products
(安全)当我使用:
<http pattern="/api/products" security="none"/>
我的预身份验证筛选器不被调用,但是这样做我会使两个API都不安全,因为这两个API都有相同的模式/api/products
。
我想为我的安全API (即)获取名为的身份验证前筛选器,即POST /api/products
。
问题是:如何告诉security="none"
区分HTTP方法(GET
和POST
)?
发布于 2017-01-23 21:28:06
您可以定义类似于RequestMatcher
的AntPathRequestMatcher
,并添加引用,请参阅弹簧安全参考
request-matcher-ref对实现
RequestMatcher
的bean的引用,它将确定是否应该使用该FilterChain
。这是一种更强大的模式替代方案。
修改后的配置:
<http request-matcher-ref="myMatcher"/>
<b:bean id="myMatcher" class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
<b:constructor-arg value="/api/products"/>
<b:constructor-arg value="POST"/>
</b:bean>
https://stackoverflow.com/questions/41806836
复制相似问题