1. 程式人生 > >WebService系列:為WebService新增安全性

WebService系列:為WebService新增安全性

為了保證釋出到外網的Web Services不被非法使用,在呼叫Web Services之前需要進行必要的安全驗證。

如前面文章中釋出的GreetingWords的Web Service,希望只有授權的使用者才具備呼叫它的許可權,

雖然它的wsdl描述檔案可以被任何人檢視,但是如果不具備相應許可權的人則無法通過呼叫它返回有用的資訊。

一、設定Web Service安全性認證

為了實現這樣的功能,按照嚮導在JDeveloper建立完Web Services後,新增驗證資訊,步驟如下:

  1. 選擇埠,並保證使用“Text Password”驗證選項
  2. 左邊選擇安全下的驗證選單,設定如下圖的選項
  3. 從新發布Web Service

選中 Security 項,並選擇GreetingWordsSoapHttpPort,按照下圖設定選項

選擇 Security–>Authentication 項,右邊選擇GreetingWordsSoapHttpPort,按照下圖進行選項的設定

二、測試Web Service

上面添加了Web Service的安全性認證釋出之後,在瀏覽器中輸入wsdl的埠地址,如:

瀏覽器顯示Web Service的測試頁面,輸入引數,點選Invoke按鈕呼叫Web Services

Web Services執行返回錯誤,錯誤程式碼為:wsse:InvalidSecurity,錯誤訊息為:Missing <wsse:Security> in SOAP Header

這個錯誤是由於已釋出的Web Services添加了安全驗證,而呼叫的時候沒有把相關的驗證資訊傳送給它,導致SOAP Header沒有包括安全驗證需要的資訊。

我們可以通過測試頁面的功能檢視到這個時候傳送給伺服器的訊息是: