0

Webサービスセキュリティインターセプターと UsernameTokenValidator を構成し、これをmyws-security.jarに入れたいというシナリオがあります。これは、この jar を使用する任意の Web サービス (CXF ベースまたは Spring-WS) で使用できます。このシナリオに対処するための練習は何でしょう。

この場合、 org.apache.cxf.ws.security.wss4j.WSS4JInInterceptorクラスまたはorg.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptorでインターセプターを構成するとうまくいきますか?

4

1 に答える 1

0

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 が機能するはずです。

于 2011-12-07T01:43:43.970 に答える