微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservice自定义拦截器获取请求header值用于返回参数或验证信息并在返回值添加header参数

  最近在给对接方写webservice接口,提供的接口需要把header里面的参数取出然后在返回的信息中添加header参数,所以这就需要我们从header中获取参数,在webservice中header的值可以有很多用途,有些程序可能会用来验证身份信息,或者做一些校验,返回给客户端的header一半也是用于做校验等,下面就介绍获取请求的header并封装返回header参数的方法

  我搭建的项目使用的cxf,所以我们可以使用AbstractPhaseInterceptor来继承这个抽象类来自定义我们的拦截器,首先我们看到AbstractPhaseInterceptor已经有很多实现类,例如日志拦截器。

   cxf拦截器主要分为两类,一种是处理请求的拦截器InInterceptor,另一种是处理返回的拦截器OutInterceptor,这个从哪里能看到呢,在我们的法布类上可以看到EndpointImpl有这样两个方法

   首先我们先创建请求的拦截

   这里会重写两个方法,第一个设置执行的时机,第二个拦截内容做对应逻辑操作Phase.PRE_PROTOCOL是拦截器执行的时机,PRE_PROTOCOL就是在协议处理阶段拦截内容,后面返回的拦截器也是一样,就不介绍了,具体可以看代码都有那些

  获取到你需要的header里的内容之后,根据你的业务做你对应的业务处理,比如验证信息,我这里就是将获取的值在添加到header中返回给客户端,所以我放到了线程中。下一步我们创建返回的拦截器:

   最后需要把创建的拦截添加进来

   注意我们创建的拦截器只有添加进来才会执行

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐