JAX-WS должен позволить вам иметь пользовательский перехватчик.
Взгляните на этот весенний конфиг, чтобы увидеть, как я добавил перехватчик к конечной точке службы.
<jaxws:endpoint id="pqdws"
implementor="#Atypon"
address="/pqdws"
publishedEndpointUrl="@ws_webapp_url_ext@">
<jaxws:properties>
<entry key="exceptionMessageCauseEnabled" value="true"/>
<entry key="Content-length"
</jaxws:properties>
<jaxws:inInterceptors>
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken"/>
<entry key="passwordType" value="PasswordText"/>
<entry key="passwordCallbackRef">
<ref bean="passwordCallback"/>
</entry>
</map>
</constructor-arg>
</bean>
</jaxws:inInterceptors>
</jaxws:endpoint>
<bean id="passwordCallback"
class="access.ws.ServerPasswordCallback">
<property name="username" value="@ws_sec_username@"/>
<property name="password" value="@ws_sec_password@"/>
</bean>
Затем перехватчик может делать все, что вы пожелаете, в том числе вызывать внешнюю службу для аутентификации.