CXF下的保護暴露在外的web service的方法及注意事項
最近這幾天都在使用CXF作為webservice的組件,試圖將公開的webservice加入到保護的范圍內。
添加到保護的方法有三種:
(1)指定地址訪問,即指定一些IP地址,只有這些地址的請求我們的接口才處理。
這種方法我在開發中有使用到,可以通過WEB容器中的Filter類來實現,
只需要檢查請求的地址是否在我們指定的地址列表中就可以了。
優點:處于請求響應鏈的前端,響應非常迅速,所以消耗的資源很少。
缺端:使用這種方法只能檢查指定地址的請求,通常只能應用的小范圍內,如局域網。
另外使用這種驗證方法,無法進行權限的檢查,一旦通過驗證將可以執行所有公開的接口。
(2)用戶名/密碼對驗證,使用指定的用戶名密碼進行驗證
這種方法適合于具體用戶的檢查,進而可以檢查其是否有權限執行其請求的操作.
優點:可以只準確地檢查用戶,甚至驗證權限。
缺點:這種方式不能和WEB應用的登錄一樣,只需要驗證一次就可以了;必須
每個請求都檢查,如果需要使用這種方法去做,還需要處理好類似登錄/退出機制。
(3)使用HTTPS進行驗證,這種方法應該也可以具體的驗證證書來自哪個用戶,進而檢查其權限。
優點:安全更有保證
缺點:配置復雜,對客戶端程序員要求很比較高。
注意事項:
使用CXF進行WEBService交互時,特別是進行客戶端工作時,最好將服務端和客戶端的環境剝離開來。
這幾天的工作教會了我這個事情(今天上午在測試客戶端代碼時出現莫名其妙的錯,最后發現是JAR包沖突,
在服務器的環境中運行客戶端程序時,程序加載了過時的JAR)。
Let life be beautiful like summer flowers and death like autumn leaves.