簡體   English   中英

如何通過消息安全性和客戶端證書身份驗證調用Web安全性?

[英]How to call a web security with message security and client certificate authentication?

我需要使用Java客戶端調用Web服務。 此服務通過消息級別的證書(Ws-Security,不是SSL)對客戶端進行身份驗證。

這應該是可能的,因為我可以在此對話框中使用具有相互證書安全性的JAX-WS生成Web服務。

但是我無法創建一個客戶。 有人有主意嗎?

我自己沒有嘗試過 ,而是從http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/進行了 嘗試

使用XWSS配置消息安全性

Application Server包含使用XWS-Security來保護JAX-WS應用程序所需的所有JAR文件,但是,為了查看示例應用程序,必須下載並安裝獨立的Java WSDP捆綁包。 您可以從http://java.sun.com/webservices/downloads/webservicespack.html下載Java WSDP。

要使用XWSS向現有JAX-WS應用程序添加消息安全性,請在客戶端上遵循以下步驟:

  • 創建客戶端安全配置。 客戶端安全配置文件指定將用於客戶端應用程序的消息安全操作的順序和類型。 例如,執行數字簽名操作的簡單安全配置如下所示:

      <xwss:Sign id="s" includeTimestamp="true"> <xwss:X509Token encodingType="http://docs.oasis- open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" valueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss- x509-token-profile-1.0#X509SubjectKeyIdentifier" certificateAlias="xws-security-client" keyReferenceType="Identifier"/> </xwss:Sign> </xwss:SecurityConfiguration> </xwss:Service> <xwss:SecurityEnvironmentHandler> simple.client.SecurityEnvironmentHandler </xwss:SecurityEnvironmentHandler> 

    有關編寫和理解安全性配置以及設置SecurityEnvironmentHandlers的更多信息,請參見位於http://java.sun.com/webservices/docs/1.6/tutorial/doc/index.html的Java Web Services Developer Pack 1.6教程。

  • 在您的客戶端代碼中,創建一個XWSSecurityConfiguration對象,該對象用生成的安全配置初始化。 這是您將在客戶端文件中使用的代碼示例。 有關使用此代碼的完整文件的示例,請查看\\ jaxws2.0 \\ simple-doclit \\ src \\ simple \\ client \\目錄中的示例客戶端。

     FileInputStream f = new FileInputStream("./etc/client_security_config.xml"); XWSSecurityConfiguration config = SecurityConfigurationFactory.newXWSSecurityConfiguration(f); 
  • 設置上的安全配置信息RequestContext使用XWSSecurityConfiguration.MESSAGE_SECURITY_CONFIGURATION財產。 有關使用此代碼的完整文件的示例,請查看\\ jaxws2.0 \\ simple-doclit \\ src \\ simple \\ client \\目錄中的示例客戶端。

     // put the security config info ((BindingProvider)stub).getRequestContext().put( XWSSecurityConfiguration.MESSAGE_SECURITY_CONFIGURATION, config); 
  • 就像在編寫客戶端時不考慮添加XWS-Security一樣,在存根上調用方法。 \\ jaxws2.0 \\ simple-doclit \\ src \\ simple \\ client \\目錄中的應用程序示例如下所示:

     Holder<String> hold = new Holder("Hello !"); stub.ping(ticket, hold); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM