我正在使用Spring Security從未真正使用過的基礎認證添加到我的REST風格的Web服務(使用Spring MVC實現)中。現在,我只是簡單地使用內存中的UserService
,希望稍後添加一個基於存儲庫的內存。Spring Security驗證REST風格的Web服務
<security:http>
<security:http-basic />
<security:intercept-url pattern="/**" access="ROLE_ADMIN" />
</security:http>
<security:authentication-manager>
<security:authentication-provider>
<security:user-service>
<security:user name="admin" password="admin"
authorities="ROLE_USER, ROLE_ADMIN" />
<security:user name="guest" password="guest"
authorities="ROLE_GUEST" />
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>
這工作得很好,即發送以下請求授予我訪問所需的資源(其中編碼的字符串是admin:管理員):
GET /user/v1/Tyler HTTP/1.1
Authorization: Basic YWRtaW46YWRtaW4=
併發送下面的請求給我一個錯誤403(其中,已編碼的字符串是來賓:來賓):
GET /user/v1/Tyler HTTP/1.1
Authorization: Basic Z3Vlc3Q6Z3Vlc3Q=
然而,發送一個請求,其中所述提供的用戶名是不CONTA在UserService
中發現並沒有像我期望的那樣導致錯誤403(或者至少需要),而是繼續提示輸入用戶名和密碼。例如。 (其中,已編碼的字符串是用戶:用戶):
GET /user/v1/Tyler HTTP/1.1
Authorization: Basic dXNlcjp1c2Vy
有當設置未識別的用戶憑證與一個錯誤403響應需要額外的配置?我該怎麼做呢?
謝謝,Maciej。你是對的,畢竟這是正確的行爲。很高興知道如何注入自定義過濾器。 –