2013-08-20 53 views
1

我對此非常重視。 我想問一下,我如何才能真正知道一個真實的客戶端連接到我的Web服務。 我已經成功地在我的web服務和我的apache tomcat服務器上建立了一個HTTP協議。 但是,如何在沒有他給我用戶名和密碼的情況下真正地驗證客戶端。例如,谷歌通過給它們一個API密鑰來驗證它的客戶端,並允許它們使用它的Web服務。apache axis 2 web服務的用戶身份驗證

我希望做類似的事情,我該怎麼做? 希望你們能幫我解決這個問題。

在此先感謝!

+0

這是REST還是SOAP? – Santosh

+0

它是一個REST web服務 – Clearner88

回答

0

也許你應該看看Apache Santuario項目,該項目旨在提供XML的主要安全標準的實現。

- >該庫包含一個成熟的數字簽名和加密實現。它還包含標準的JSR 105(Java XML數字簽名)API。應用程序可以使用標準的JSR 105 API或Apache Santuario API來創建和驗證XML簽名。

您可以在以下網址更多信息 http://santuario.apache.org/index.html

你也可以在這裏找到一個例子: https://svn.apache.org/repos/asf/santuario/xml-security-java/trunk/samples/org/apache/xml/security/samples/signature/

專門研究了KeyResolver功能

Apache的聖所項目建議項目由Apache Axis提供。 http://axis.apache.org/axis/java/security.html#Authenticating_the_caller

+0

嗨gourabp,是否有任何實現這個軸2,因爲我看到這是軸。由於我已經完成了第二軸的設置,我不想再次設置這個問題。另外,時間限制不允許我。 – Clearner88

0

我們在這種情況下嘗試的是真正面向服務導向。

即我們有一個認證服務,它將輸入作爲用戶憑證並返回一個會話ID。對於所有其他服務調用,會話ID將添加到soapheader塊中。

soapHeader.addAttribute()

使用這種方法

  1. 我們避免用戶憑據細節服務電話每次都可以使用。
  2. 此外,服務的簽名沒有任何驗證數據。

在這種方法中,客戶端應用程序必須先進行身份驗證,然後使用輸出,會話ID進行其他服務調用。

請求:我們仍然沒有完全分析這種方法的安全威脅。任何建議/批評將不勝感激