webservice系统学习笔记8-简单的权限校验
服务端handler.java
package com.ws01;import java.util.Set;import javax.xml.namespace.QName; import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPFault; import javax.xml.soap.SOAPHeader; import javax.xml.soap.SOAPMessage; import javax.xml.ws.handler.MessageContext; import javax.xml.ws.handler.soap.SOAPHandler; import javax.xml.ws.handler.soap.SOAPMessageContext; import javax.xml.ws.soap.SOAPFaultException;import org.w3c.dom.Node;public class ServiceSoapHandler implements SOAPHandler<SOAPMessageContext> {/*** 校验用户名密码、校验是否有权限执行方法*/@Overridepublic boolean handleMessage(SOAPMessageContext context) {Boolean out = (Boolean)context.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY);if(!out){SOAPMessage message = context.getMessage();try {SOAPHeader header = message.getSOAPPart().getEnvelope().getHeader();SOAPBody body = message.getSOAPPart().getEnvelope().getBody();//如果头信息为空或者没有内容,直接抛出异常if(null==header || header.getChildNodes().getLength()==0){SOAPFault fault = body.addFault();fault.setFaultString("头信息不能为空!");throw new SOAPFaultException(fault);}//校验用户名和密码Node node = header.getElementsByTagName("lic:userpassword").item(0);String password = node.getTextContent();System.out.println("client send password:"+password);if(!"123456".equals(password)) {return false;}//校验是否有执行方法的权限Node bd = body.getFirstChild();String methodName = bd.getLocalName();//调用的方法名 System.out.println(methodName);//这个方法不允许该用户调用if("adminLogin".equals(methodName)){return false;}} catch (SOAPException e) {e.printStackTrace();}}return true;}@Overridepublic Set<QName> getHeaders() {// TODO Auto-generated method stubreturn null;}@Overridepublic void close(MessageContext context) {// TODO Auto-generated method stub }@Overridepublic boolean handleFault(SOAPMessageContext context) {// TODO Auto-generated method stubreturn false;} }
转载于:https://www.cnblogs.com/yangzhilong/p/3365779.html
webservice系统学习笔记8-简单的权限校验相关推荐
- webservice系统学习笔记9-使用契约优先的方式的一个服务端demo(隐式传Header信息)...
服务器端: 1.编写wsdl文件 <?xml version="1.0" encoding="UTF-8" standalone="no&quo ...
- django系统学习笔记
转自:http://hi.baidu.com/derris/item/7ca6013e330563fede2221ab 2010-02-07 00:12 django系统学习笔记--(1)hello ...
- VC学习笔记:简单绘图
VC学习笔记:简单绘图 SkySeraph Oct.29th 2009 HQU Email-zgzhaobo@gmail.com QQ-452728574 Latest Modified Date ...
- React系统学习笔记
***当前阶段的笔记 *** 「面向实习生阶段」https://www.aliyundrive.com/s/VTME123M4T9 提取码: 8s6v 点击链接保存,或者复制本段内容,打开「阿里云盘」 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 参数验证
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 参数验证 参数验证功能是基于JSR303实现的,用户只需标识JSR303标准的验证 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 服务分组
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 服务分组 当一个接口有多种实现时,可以用group区分. <dubbo:se ...
- python自训练神经网络_tensorflow学习笔记之简单的神经网络训练和测试
本文实例为大家分享了用简单的神经网络来训练和测试的具体代码,供大家参考,具体内容如下 刚开始学习tf时,我们从简单的地方开始.卷积神经网络(CNN)是由简单的神经网络(NN)发展而来的,因此,我们的第 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 只订阅
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 只订阅 问题 为方便开发测试,经常会在线下共用一个所有服务可用的注册中心,这时,如 ...
- 【六更完结!由于字数限制开新文章继续】零基础信号与系统学习笔记:复指数信号、傅里叶级数的系数推导、三角函数正交性、离散傅里叶变换、相位补偿、z变换表、逆变换表、常见序列及其作用
零基础信号与系统学习笔记:复指数信号.傅里叶变换.三角函数正交性 基础1:复指数信号 复指数信号基础知识 复指数信号推导1 虚指数信号 虚指数信号特性和作用 直流信号 基础2:傅里叶级数 推导傅里叶级 ...
最新文章
- 在java中开发图形用户_2016年计算机二级考试《JAVA》习题:编写图形用户界面
- Windows 2000/NT/XP管理员密码丢失解决方法
- static成员函数不能调用non-static成员函数
- 关于java中多态的理解,涉及到内存空间
- VTK:可视化之VectorField
- 设计模式之禅读书笔记
- 利用Facebook提供的免费工具进行宣传
- 马云在《赢在中国》对创业者的经典点评
- 四川方言说唱《管我锤子事》
- java中的递归算法_java递归算法
- aspen怎么做灵敏度分析_灵敏度分析_aspen
- php图书馆占座系统代码,PHP图书馆管理系统(源码+数据库脚本+截图)
- 生活是艰难的,我又划着我的断桨出发了
- 工具-4:图片识别和音乐在线识别
- PaddleNLP_基于seq2seq的对联生成
- NOIP训练 czy的后宫5(树形dp)
- 六顶思考帽(edward de bono)
- 2021年11月软考网络规划设计师上午真题及答案解析
- 支付宝登录界面size_class
- 三个方案解决短视频APP广告变现问题
热门文章
- windows下运行nacos
- echarts多次使用SetOption时的数据问题
- Jupyter notebook基础教程(启动,汉化,操作)
- 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(2)签到题5题
- 【2020模拟考试T5】【PAT乙】1035 插入与归并 (25分) 两种排序的sort写法
- 【POJ2887】Big String(块状链表,模板)
- mysql+分页脚本_MySql实现分页查询的SQL
- 第五章节 类的继承(访问修饰符)
- Python入门--列表生成式
- vim怎么配置只有打开特定文件高亮_vimrc里各种配置的含义