Web services 与SpringWS和CXF兼容的公共webservice拦截器和UsernameTokenValidation
我有一个场景,我想配置一个webservice安全拦截器和一个UsernameTokenValidator,并将其放入myws-security.jar中。然后,任何Web服务都可以使用它,无论是基于CXF的还是使用此jar的SpringWS。处理这种情况的做法是什么Web services 与SpringWS和CXF兼容的公共webservice拦截器和UsernameTokenValidation,web-services,cxf,spring-ws,interceptor,wss4j,Web Services,Cxf,Spring Ws,Interceptor,Wss4j,我有一个场景,我想配置一个webservice安全拦截器和一个UsernameTokenValidator,并将其放入myws-security.jar中。然后,任何Web服务都可以使用它,无论是基于CXF的还是使用此jar的SpringWS。处理这种情况的做法是什么 在这种情况下,使用org.apache.cxf.ws.security.wss4j.wss4jinterceptor类或org.springframework.ws.soap.security.wss4j.Wss4jSecurit
在这种情况下,使用org.apache.cxf.ws.security.wss4j.wss4jinterceptor类或org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor配置拦截器对我有用吗?在Spring ws和cxf中,您通常不提供自己的WSS拦截器,您只需使用适当的回调处理程序配置提供的拦截器。因此,在您的情况下,如果您根据需要继承的安全操作类型创建适当的回调句柄,那么可以在Spring WS和Apache CXF中重用此回调句柄:
<jaxws:endpoint address=".." id=".." implementor="#memberendpoint">
<jaxws:inInterceptors>
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken" />
<entry key="passwordType" value="PasswordDigest" />
<entry key="passwordCallbackRef">
<ref bean="callBackHandler" />
</entry>
</map>
</constructor-arg>
</bean>
</jaxws:inInterceptors>
在Spring WS中,您将按照以下思路进行操作:
<bean id="wss4jSecurityInterceptor" class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="validationCallbackHandler" ref="callBackHandler" />
<property name="validationActions" value="UsernameToken" />
</bean>
在Apache CXF中:
<jaxws:endpoint address=".." id=".." implementor="#memberendpoint">
<jaxws:inInterceptors>
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken" />
<entry key="passwordType" value="PasswordDigest" />
<entry key="passwordCallbackRef">
<ref bean="callBackHandler" />
</entry>
</map>
</constructor-arg>
</bean>
</jaxws:inInterceptors>
在这两种情况下,通用回调处理程序都应该适用于您