繁体   English   中英

如何禁用Spring安全过滤器

[英]How to Disable Spring Security Filters

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

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

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

所以我想关闭我在Spring Security中没有使用的过滤器,但我无法弄清楚如何。 我知道我可以创建虚拟过滤器并替换自动过滤器,或者我可以在应用程序进入过滤器链之前删除所有基本的Auth标头,但这些看起来都像黑客。

当我查看spring安全过滤器文档时,我发现了一个部分,它向您展示了如何添加FilterChainProxy ,但似乎我不得不手动创建Spring安全性的所有bean。 具体来说,我到了你需要AccessDecisionManager的部分,但我认为这就是我的

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

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

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

在调查了一段时间后,事实证明我的例子不完整。 我正在使用baeldung的Spring安全性和REST服务指南,并愚蠢地包含了<http-basic /> 所以......抱歉这个坏问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM