在CXF拦截器和Web服务之间共享数据

时间:2014-10-03 18:37:14

标签: web-services cxf jax-ws ws-security wss4j

我在Apache CXF上使用安全拦截器WSS4JInInterceptor

有没有办法将数据从拦截器传递到webservice?

我一直在WebServiceContext中搜索,但我找不到。

1 个答案:

答案 0 :(得分:4)

您可以使用CXF Exchange地图存储任意键/值对。 Exchange可用于输入和输出消息。在拦截器中,将对象添加到Exchange,例如

Object value = ...;
message.getExchange().put("key", value);

在您的服务中,您可以使用PhaseInterceptorChain.getCurrentMessage()访问交换并检索对象,例如

Object value = PhaseInterceptorChain.getCurrentMessage().getExchange().get("key");