1

我正在尋找一種方法來驗證自定義頭「X-Client-Id」是否設置爲在發送到REST的HTTP請求中的Repository中定義的值在SpringBoot中的控制器。驗證Spring RestController中的HTTP頭字段

我看到的教程(如this),其中包括像這樣的方法標題:@RequestHeader(value="User-Agent")。我假設我必須將該行寫入每個方法並注入一個通用驗證器bean來驗證該值。

另一個stackoverflow answer似乎建議使用HandlerInterceptor。我不確定這是否適用於標題值和REST端點。

那麼驗證類/ REST控制器的所有方法是否設置了特定頭的建議方法是什麼?

回答

2

基本上最簡單的(也是最合理的)方法是在請求到達控制器之前捕獲請求。這可以通過HandlerInterceptor作爲其他答案或簡單的FilterOncePerRequestFilter來實現。

擴展該類,覆蓋doFilterInternal()方法,因爲doFilter()是final的,提取正確的標頭值,根據需要檢查它並根據值檢查它,可以拋出Exception或繼續鏈。

+0

我想我在這裏找到了一個例子的完美解釋:http://stackoverflow.com/a/35458670/3105453。感謝您的幫助並指出正確的方向 – user3105453