• Spring整合CXF之添加拦截器


    今天主要来讲解下如何在Spring整合CXF环境下,添加拦截器;

    这里我们给下官方的参考文档:http://cxf.apache.org/docs/jax-ws-configuration.html

    结合官方文档,我们在前面的实例基础上,加代码:

    bbb.jpg

    首先我们把前面的自定义拦截器 MyInterceptor 贴进来。

    然后我们打开spring配置文件,applicationContext.xml

    根据官方文档:我们通过jaxws:inInterceptors jaxws:outInterceptors 这两个标签来添加in拦截器和out拦截器

    我们修改下jaxws:endpoint 节点:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!-- 定义服务提供者  -->
    <jaxws:endpoint
        implementor="#helloWorld"
        address="/HelloWorld">
        <!-- 添加in拦截器 -->
        <jaxws:inInterceptors>
             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
             <bean class="com.java1234.interceptor.MyInterceptor"/>
        </jaxws:inInterceptors>
        <!-- 添加out拦截器 -->
        <jaxws:outInterceptors>
             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
        </jaxws:outInterceptors>
    </jaxws:endpoint>

    这里 我们添加了两个in拦截器,一个是cxf自带的LogginInInterceptor拦截器,还有一个是我们自己定义的MyInterceptor拦截器,

    主要用作权限判断;

    out拦截器,我们还是用了一个cxf自带的LogginInInterceptor拦截器;

    这样我们就完事了;我们可以看到。用spring我们可以很轻松的完整拦截器的配置;

    接下来测试下话,我们还是用前面开发的WS_Client来测试,因为请求的websercie地址变了。

    所以我们用wsdl2java工具重新生成下新的客户端代码;(具体操作大家看前面的帖子,这里就不再重复叙述)

    我们测试的话,大家可以先把客户端的拦截器注释掉,我们会发现会报错,说找不到header消息;

    假如密码弄错,会报用户名或者密码不对;

    我们用正确的密码,webservice接口会返回正确的结果。

    OK。今天就到这里。

  • 相关阅读:
    swift 动画
    WCF身份验证二:基于消息安全模式的自定义身份验证
    WCF身份验证一:消息安全模式之<Certificate>身份验证
    SQL Server 事务与锁
    C# 6.0 的新特性
    SQL Cursor 游标的使用
    C# 几种读取MAC地址的方法
    C# 获取方法所在的 命名空间 类名 方法名
    SQL Server 日志清除
    C# 利用WMI对象获取物理内存和可用内存大小
  • 原文地址:https://www.cnblogs.com/grimm/p/12359175.html
Copyright © 2020-2023  润新知