繁体   English   中英

在CXF中添加有关传出肥皂消息的凭据?

[英]Add credentials on outgoing soap messages in CXF?

我正在使用CXF / JAXB从wsdl自动生成Java类。 所有生成的请求都extend BaseRequest ,该请求可以获取soap auth所需的用户凭证:

CityRequest req = new CityRequest();
req.setUsername("admin");
req.setPassword("test");
req.setPostalCode("1234");

new WsService().getCityPort().getTown(req);

现在,我想以某种方式“拦截”传出的请求,并自动添加所需的凭据。 这样,在我的客户端实现中,我不必关心设置身份验证的内容。 CXF有可能吗?

然后,凭据不作为header提供,而是作为常规xml字段提供。

您可以为此使用CXF拦截器,只要它在将对象编组到MARSHAL阶段之前执行即可。 您应该可以选择该阶段之前的任何阶段。 请参阅CXF拦截器文档中的完整列表。

在拦截器中,您可以使用以下代码找到外发对象:

@Override
public void handleMessage(Message message) throws Fault {

    List mcl = message.getContent(List.class);
    if (mcl != null) {
        for (Object o : mcl) {
            if (o instanceof BaseRequest) {
                BaseRequest baseRequest = (BaseRequest) o;
            }
        }
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM