有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java向wsdl2java生成的类添加wssecurity

我使用CXF的wsdl2java从WSDL生成了一系列客户机类。在执行以下操作时,如何将WS-Security添加到标头:

URL url = new URL("http://fqdn:8080/service/MessageHandler");
MessageHandlerService service = new MessageHandlerService(url);
MessageHandler handler = service.getMessageHandler();
MyMessage message = new MyMessage();
message.setSender("User 1");
handler.sendMessage(message);

我认为handler是一个javax.xml.ws.Service实例


共 (1) 个答案

  1. # 1 楼答案

    <jaxws:client id="client"
        serviceClass="com.mycompany.TheServiceInterface"
        address="http://fqdn/service/Endpoint?wsdl">
        <jaxws:outInterceptors>
            <bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
                <constructor-arg>
                    <map>
                        <entry key="action" value="Timestamp UsernameToken"/>
                        <entry key="user" value="test.user"/>
                        <entry key="passwordType" value="PasswordNone"/>
                    </map>
                </constructor-arg>
            </bean>
        </jaxws:outInterceptors>
    </jaxws:client>
    

    然后,如果将客户端强制转换为BindingProvider,则可以根据需要通过编程更改端点