差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:web:restapi:x-http-method-override_filter [2016/02/26 22:20]
tony
java:web:restapi:x-http-method-override_filter [2023/06/25 09:48] (目前版本)
行 13: 行 13:
 Sprint Security提供了DigestAuthentationFilter負責處理Digest認證。在使用者發出第一次請求後,Spring Security在察覺未經過驗證的情況下,會透過AuthenticationEntryPoint送出請求認證資訊。而為了在認證失敗時,能夠輸出xml或json格式的錯誤訊息(可參考上方),我們extend了DigestAuthenticationEntryPoint:​ Sprint Security提供了DigestAuthentationFilter負責處理Digest認證。在使用者發出第一次請求後,Spring Security在察覺未經過驗證的情況下,會透過AuthenticationEntryPoint送出請求認證資訊。而為了在認證失敗時,能夠輸出xml或json格式的錯誤訊息(可參考上方),我們extend了DigestAuthenticationEntryPoint:​
 <code java> <code java>
-public class JsonDigestAuthenticationEntryPoint ​extends DigestAuthenticationEntryPoint {+public class CustomziedDigestAuthenticationEntryPoint ​extends DigestAuthenticationEntryPoint {
  
  private static final Log logger = LogFactory.getLog(JsonDigestAuthenticationEntryPoint.class);​  private static final Log logger = LogFactory.getLog(JsonDigestAuthenticationEntryPoint.class);​
行 57: 行 57:
   - Server的DigestAuthenticationFilter發現response不相同。   - Server的DigestAuthenticationFilter發現response不相同。
   - Server回應錯誤訊息給Client。   - Server回應錯誤訊息給Client。
-這問題就在於:​ Client使用POST當method去計算HA2而Server用DELETE。+這問題就在於:​ Client使用POST當method去計算HA2而Server由於經過Request method的取代,會用DELETE去計算HA2
 ===== Solution ===== ===== Solution =====
 那調整一下順序不就好了嗎?​ 的確,在我將RestHeaderFilter設定在Security相關Filter後,請求就可以正常處理了。但其實我們的RestHeaderFilter,還身兼將Rest API版本資訊塞到Header的責任。因此最後調整的順序為:​ 那調整一下順序不就好了嗎?​ 的確,在我將RestHeaderFilter設定在Security相關Filter後,請求就可以正常處理了。但其實我們的RestHeaderFilter,還身兼將Rest API版本資訊塞到Header的責任。因此最後調整的順序為:​