Web Service学习-CXF开发Web Service的权限控制(二)
来源:互联网 发布:mac 删除文件 编辑:程序博客网 时间:2024/05/17 08:01
Web Service如何进行权限控制?
解决思路:服务器端要求input消息总是携带有用户名,密码信息,如果没有用户名和密码信息,直接拒绝调用
解决方案:拦截器
为了让程序员能访问,并修改CXF框架所生成的SOAP消息,CXF提供了拦截器
CXF(Celtix +XFire)说明:
如果不用CXF等框架,SOAP消息的生成,解析都是由程序员负责。无论是添加用户名,密码信息还是提取用户名,密码信息,都可由程序员代码完成。
如果使用CXF等框架,SOAP消息的生成,解析都是由CXF等框架来完成。
总的来说,CXF对发布WebService进行了封装,简化了我们的操作。
拦截器:
服务端添加拦截器:
1,获取Endpoint的publish的方法返回值。
2,调用该对象的getInInterceptors,getOutInterceptors方法来获取In,Out拦截器列表,接下来就可以添加拦截器了
输出内容:
客户端添加拦截器:
1,添加相应的CXF的jar包
2,调用ClientProxy的getClient方法,调用该方法以远程Web Service的代理为参数
3,调用Client对象的getInInterceptors,getOutInterceptors方法来获取In,Out拦截器列表,接下来就可以添加拦截器了
打印内容为:
自定义拦截器
实现效果:当输入用户名密码时,才可以调用我们的服务。即我们需要在服务端添加输入拦截,在客户端添加输出拦截
自定义拦截器,需要实现Interceptor接口,实际上,我们一般会继承AbstractPhaseInterceptor
服务端代码:
AuthInterceptor :
客户端代码:
AddHeaderInterceptor:
启动服务端的ServerMain的main函数,将服务发布,然后启动客户端ClientMain的main函数去访问服务端提供的服务。
用户名密码错误时:
用户名密码正确时:
总结:
权限控制的实现方式为使用拦截器,对于拦截到的Soap消息进行修改。
SOAP消息:
根元素是Envolope
Header
默认情况下,Header元素不是强制出现的
Header元素由程序员控制添加,主要用户携带一些额外的信息,比如用户名,密码信息
Body
如果调用正确,Body元素的内容应该遵守WSDL所要求的格式
如果调用错误,Body元素的内容就是Fault子元素
源码下载
- Web Service学习-CXF开发Web Service的权限控制(二)
- Web Service学习-CXF开发Web Service的权限控制(二)
- Web Service 权限控制学习(二)
- Web Service笔记(二):利用CXF开发Web Service
- Web Service笔记(二):利用CXF开发Web Service
- 使用CXF开发简单的Web Service-HelloWorld(二)
- 使用CXF开发简单的Web Service-HelloWorld(二)
- web service 权限控制以及cxf拦截器
- CXF开发RESTful风格的Web Service
- 使用CXF开发简单的Web Service
- CXF开发RESTful风格的Web Service
- Web Service学习-CXF开发Web Service实例demo(一)
- Web Service学习-CXF开发Web Service实例demo(一)
- CXF的web service 学习笔记
- Web Service笔记(五):CXF开发RESTful风格的Web Service
- Web Service笔记(五):CXF开发RESTful风格的Web Service(实战)
- Web Service笔记(五):CXF开发RESTful风格的Web Service
- Web Service笔记(五):CXF开发RESTful风格的Web Service
- Atcoder 2332 Training Camp
- pdfJs开发心得
- 在腾讯云下搭建hadoop伪分布式模式
- Windows系统下通过PSCP传输文件至BeagleBone Black
- 一些关于Python的基础知识
- Web Service学习-CXF开发Web Service的权限控制(二)
- Segmentation fault in __gnu_cxx::__exchange_and_add () from /usr/lib64/libstdc++.so.6
- 什么是Restful
- QT 安装相关
- Python 标准库和第三方库的安装位置
- 数据结构-插入排序-希尔排序
- Web Service学习-CXF与Spring整合为JavaEE应用发布WebService(三)
- 36. Valid Sudoku Medium
- springmvc学习小结(二)