在cxf中默认使用org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor之后放置我的自定义拦截器

时间:2011-07-18 21:56:37

标签: java spring-security cxf wss4j

我想创建一个自定义拦截器来访问x.509证书,正如我在这里读到的那样:

http://forum.springsource.org/showthread.php?100159-ProviderNotFoundException-wiring-CXF-s-WSS4JInInterceptor-with-Spring-Security

我必须在默认的org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor之后创建一个拦截器 但我找不到任何线索,我应该配置这个。顺便说一下,我正在使用spring xml配置。

 <jaxws:inInterceptors >
            <!--<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor" >-->
                <!--<constructor-arg>-->
                    <!--<map>-->
                        <!--<entry key="action" value="Signature"/>-->
                        <!--<entry key="signaturePropFile" value="server-crypto.properties"/>-->
                        <!--<entry key="signatureKeyIdentifier" value="serverkey"/>-->
                        <!--<entry key="passwordCallbackClass" value="com.kprtech.service.ws.impl.ServerCallback"/>-->
                    <!--</map>-->
                <!--</constructor-arg>-->
            <!--</bean>-->
            <bean class="com.kprtech.service.ws.service2.MyWSS4JInInterceptor"  >

            </bean>
        </jaxws:inInterceptors>

我已经读过在WSS4J默认拦截器之后添加拦截器将允许我在之后执行的另一个拦截器中访问证书,但我找不到任何方法来更改证书执行的顺序。

1 个答案:

答案 0 :(得分:0)

尝试在拦截器的构造函数中使用AbstractPhaseInterceptor的addAfter()方法。

detailes here

你能发布你的拦截器代码吗?