使用Spring Interceptor 机制读取Web Service 的SOAP请求时,由于在SOAP请求里,xml的元素之间可能会包含空格、回车符、制表符,所以在用dom node读取SOAP xml时,需要对读取的当前元素的类型作判断。判断当前元素的类型是ELEMENT_NODE 还是 TEXT_NODE.
处理SOAP请求时,涉及到了如下三种dom的操作方式,
1. org.springframework.ws.context.MessageContext
2. javax.xml.transform.dom.DOMResult
3. org.w3c.dom.NodeList, org.w3c.dom.Node
代码如下:
public boolean handleRequest(MessageContext messageContext, Object endpoint)
throws Exception {
// TODO Auto-generated method stub
Assert.isInstanceOf(SoapMessage.class, messageContext.getRequest());
SoapMessage request = (SoapMessage) messageContext.getRequest();
SoapHeader header = request.getSoapHeader();
String username = "";
String password = "";
for (Iterator iterator = header.examineAllHeaderElements(); iterator.hasNext();) {
SoapHeaderElement headerElement = (SoapHeaderElement) iterator.next();
NodeList children = ((DOMResult)headerElement.getResult()).getNode().getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
if (children.item(i).getNodeType() == Node.ELEMENT_NODE) {
Node node = (Node) children.item(i);
if ("se:user".equalsIgnoreCase(node.getNodeName())) {
username = node.getChildNodes().item(0).getTextContent();
} else if ("se:pass".equalsIgnoreCase(node.getNodeName())) {
password = node.getChildNodes().item(0).getTextContent();
}
} else if (children.item(i).getNodeType() == Node.TEXT_NODE) {
}
}
}
return true;
}
分享到:
相关推荐
SpringAOP与SpringMVC拦截器两种方式实现权限管控,前台xml读取配置根据登录用户判断button是否enable
spring boot jwt 和 interceptor的例子。 其中jwt的例子网上有很多,但是都是要数据库支持,这个只是用假数据模拟,不需要数据库支持。另外还有一个拦截器的简单例子。已经在sts 4 测试通过。
利用反射和动态代理机制实现自定义拦截器Interceptor http://blog.csdn.net/alanchen520/article/details/34087833
主要介绍了spring boot加入拦截器Interceptor过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
postman interceptor
InterCeptor
详细介绍struts2 interceptor
Postman-Interceptor下载
通过代理和反射实现一个Interceptor框架
Spring 的 DAO 支持 DataSource 注入 DataSource 置换 JDBC 支援 Spring 在 JDBC 的使用上提供了几个类别,让您可以简化 JDBC 在使用时的流程。 使用 JdbcTemplate JdbcTemplate 执行与...
springmvc中关于拦截器的使用
包含postman的chrome插件,postman-interceptor插件,离线安装,即可使用
spring+springmvc+Interceptor+jwt+redis实现sso单点登录.zip
本篇文章主要介绍了详解Retrofit Interceptor(拦截器) 拦截请求并做相关处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
注意:flume-interceptor-1.0-SNAPSHOT.jar flume-interceptor-1.0-SNAPSHOT.jar flume-interceptor-1.0-SNAPSHOT.jar flume-interceptor-1.0-SNAPSHOT.jar flume-interceptor-1.0-SNAPSHOT.jar flume-interceptor-...
弹簧方法拦截器 该示例显示了一个HandlerInterceptor来拦截Web调用并注销注释值。 此示例使用启动2,唯一的区别是您将使用WebMvcConfigurer注册拦截器。
spring mvc annotation interceptor
interceptor-header-poc