gpt4 book ai didi

java - 不要针对特定​​的 URL 和 HTTP 方法调用 Spring Security 预身份验证过滤器

转载 作者:行者123 更新时间:2023-11-30 06:55:59 25 4
gpt4 key购买 nike

我有一个自定义的预身份验证过滤器,它基本上验证并创建 token 。

我只想仅为安全 API 调用此预身份验证过滤器。

例如,我有这两个 API:

  • GET/api/products(不安全)
  • POST/api/products(安全)

当我使用时:

<http pattern="/api/products" security="none"/>

我的预身份验证过滤器未被调用,但这样做会使两个 API 变得不安全,因为它们都具有相同的模式 /api/products

我希望为我的安全 API 获取名为 only 的预身份验证过滤器,即 POST/api/products

问题是:如何告诉 security="none" 区分 HTTP 方法(GETPOST)?

最佳答案

您可以定义RequestMatcherAntPathRequestMatcher并添加引用,请参阅 Spring Security Reference :

request-matcher-ref A reference to a bean that implements RequestMatcher that will determine if this FilterChain should be used. This is a more powerful alternative to pattern.

您修改后的配置:

<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>

关于java - 不要针对特定​​的 URL 和 HTTP 方法调用 Spring Security 预身份验证过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41806836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com