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