开发者社区> 问答> 正文

CXF请求头安全认证的问题 - CXF报错

"

个位大神好~~

    我现在在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接口

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

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

"

展开
收起
montos 2020-06-04 13:18:58 698 0
1 条回答
写回答
取消 提交回答
  • "<a href=""http://my.oschina.net/XYleung"" class=""referer"" target=""_blank"">@sunLeung 你好,刚我看了你写的关于ws security方面的文章,想请你帮我看看我的这个问题,弄了一下午也没找出问题。。。 <img src=""http://www.oschina.net/js/ke/plugins/emoticons/images/83.gif"" alt="""" />
    ######

      使用拦截器

    <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>"
    2020-06-04 13:30:58
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载