校验类AuthorizationInterceptor写在服务器端的,代码如下:
package com.huawei.support.security;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.apache.cxf.binding.soap.interceptor.SoapHeaderInterceptor;
import org.apache.cxf.configuration.security.AuthorizationPolicy;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.Message;
import org.apache.cxf.transport.Conduit;
import org.apache.cxf.ws.addressing.EndpointReferenceType;
import org.springframework.core.io.Resource;
import com.huawei.support.utils.StreamUtil;
import com.huawei.support.utils.StringUtil;
public class AuthorizationInterceptor extends SoapHeaderInterceptor
{
private static Properties props;
/**
* 配置路径
*/
private Resource configLocation;
public void setConfigLocation(Resource aConfigLocation)
{
this.configLocation = aConfigLocation;
}
private Properties getProps()
{
if (null == props)
{
props = new Properties();
InputStream is = null;
try
{
is = configLocation.getInputStream();
props.load(is);
}
catch (IOException e)
{
props = null;
}
finally
{
StreamUtil.close(is);
}
}
return props;
}
private Conduit getConduit(Message inMessage) throws IOException
{
Exchange exchange = inMessage.getExchange();
EndpointReferenceType target = exchange.get(EndpointReferenceType.class);
Conduit conduit = exchange.getDestination().getBackChannel(inMessage,
null,
target);
exchange.setConduit(conduit);
return conduit;
}
private void close(Message outMessage) throws IOException
{
OutputStream os = outMessage.getContent(OutputStream.class);
os.flush();
os.close();
}
分享到:
相关推荐
本文将详细探讨"spring4+cxf3"整合的相关知识点,包括Spring 4.1.8和CXF 3.1.3的特性、整合过程以及实际应用场景。 **Spring 4.1.8** Spring 4.1.8是Spring框架的一个稳定版本,它引入了诸多改进和新功能。以下是...
【CXF3+maven+spring】是一个典型的Java Web服务开发示例,它结合了三个关键的技术:Apache CXF、Maven以及Spring框架。这个项目旨在展示如何使用这些工具来构建和消费Web服务,同时实现与Spring框架的集成。 ...
CXF3是该框架的第三个主要版本,增加了许多新功能和性能优化。 另一方面,Spring4是Spring框架的一个版本,它是一个强大的企业级应用开发框架,提供了依赖注入、面向切面编程、数据访问、事务管理等功能。Spring4...
在IT行业中,Spring、CXF和Maven是三个非常重要的框架和工具,它们在构建高效、可维护的Java应用程序中发挥着关键作用。本项目整合了Spring 4、CXF 3和Maven 3,旨在创建一个服务端和客户端的完整解决方案。以下是...
JAVA7和JAVA8对应CXF资源 WebService CXF 用了一天时间找,官网打不开,国内要积分,下下来又永不了。...java 8 3.x java 7 2.2x --- 3.2之前版本 java 6 3.1 之前版本 只能上传一个资源,这次合并了
3. **创建Web服务接口**:定义一个Java接口,声明你想要公开的服务方法。例如: ```java @WebService public interface HelloWorldService { String sayHello(String name); } ``` 4. **实现Web服务接口**:...
cxf3整合springmvc所需要的jar包。cxf-core-3.1.14.jar,cxf-rt-bindings-soap-3.1.14.jar ,cxf-rt-databinding-jaxb-3.1.14.jar ....................
3. **Spring集成**:在Spring3.2中,我们可以使用`<cxf:bus>`和`<cxf:interceptor>`标签将自定义拦截器注册到CXF Bus中。这样,Spring容器会管理拦截器的生命周期,并在需要时注入其他依赖。 4. **拦截器链**:CXF...
8. **版本差异**:虽然CXF 2.1较旧,但其后有许多更新的版本,例如CXF 3.x,这些新版本通常包含更多的功能、改进和错误修复。在选择使用CXF 2.1时,需要权衡其稳定性和新版本的特性需求。 9. **文档与社区**:CXF...
Spring4.3整合CXF3.0.4需要使用的Jar包,Spring4.0以上需要使用CXF3.0以上的jar包才可以,之前使用CXF2.7会报各种错误,cxf-core-3.0.4.jar,cxf-rt-bindings-soap-3.0.4.jar
3. **编写RESTFul接口**:在Java类中定义一个实现了JAX-RS标准的接口,例如`HelloWorldResource`: ```java @Path("/hello") public class HelloWorldResource { @GET @Produces(MediaType.TEXT_PLAIN) public...
JAX-RS 2.0是CXF 3.x系列支持的版本,它引入了许多新功能,如异步处理、统一异常处理和链接构造等。 在创建RESTful服务时,我们可以使用`@Path`注解来指定服务的URI模板,`@GET`、`@POST`、`@PUT`、`@DELETE`等注解...
3. **JAX-RS集成**:CXF提供了对Java API for RESTful Web Services (JAX-RS)的全面支持,这是Java平台上的REST规范,允许开发者以一种声明式的方式创建RESTful服务。 4. **Spring框架集成**:描述中提到CXF与...
3. **cxf-rt-frontend-jaxrs.jar**: 支持JAX-RS(Java API for RESTful Web Services),让你可以使用注解轻松地创建RESTful服务。 4. **cxf-rt-transports-http.jar**: 包含了HTTP传输层的实现,使得CXF服务可以...
**3. CXF开发流程** 使用CXF开发WebService通常包含以下步骤: - **定义服务接口**:创建Java接口,定义服务的方法。 - **创建服务实现**:实现接口中的方法,提供具体的服务逻辑。 - **生成WSDL**:使用CXF工具从...
Webservice三要素 Wsdl(webservice使用说明书)重点掌握 Soap(jaxws开发webservice的传输协议)重点掌握 UDDI(了解) Webservice的使用场景分析(掌握) 学会jaxws基本开发方法(重点) Soap1.1和soap1.2...
3. `woodstox-core-asl-4.4.1.jar`:这是一个高效的XML处理器,它基于StAX(Streaming API for XML),用于提高XML解析和生成的性能。在CXF中,它用于读取和写入XML流。 4. `cxf-rt-frontend-jaxws-3.1.1.jar`:这...
3. **数据绑定**:CXF支持JAXB(Java Architecture for XML Binding)进行XML到Java对象的自动转换,简化了数据交换。 4. **WSDL第一**或**代码第一**开发:开发者可以选择从WSDL文件生成Java代码,或者从Java类...
CXF实现WebService_1 的视频,WebService的工作原理以及SOAP的简介
3. **互操作性**:CXF致力于提供与不同平台和语言的互操作性。它支持多种WS-*标准,如WS-Security、WS-Addressing和WS-ReliableMessaging,这些标准增强了Web服务的安全性和可靠性。 4. **绑定灵活性**:CXF支持...