【问题标题】:common webservice interceptor and UsernameTokenValidation compatible with Spring-WS and CXF通用 webservice 拦截器和 UsernameTokenValidation 兼容 Spring-WS 和 CXF
【发布时间】:2011-12-06 05:34:01
【问题描述】:

我有一个场景,我想配置一个 webservice 安全拦截器和一个 UsernameTokenValidator 并将其放入 myws-security.jar 中。然后可以由使用此 jar 的任何 Web 服务(无论是基于 CXF 还是 Spring-WS)使用。处理这种情况的做法是什么。

将使用 org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor 类或 org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor 配置拦截器> 在这种情况下为我工作?

【问题讨论】:

    标签: web-services cxf spring-ws interceptor wss4j


    【解决方案1】:

    在 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>
    

    在这两种情况下,通用回调处理程序都应该适用于您

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2014-11-28
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 2022-06-14
      • 1970-01-01
      相关资源
      最近更新 更多