[英]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.