加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Cxf拦截器中获取当前请求的参数

发布时间:2020-12-16 22:27:13 所属栏目:安全 来源:网络整理
导读:Cxf 拦截器中获取当前请求的参数 ? ???????? 有的时候我们的工程里面会有很多的 Webservice 服务,我们可能出于某种原因可能需要对每个请求实现特定的逻辑,比如说对参数的有效性进行校验,这种逻辑往往是通过 Cxf 的拦截器来实现的,这个时候就需要获取 Web

Cxf拦截器中获取当前请求的参数

?

???????? 有的时候我们的工程里面会有很多的Webservice服务,我们可能出于某种原因可能需要对每个请求实现特定的逻辑,比如说对参数的有效性进行校验,这种逻辑往往是通过Cxf的拦截器来实现的,这个时候就需要获取Webservice服务的当前请求参数。Cxf中用MessageContentsList来封装一次请求的所有参数,它是继承自java.util.ArrayList的。MessageContentsList提供了一个静态方法getContentsList(Message message)用于从Message中获取对应请求的参数。其核心实现代码如下。

?

??? public?static MessageContentsList getContentsList(Message msg) {

??????? List<Object> o = CastUtils.cast(msg.getContent(List.class));

??????? if (o == null) {

??????????? returnnull;

??????? }

??????? if (!(oinstanceof MessageContentsList)) {

??????????? MessageContentsList l2 = new MessageContentsList(o);

??????????? msg.setContent(List.class,l2);

??????????? returnl2;

??????? }

??????? return (MessageContentsList)o;

??? }

?

???????? 所以通常我们需要对Webservice服务的请求参数进行统一处理时,我们会定义一个对应的拦截器,然后在拦截器的handleMessage方法中进行如下处理。

?? @Override

?? public?void handleMessage(SoapMessage message) throws Fault {

????? //...

????? //请求参数中包含的参数

????? MessageContentsList list = MessageContentsList.getContentsList(message);

????? //对请求参数进行处理

????? //...

?? }

?

(注:本文是基于Cxf2.7.6所写)

(注:原创文章,转载请注明出处,原文地址:http://haohaoxuexi.iteye.com/blog/2264489)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读