webservice权限控制

webservice权限控制设计及说明

已有2.0版本,自动实现接口,取消了eclipse生成实现类的过程,详情见git上2.0文档

代码地址(1.0)

https://coding.net/u/mich/p/easytry/git/tree/master/WebService

代码地址(2.0)

https://coding.net/u/mich/p/easytry/git/tree/master/WebServiceV2.0

模块划分

模块主要划分为三个模块,客户端,服务端,output模块
服务端:提供对外服务

 

author包下为权限相关处理类,此处需要和自己系统做对应处理
webservice包下为对外接口,实现类以及相应pojo


output模块:通过服务端的wsld利用eclipse插件自动生成接口以及实现类,同时包含授权相关工具代理

Proxy包下主要提供给客户端权限控制的代理
Webservice包下为eclipse自动根据wsdl生成的实现方法以及代理等类

客户端:调用方法

java下主要调用服务端的相关接口做的简单测试代码
cxf.properties为主要的webservice相关配置文件
同时lib引用了上例output所导出的jar包

核心处理流程

开发流程

1. 服务端开发

a) 编写接口

注意接口上方要添加@WebService注解

b) 编写实现类

 

实现类同样要添加@WebService注解同时endpointInterface为对应接口类全名,targetNameSpace为实现类包名倒置,@Service添加后,便于webservice的发布

c) 编写配置文件cxf-servlet.xml

 

在WebserviceAuthorizeListener中已给所有webservice添加了AuthorInterceptor拦截器,控制权限,如果上例webservice的实现类未添加@Service注解此处需要额外配置

d) 访问http://localhost:8080/webserviceStudy/services/testService?wsdl
如果显示信息,则表示成功

2. output模块开发

a) 开启服务端服务,保证刚刚发布的wsd可以访问
b) 点击项目右键,新建一个web Service Client

 

c) 点击next,此时如果wsdl不能访问,则会报错,点击finish即可生成对应代码

d) 生成成功后会生成五个文件,I***Service, I***ServiceProxy,***ImplService,***ImplServiceLactor,***ImplServiceSoapBindingStub,客户端主要调用Proxy

e) 项目导出jar包

3. 客户端开发
a) 将output导出的jar包导入项目中
b) 通过authorProxy调用getService,内部传入相关接口Proxy的get***Service方法

c) 此处可能抛出异常,如缺失头信息:此错误可能由于authorProxy未生效导致,权限不足:可能该用户并没有调用该服务的权限
其余cxf相关配置说明
1. 服务端web.xml

2. 客户端spring-mvc.xml

通过spring注入AuthorizeProxy的Bean不同客户端的name和token在cxf.properties中设置

测试结果

测试主要通过客户端的TestController配置,权限主要配置两个tom:tom,admin:adminPwd,服务端权限主要在AuthorizeService中配置,此处仅为测试使用,实际需以项目做对应处理

以下结果为tom:tom的权限测试
http://localhost:8080/webserviceClientStudy/hello?name=sss

http://localhost:8080/webserviceClientStudy/create?name=tom&id=2

http://localhost:8080/webserviceClientStudy/delete

转载于:https://www.cnblogs.com/MichLy/p/7686518.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值