0

有 CXF 的 PolicyBasedWSS4JInInterceptor 创建一个单例实例:

public static final PolicyBasedWSS4JInInterceptor INSTANCE 
    = new PolicyBasedWSS4JInInterceptor();

没有 Spring 技能,我正在努力解决如何通过 cxf.xml 文件中的 Spring bean 定义设置其 acestor (AbstractWSS4JInterceptor) 属性映射。基本上我想在 cxf.xml 中配置 WSS 相关的属性,如“signaturePropFile”。

有人可以展示如何设置 PolicyBasedWSS4JInInterceptor.INSTANCE 的属性映射吗?谢谢!

4

2 回答 2

0

我会声明一个单例bean:

<bean id="interceptor" class="whatever.your.package.PolicyBasedWSS4JInInterceptor" scope="singleton"/>

然后在我需要的地方注入

<bean id="anotherBean" ...>
  <property name="interceptor" ref="interceptor"/>
</bean>

这个其他 bean 将具有正常的 PolicyBasedWSS4JInInterceptor 属性,如下所示:

private PolicyBasedWSS4JInInterceptor interceptor;

public PolicyBasedWSS4JInInterceptor getInterceptor() {
  return interceptor;
}

public void setPolicyBasedWSS4JInInterceptor(PolicyBasedWSS4JInInterceptor interceptor) {
  this.interceptor = interceptor;
}

你会得到与声明它相同的结果,用 Spring 术语表示。这取决于您喜欢哪种方式,只需记住以 Spring 方式执行此操作,您将拦截器放在 IoC 容器中,因此您可以在必要时对其进行检测等。

于 2014-02-24T08:06:12.230 回答
0

基于“action”的 WS-Security 属性(例如“signaturePropFile”)不适用于 CXF 中基于 WS-SecurityPolicy 的拦截器。CXF 具有单独的配置标记,您可以在使用 WS-SecurityPolicy 时将其作为 JAX-WS 属性传递,因此您不需要访问 INSTANCE 类的任何属性。浏览此处获取更多信息:

http://cxf.apache.org/docs/ws-securitypolicy.html

科尔姆。

于 2014-06-16T15:19:39.927 回答