【问题标题】:JAX-WS client | Sending client requests with security headerJAX-WS 客户端 |发送带有安全标头的客户端请求
【发布时间】:2012-03-09 06:34:41
【问题描述】:

为了安全,我已经使用 XWSS 实现了一个 Spring WS。我已将安全配置策略文件添加到我的应用程序中。

<xwss:SecurityConfiguration xmlns:xwss="http://java.sun.com/xml/ns/xwss/config"
    dumpMessages="true">    
    <xwss:RequireTimestamp 
        id="tsp" 
        maxClockSkew="60" 
        timestampFreshnessLimit="300">
    </xwss:RequireTimestamp>
    <xwss:RequireUsernameToken 
        id="token" 
        passwordDigestRequired="false" 
        nonceRequired="false"/>
    <xwss:Timestamp></xwss:Timestamp>
    <xwss:UsernameToken 
        name="service" 
        password="service" 
        id="uToken" 
        digestPassword="true"
        useNonce="true"/>
</xwss:SecurityConfiguration>

现在我正在开发一个客户端来访问 WS。安全工作正常。但是我无法测试客户端可以成功从我的服务获得响应的成功案例。问题是我不知道如何让我的客户随请求一起发送用户名令牌和时间戳。我正在使用 NetBeans IDE,并且正在实现一个 JAX-WS 客户端以使用 this tutorial 访问 Spring WS。

请告诉我需要做什么。

【问题讨论】:

    标签: web-services spring-security spring-ws


    【解决方案1】:

    对于 Spring WSS,将安全标头添加到传入的soap 消息或传出的soap 消息并没有太大区别。过程非常相似。

    在这两种情况下,您都应该创建一个拦截器来添加安全标头。它被描述为here。因此,如果您使用 Spring 创建 WS 客户端,您应该不会有问题,尤其是如果您已经开发了服务器端,但是您引用的教程看起来不像使用 Spring 来实现客户端。

    【讨论】:

    • 另外,您可以使用 SoapUI 来测试您的 Web 服务。
    【解决方案2】:

    您可以通过在扩展 webservicetgatewaysupport 的客户端类/类中添加以下代码来做到这一点。

    SoapHeader header = msg.getSoapHeader();
    StringSource headerSource = new StringSource("<wsse:Security xmlns:wsse=\"http://docs.oasis-
    open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" mustUnderstand=\"1\">   <wsse:UsernameToken> 
    <wsse:Username>"+userName+"</wsse:Username>  <wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/
    oasis-200401-wss-username-token-profile-1.0#PasswordText\">"+password+"</wsse:Password> </wsse:UsernameToken>" 
    +"</wsse:Security>");
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.transform(headerSource, header.getResult());
    

    以上必须进入webserviceTemplate的marshalSendANDRecieve方法的消息回调处理程序

    【讨论】:

      猜你喜欢
      • 2011-05-22
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多