webService 自定义拦截器
来源:互联网 发布:淘宝gxg代购是正品吗 编辑:程序博客网 时间:2024/05/01 16:28
客户端 拦截器
package com.baidu.cxf.interceptor;import java.util.List;import javax.xml.namespace.QName;import org.apache.cxf.binding.soap.SoapMessage;import org.apache.cxf.interceptor.Fault;import org.apache.cxf.phase.AbstractPhaseInterceptor;import org.apache.cxf.phase.Phase;import org.apache.cxf.headers.Header;import org.apache.cxf.helpers.DOMUtils;import org.w3c.dom.Document;import org.w3c.dom.Element;public class AddPhoneInterceptor extends AbstractPhaseInterceptor<SoapMessage> {private String name;private String password;public AddPhoneInterceptor(String name,String password) {super(Phase.PRE_PROTOCOL);//准备协议化的时候拦截this.name = name;this.password = password;}/** * <chuck> * <name>text</name> * <password>text</password> * </chuck> */@Overridepublic void handleMessage(SoapMessage msg) throws Fault {List<Header> headers = msg.getHeaders();//创建documentDocument document = DOMUtils.createDocument();// 创建根节点 Element 其必须是 org.w3c.dom.Element Element rootElement = document.createElement("Chuck");//创建rootElement 的子节点 nameElementElement nameElement = document.createElement("Name");//设置nameElement 的标签体(即:验证的用户名)nameElement.setTextContent(name);//把 子标签nameElement 放入 根标签rootElement中rootElement.appendChild(nameElement);//创建子节点 passwordElement 其余同上Element passwordElement = document.createElement("Password");passwordElement.setTextContent(password);rootElement.appendChild(passwordElement);headers.add(0,new Header(new QName("Chuck"), rootElement));System.out.println("client handleMessage()..");}}
服务端拦截器:
package com.baidu.cxf.interceptor;import java.util.List;import javax.xml.namespace.QName;import org.apache.cxf.binding.soap.SoapMessage;import org.apache.cxf.headers.Header;import org.apache.cxf.interceptor.Fault;import org.apache.cxf.phase.AbstractPhaseInterceptor;import org.apache.cxf.phase.Phase;import org.w3c.dom.Element;public class ChuckPhoneInterceptor extends AbstractPhaseInterceptor<SoapMessage> {//private String name;//private String password;//public ChuckPhoneInterceptor() {super(Phase.PRE_PROTOCOL);//准备协议化的时候拦截}/** * <Envelope> * <head> * <chuck> * <name>用户名</name> * <password>密码</password> * </chuck> * <chuck> * <name>用户名</name> * <password>用户名</password> * </chuck> * <head> * <Body> * <sayHello> * <arg0>Bob</arg0> * </sayHello> * </Body> * </Envelope> */@Overridepublic void handleMessage(SoapMessage msg) throws Fault {System.out.println("msg: " + msg);// Header header = msg.getHeader(new QName("Chuck")); List<Header> headers = msg.getHeaders(); if(headers != null && headers.size() >1){ Header header = headers.get(0);Element rootElement = (Element) header.getObject();//getElementsByTagName("Name") 获取的是一个name的集合 ,所以需要 取item 0 位上的值String name = rootElement.getElementsByTagName("Name").item(0).getTextContent();String password = rootElement.getElementsByTagName("Password").item(0).getTextContent();System.out.println("Name :" + name + " Password:" + password );if(name.equals("hhh") && password.equals("mm")){System.out.println("Service 通过拦截器");return;} } System.out.println("Service 没有通过拦截器"); throw new Fault(new RuntimeException("请求需要一个正确的用户名和密码!"));}}
0 0
- webService 自定义拦截器
- WebService-CXF-Spring+自定义拦截器
- 【笔记】 WebService之自定义拦截器
- WebService学习笔记(七)自定义拦截器
- WebService学习笔记-CXF添加自定义拦截器
- java WebService CXF Spring 自定义拦截器 附实例源码
- Web Service (011---webservice自定义拦截器)
- webService快速入门入门系列《5》----自定义拦截器
- 【WebService】CXF拦截器的设置以及自定义CXF拦截器
- webservice利用cxf框架编写日志拦截器和自定义拦截器
- webservice(3):CXF拦截器介绍及自定义拦截器实现
- webservice cxf 拦截器
- webService之拦截器
- 【WebService框架-CXF】——CXF+Spring+自定义拦截器构建WebService服务端
- 【WebService框架-CXF】——CXF+Spring+Struts+自定义拦截器构建WebService客户端
- WebService学习总结八 WebService 拦截器
- WebService:权限控制、拦截器
- Java CXF WebService框架 集成Spring3 自定义拦截器进行头验证
- sklearn.datasets.base.Bunch简介
- 在Windows上用eclipse编译运行开源进销存系统ECP
- 解决在公司内外网不能同时上的限制
- 257. Binary Tree Paths
- IT界郎朗上口的名言
- webService 自定义拦截器
- JS验证字符串长度问题
- Lotus Notes 7.0找不到服务器路径
- Angularjs笔记
- request.getParameter()获取不到数据的问题
- Spring中ClassPathXmlApplicationContext类的简单使用
- 一起学WEB(八) 一个网页练习(一)
- docker
- 1001_A+B for Matrices