使用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;
}
分享到:
相关推荐
标题“使用CXF实现带header的soap服务”指的是在Java环境中,通过Apache CXF框架创建一个SOAP(简单对象访问协议)服务,同时处理带有HTTP头部信息的请求。Apache CXF是一个开源的服务框架,它允许开发者构建和消费...
本文将详细介绍 Spring Boot 中的拦截器Interceptor机制的配置和使用。 一、Spring Boot 中的拦截器Interceptor机制 在 Spring Boot 框架中,拦截器Interceptor是通过实现 HandlerInterceptor 接口来实现的。...
利用反射和动态代理机制实现自定义拦截器Interceptor 在本文中,我们将探讨如何利用反射和动态代理机制来实现自定义拦截器Interceptor。拦截器Interceptor是一种常见的设计模式,用于在方法调用前后执行某些操作,...
在使用 Interceptor 时,我们需要将其添加到 Retrofit 客户端中。下面是一个简单的示例代码: ```java Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.example.com/") .addInterceptor(new ...
SpringAOP与SpringMVC拦截器两种方式实现权限管控,前台xml读取配置根据登录用户判断button是否enable
Interceptor框架在软件开发中起着关键作用,尤其是在Java企业级应用中,如Spring AOP(面向切面编程)和各种框架中的拦截器机制。本文将深入探讨Interceptor框架的实现,主要涉及Java代理和反射技术。 首先,理解...
spring boot jwt 和 interceptor的例子。 其中jwt的例子网上有很多,但是都是要数据库支持,这个只是用假数据模拟,不需要数据库支持。另外还有一个拦截器的简单例子。已经在sts 4 测试通过。
综上所述,通过Apache CXF提供的Interceptor机制,我们可以方便地在SOAP消息中添加、读取和验证自定义头部信息,从而增强Web服务的安全性和功能。在实际项目中,务必根据具体需求和安全策略来设计和实现SOAP头的处理...
为了启用AOP并使用自定义的拦截器,我们需要在Spring Boot应用中添加相关依赖。通常,Spring Boot默认集成了Spring AOP,因此只需确保`spring-boot-starter-aop`已经在`pom.xml`或`build.gradle`文件中被包含。 ...
总的来说,Interceptor是Spring MVC提供的一种灵活的扩展机制,它增强了应用程序的功能,使得开发者能够以一种模块化的方式处理各种跨切面的业务需求。通过合理利用Interceptor,可以提高代码的可复用性和可维护性,...
1. **实时同步**:Interceptor能够实时同步浏览器或应用中的网络请求到Postman,这意味着你可以在浏览器中浏览网页或使用应用时,Interceptor会捕获所有的HTTP请求,并将它们传送到Postman中,方便进行进一步的分析...
在"readme.txt"文件中,通常会包含Interceptor的使用指南、更新日志和可能遇到的问题及解决方案。建议在安装和使用前仔细阅读此文件,以确保顺利进行。 总之,Postman Interceptor是API开发者和测试人员的强大工具...
在Spring MVC框架中,拦截器(Interceptor)是一个至关重要的组件,它允许开发者在请求处理之前、之后或在处理过程中执行自定义逻辑。拦截器可以用于实现日志记录、权限检查、性能统计、事务管理等多种功能,极大地...
**接口测试插件 Postman Interceptor 1.1.1** 接口测试是软件开发过程中的重要环节,它确保了不同系统、服务或组件之间的通信功能正常。Postman是一款广泛使用的接口测试工具,提供了丰富的功能来简化和自动化接口...
创建自定义Interceptor时,需要继承`AbstractPhaseInterceptor`或其子类,并实现相应的方法。对于Feature,我们需要继承`AbstractFeature`,并覆盖`configure`方法来设置所需的配置。 在`src`目录下,通常会包含...
在本例中,我们探讨的是如何使用 MyBatis Interceptor 来实现分页功能,这对于处理大数据量的查询是至关重要的。 首先,我们需要了解 MyBatis Interceptor 的工作原理。Interceptor 类似于 Java 中的 AOP(面向切面...
Interceptor广泛应用于框架如Spring、MyBatis等,用于实现事务管理、日志记录、权限控制等功能。在本篇文章中,我们将探讨如何在没有现成框架支持的情况下,模拟实现一个简单的Interceptor过程。 首先,我们需要...
使用Ajax Interceptor 安装Ajax Interceptor后,它会在浏览器右上角出现图标,点击后显示当前页面所有正在进行的Ajax请求。你可以选择某个请求,查看其详细信息,包括URL、HTTP方法、请求头、请求体等,并对其进行...