Как в Spring-WS, так и в CXF вы обычно не предоставляете свой собственный перехватчик WSS, вы просто настраиваете предоставленный перехватчик с соответствующим обработчиком обратного вызова.Так что в вашем случае, если вы создадите соответствующий обработчик обратного вызова (в зависимости от типа действия защиты), который должен наследоваться от javax.security.auth.callback.CallbackHandler , этот обработчик обратного вызова может быть повторно использован в Spring-WS и Apache CXF:
В 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>
И общееcallbackhandler должен работать для вас в обоих случаях