Web services 在CXF拦截器和webservice之间共享数据
我正在将安全拦截器与ApacheCxfWeb services 在CXF拦截器和webservice之间共享数据,web-services,cxf,jax-ws,ws-security,wss4j,Web Services,Cxf,Jax Ws,Ws Security,Wss4j,我正在将安全拦截器与ApacheCxfWSS4JInInterceptor一起使用 有没有办法将数据从拦截器传递到webservice 我一直在WebServiceContext中搜索,但找不到它。您可以使用CXF映射来存储任意键/值对。该交换可用于输入和输出消息。在拦截器中,将对象添加到交换中,例如 Object value = ...; message.getExchange().put("key", value); 在您的服务中,您可以使用访问exchange并检索对象,例如 Objec
WSS4JInInterceptor
一起使用
有没有办法将数据从拦截器传递到webservice
我一直在WebServiceContext
中搜索,但找不到它。您可以使用CXF映射来存储任意键/值对。该交换可用于输入和输出消息。在拦截器中,将对象添加到交换中,例如
Object value = ...;
message.getExchange().put("key", value);
在您的服务中,您可以使用访问exchange并检索对象,例如
Object value = PhaseInterceptorChain.getCurrentMessage().getExchange().get("key");
您可以使用CXF映射来存储任意键/值对。该交换可用于输入和输出消息。在拦截器中,将对象添加到交换中,例如
Object value = ...;
message.getExchange().put("key", value);
在您的服务中,您可以使用访问exchange并检索对象,例如
Object value = PhaseInterceptorChain.getCurrentMessage().getExchange().get("key");
您是否希望在自己的WSS4JInInterceptor扩展和服务实现之间传递任意数据?我的扩展是一个自定义加密实例,它调用存储过程从数据库获取证书,等等。来自SP的一些数据必须在my webservice实现中可用。您是否希望在自己的WSS4JInInterceptor扩展和您的服务实现之间传递任意数据?my extension是一个自定义加密实例,它调用存储过程从数据库获取证书,等等。我的webservice实现中必须有来自SP的一些数据。这个回答是正确的,但我写错了问题。很抱歉,我误解了这些概念。我需要将数据从org.apache.ws.security.components.crypto.crypto传递到webservice实现。我再问一次。谢谢@patrick您的类在CXF中实现加密吗?只要创建了CXF消息,就应该能够使用PhaseInterceptorChain.getCurrentMessage().getExchange().put()向exchange添加内容。否则,ThreadLocal可能是另一种选择。哦,你是对的,我将尝试使用PhaseInterceptorChain。谢谢;)我能够在一个实现javax.security.auth.callback.callback的类中访问这个上下文,并且是wss4jInterceptor(org.apache.cxf.ws.security.wss4j.wss4jInterceptor)的一部分,并且能够在它和一个实现org.aopalliance.intercept.MethodInterceptor.MethodInterceptor的spring拦截器类之间共享数据。它工作得很好!这个回答是正确的,但我写错了问题。很抱歉,我误解了这些概念。我需要将数据从org.apache.ws.security.components.crypto.crypto传递到webservice实现。我再问一次。谢谢@patrick您的类在CXF中实现加密吗?只要创建了CXF消息,就应该能够使用PhaseInterceptorChain.getCurrentMessage().getExchange().put()向exchange添加内容。否则,ThreadLocal可能是另一种选择。哦,你是对的,我将尝试使用PhaseInterceptorChain。谢谢;)我能够在一个实现javax.security.auth.callback.callback的类中访问这个上下文,并且是wss4jInterceptor(org.apache.cxf.ws.security.wss4j.wss4jInterceptor)的一部分,并且能够在它和一个实现org.aopalliance.intercept.MethodInterceptor.MethodInterceptor的spring拦截器类之间共享数据。它工作得很好!