繁体   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