【问题标题】:Add credentials on outgoing soap messages in CXF?在 CXF 中的传出肥皂消息上添加凭据?
【发布时间】:2014-06-12 00:37:24
【问题描述】:

我正在使用 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 字段提供的。

【问题讨论】:

    标签: java web-services soap cxf


    【解决方案1】:

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

    在拦截器中,您可以使用以下代码找到您的传出对象:

    @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;
                }
            }
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多