gpt4 book ai didi

java - 如何禁用 Spring Security 过滤器

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:51 28 4
gpt4 key购买 nike

我有一个 RESTful 服务使用预认证 token 进行身份验证的情况。我实现了自己的 preAuth 过滤器,效果很好。我的问题是发送到我的服务的一些请求包括不适用于我的应用程序的 BasicAuthorization。 (我希望他们没有,他们不应该,但他们这样做了,我无法控制。)

现在,Spring Security 似乎自动创建了一个 BasicAuthorization 过滤器,但该过滤器正在捕获这些不相关的身份验证 header ,然后抛出错误:

Error 401 No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken

所以我想关闭我在 Spring Security 中不使用的过滤器,但我不知道如何做。我知道我可以创建虚拟过滤器并替换自动过滤器,或者我可以在应用程序进入过滤器链之前删除所有基本 Auth header ,但这些看起来都像是 hack。

当我查看 spring 安全过滤器文档时,我发现了 the part that shows you how to add a FilterChainProxy ,但似乎我必须以这种方式手动创建所有用于 spring 安全的 bean。具体来说,我谈到了您需要 AccessDecisionManager 的部分,但我认为这就是我的

<http use-expressions="true" create-session="stateless"
authentication-manager-ref="authenticationManager">

<intercept-url pattern=[etc ...]

stuff 是为了,我仍然想使用它。有人有什么建议吗?

最佳答案

研究了一段时间后,发现我的示例不完整。我在使用 baeldung 的 spring security 和 REST 服务指南时愚蠢地包含了 <http-basic />从那个。所以...很抱歉这个糟糕的问题。

关于java - 如何禁用 Spring Security 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17034495/

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