配置与Spring-WS和CXF兼容的公共webservice拦截器和usernameTokenValidator

时间:2011-12-05 16:15:10

标签: web-services cxf spring-ws interceptor wss4j

现在我对我的一个WS端点进行了以下配置。

<jaxws:endpoint id="myService" implementor="#myServiceImpl" address="/myService">
<jaxws:inInterceptors>
  <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />
  <ref bean="myServiceInterceptor"/>
</jaxws:inInterceptors>
 <jaxws:properties>
<entry key="ws-security.ut.validator" value-ref="myServiceUsernameTokenValidator"/>
<jaxws:properties>
</jaxws:endpoint>

 <bean id=" myServiceInterceptor " class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
   <constructor-arg>                              
     <map>
        <entry key="action" value="UsernameToken" />
        <entry key="passwordType" value="PasswordText" />
      </map>          
    </constructor-arg>
</ bean>

现在我想把这个 bean =“myServiceInterceptor”和自定义userNameToken Validator配置(jaxws:properties)移动到一个单独的jar (比如A)< / strong>即可。因此,使用该jar A 的任何Spring WS都可以利用相同的拦截器和customUseranameToken功能。

我的问题:

1)  How do I setup/configure a generic webservice security interceptor rather than a cxf specific interceptor.
2)  How can I setup a common <jaxws:properties> that can be used by all the endpoints.

谢谢!

1 个答案:

答案 0 :(得分:0)

大部分内容都可以在总线级配置,因此可以使用该总线继承:

<cxf:bus>
   <cxf:inInterceptors>....
   <cxf:properties>....
</cxf:bus>