CXF请求头安全认证的问题

cto-jp 发布于 2012/12/15 16:12
阅读 1K+
收藏 0

个位大神好~~

    我现在在web service服务端添加基于 WS - Security的安全认证,在网上看了很多文档,试着配置了,但根本就不起作用,用soapUI查看wsdl文件,方法请求头中也没有加入类似

<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soap:mustUnderstand="1">

                     <wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-1">

                            <wsse:Username>admin</wsse:Username>

                            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">josen</wsse:Password>

                     </wsse:UsernameToken>

              </ wsse:Security >

的认证信息,我的spring 配置文件内容是:

<jaxws:endpoint id="dataHandle" implementor="com.neusoft.avnc.tsp.imp.DataHandle"
        address="/dataHandle">
        <jaxws:inInterceptors>
            <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />
            <ref bean="wss4Jinterceptor" />   
         </jaxws:inInterceptors>
    </jaxws:endpoint>
    
    <bean id="wss4Jinterceptor" class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor" >
        <constructor-arg>
            <map>
      <!--指定用户令牌-->
               <entry key="action" value="UsernameToken"/>
                   <!-- 指定密码为文本格式   也可指定为 PasswordDigest -->
               <entry key="passwordType" value="PasswordText"/>
                   <!-- 指定密码认证回调函数-->
               <entry key="passwordCallbackRef">
                  <ref bean="serverPasswordCallback"/>
               </entry>
            </map>
         </constructor-arg>
    </bean>
    
    <!-- web service 安全认证 -->
    <bean id="serverPasswordCallback" class="com.neusoft.avnc.tsp.webservice.ServerPasswordCallback" />

ServerPasswordCallback这个回调函数实现了CallbackHandler接口

现在不知道哪里出错了,还是没有配置好

哪位大神能帮看看,,不胜感激。。。

加载中
0
cto-jp
cto-jp
@sunLeung 你好,刚我看了你写的关于ws security方面的文章,想请你帮我看看我的这个问题,弄了一下午也没找出问题。。。
0
w
william

  使用拦截器

<jaxws:endpoint id="/XX" implementor="#XXX" address="/XXX">

      <jaxws:inInterceptors>
         <bean class="com.XXXX.wss.HttpBasicAuthInterceptor"/>
         <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
       </jaxws:inInterceptors>
       <jaxws:outInterceptors>
        <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
        </jaxws:outInterceptors>
    </jaxws:endpoint>
返回顶部
顶部