webservice自定義攔截器獲取請求header值用於返回參數或驗證信息並在返回值添加header參數


  最近在給對接方寫webservice接口,提供的接口需要把header里面的參數取出然后在返回的信息中添加header參數,所以這就需要我們從header中獲取參數,在webservice中header的值可以有很多用途,有些程序可能會用來驗證身份信息,或者做一些校驗,返回給客戶端的header一半也是用於做校驗等,下面就介紹獲取請求的header並封裝返回header參數的方法。

  我搭建的項目使用的cxf,所以我們可以使用AbstractPhaseInterceptor來繼承這個抽象類來自定義我們的攔截器,首先我們看到AbstractPhaseInterceptor已經有很多實現類,例如日志攔截器。

   cxf攔截器主要分為兩類,一種是處理請求的攔截器InInterceptor,另一種是處理返回的攔截器OutInterceptor,這個從哪里能看到呢,在我們的法布類上可以看到EndpointImpl有這樣兩個方法

   首先我們先創建請求的攔截器

   這里會重寫兩個方法,第一個設置執行的時機,第二個攔截內容做對應邏輯操作Phase.PRE_PROTOCOL是攔截器執行的時機,PRE_PROTOCOL就是在協議處理階段攔截內容,后面返回的攔截器也是一樣,就不介紹了,具體可以看代碼都有那些

  獲取到你需要的header里的內容之后,根據你的業務做你對應的業務處理,比如驗證信息,我這里就是將獲取的值在添加到header中返回給客戶端,所以我放到了線程中。下一步我們創建返回的攔截器:

   最后需要把創建的攔截器添加進來

   注意我們創建的攔截器只有添加進來才會執行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM