请求各位大侠的帮助..
以下是我服务器端得拦截器我想通过context.getMessageContext()方法获取body信息可是总为null,不知道如何获取body中的消息内容,还有别的什么方法吗?
package cn.com.bps.security.webservice;
import java.io.IOException;
import javax.annotation.Resource;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
import org.apache.cxf.transport.http.AbstractHTTPDestination;
import org.apache.ws.security.WSPasswordCallback;
public class WsAuthHandler implements CallbackHandler{
private String username;
private String password;
//@Resource
//private WebServiceContext context;
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
this.setUsername(pc.getIdentifier());
this.setPassword(pc.getPassword());
System.out.println("identifier: " + pc.getIdentifier());
System.out.println("password: " + pc.getPassword());
System.out.println("usage: " + pc.getUsage());
//我服务器端得拦截器我想通过context.getMessageContext()方法获取body信息可是总为null,
//不知道如何获取body中的消息内容,还有别的什么方法吗?
System.out.println(context.getMessageContext());
if (pc.getIdentifier().equals("yinfeifei")){
if (!pc.getPassword().equals("welcome1")) {
System.out.println("wrong password");
}else{
System.out.println("userinfosecurity validate successfully");
}
} else{
System.out.println("wrong username");
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
请求各位大侠的帮助..
以上是我服务器端得拦截器我想通过context.getMessageContext()方法获取body信息可是总为null,不知道如何获取body中的消息内容,还有别的什么方法吗?
相关推荐
它不仅包含了实际的消息数据,还提供了丰富的API用于访问和操作这些数据,包括但不限于设置和获取拦截器链、目的地信息以及消息内容。`Message`对象作为所有拦截器操作的中心,确保了数据和行为的统一管理。 通过...
我们可以创建实现`org.apache.cxf.interceptor.ClientInterceptor`接口的类,并通过`ClientProxy.getClient()`方法获取代理对象,然后调用`getOutInterceptors()`或`getInFaultInterceptors()`等方法添加拦截器。...
在CXF中,拦截器是处理消息生命周期中的关键组件,它们可以在消息发送前、接收后、发送后以及接收前执行自定义逻辑。这使得我们可以在不修改原有业务代码的情况下,轻松地添加额外的功能,如日志记录、安全检查或...
ssh2-interceptor拦截器(权限管理).
拦截器分为两种类型:客户端拦截器和服务器端拦截器,分别处理客户端和服务端的请求和响应。 ### 二、拦截器的生命周期 CXF拦截器的生命周期与消息处理紧密相关,主要包含以下阶段: 1. **Pre-Dispatch(预调度)...
5. **自定义逻辑**:在自定义拦截器的`handleMessage`或`handleFault`方法中,你可以添加任何你需要的业务逻辑,例如验证请求头、修改消息内容或记录操作日志。 6. **调试和测试拦截器**:为了确保拦截器按预期工作...
在Web服务开发中,拦截器扮演着至关重要的角色,它们提供了在消息发送和接收过程中插入自定义逻辑的能力。本篇文章将深入探讨如何使用CXF的`EndpointImpl`类来发布一个WebService,并加入拦截器。 首先,我们要理解...
李刚作为标签出现,可能意味着他是这个主题的专家,他的资源或教程可能在学习CXF客户端拦截器时提供帮助。"webservice web service"标签进一步强调了这是关于Web Service的讨论,而不仅仅是CXF框架本身。 总之,...
在本项目中,"spring集成cxf客户端和服务器端demo(含自定义拦截器)"是一个实战案例,展示了如何在Spring框架下与Apache CXF服务进行整合,实现客户端和服务端的交互,并利用拦截器来增强功能。以下是这个项目涉及的...
客户端拦截器可以用来处理请求的构建和响应的解析,例如,添加身份验证信息或者对返回的数据进行解密。 5. **“1.rtf”**: 这可能是一个RTF(Rich Text Format)文档,通常用于包含详细的说明、教程或者代码解释...
2. **客户端拦截器**: - 创建`ClientProxyFactoryBean`实例,然后使用`setInInterceptors()`和`setOutInterceptors()`方法添加拦截器。 - 或者在客户端配置文件中声明拦截器。 四、拦截器执行顺序 拦截器的执行...
CXF提供了丰富的功能,包括服务端和客户端的拦截器(Interceptor)机制,使得开发者能对服务调用进行自定义处理,如权限控制和登录校验。本文将深入探讨"CXF拦截器-权限控制-登录校验"这一主题。 首先,我们需要...
拦截器可以拦截并处理消息的发送和接收,从而提供了一种灵活的方式来扩展或增强服务的功能。例如,我们可以通过拦截器实现日志记录、安全验证、性能监控等需求。在`pom.xml`文件中,我们需要添加CXF的依赖以使用拦截...
这个压缩包"apache-cxf-2.7.7以及cxf客户端所需要的jar包"包含了Apache CXF 2.7.7版本及其客户端运行所需的库文件。这些jar包对于创建、部署和消费Web服务至关重要,特别是对于使用命令行生成Web服务客户端的开发者...
客户端拦截器主要应用于以下场景: 1. **身份验证**:可以在请求发送前添加认证信息,例如添加OAuth令牌或基本HTTP认证。 2. **日志记录**:可以记录请求和响应的详细信息,有助于调试和性能分析。 3. **异常处理**...
在这个“cxf简单实例 服务端与客户端”中,我们将探讨如何使用CXF来创建服务端和客户端应用。 服务端开发是Web服务的核心部分。在CXF中,服务端通常通过以下步骤建立: 1. 定义服务接口:首先,我们需要定义一个...
这个"CXF实例源代码(客户端)"压缩包提供了客户端调用Web服务的示例代码,对于初学者来说,是理解如何使用CXF进行Web服务交互的绝佳资源。 在Web服务的世界里,客户端通常负责发起请求并接收服务端的响应。CXF作为...
拦截器是CXF框架中的一种重要机制,它们允许我们在消息被处理之前或之后插入自定义逻辑,例如认证、日志记录、事务管理等,其中权限检查是常见应用场景之一。 要创建自定义拦截器,我们需要遵循以下步骤: 1. **...
CXF入门教程(2) -- 简单客户端示例文章附带代码,为使用方便,将service和client代码合并到一个工程中。原文地址http://blog.csdn.net/neareast/article/details/7717568
实际上就是发送和接收消息,实现两个系统间消息的传递 jar包都在lib项目里 具体再解释一下,服务端需要 接口类,实现类,cxf 服务端xml,和一个pojo 客户端也需要接口类文件和pojo,和cxf客户端xml 但是没有接口的...