自定义拦截器,验证用户名密码
来源:互联网 发布:js计算商品总金额 编辑:程序博客网 时间:2024/06/03 07:46
一、client端
1、定义一个构造方法:
public AddHeaderInterceptor(String userId, String password){
super(Phase.PREPARE_SEND);
this.userId = userId;
this.password = password;
}
2、重写handleMessage
public void handleMessage(SoapMessage msg) throws Fault {
List<Header> headers = msg.getHeaders();
Document document = DOMUtils. createDocument();
Element element = document.createElement("root" );
Element userElement = document.createElement("userName" );
Element passwordElement = document.createElement("password" );
userElement.setTextContent( userName);
passwordElement.setTextContent( password);
element.appendChild(userElement);
element.appendChild(passwordElement);
headers.add( new SoapHeader(new QName("authority" ), element));
}
xml为:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<root>
<userName>songchengye</userName>
<password>123456</password>
</root>
</soap:Header>
<soap:Body>
<ns2:getMyName xmlns:ns2="http://service.ws.polo.song.com/">
<arg0>songchengye</arg0>
</ns2:getMyName>
</soap:Body>
</soap:Envelope>
3、服务器端handleMessage
public void handleMessage(SoapMessage message) throws Fault {
List<Header> headers = message.getHeaders();
if(null ==headers || headers.isEmpty()){
throw new Fault(new IllegalArgumentException("header is empty." ));
}
Header header = headers.get(0);
Element element = (Element) header.getObject();
NodeList userIds = element.getElementsByTagName("userName" );
NodeList passwords = element.getElementsByTagName("password" );
if(null == userIds || null == passwords || userIds.getLength() < 1 || passwords.getLength() < 1) {
throw new Fault(new IllegalArgumentException("用户名、密码格式不对." ));
}
String username = userIds.item(0).getTextContent();
String password = passwords.item(0).getTextContent();
if(null != username && username.equals("songchengye" )
&& null != password && password.equals("123456" )){
return;
} else {
throw new Fault(new IllegalArgumentException("用户名或密码错误." ));
}
}
0 0
- 自定义拦截器,验证用户名密码
- wcf自定义用户名密码验证
- 2.服务器自定义的In拦截器,负责检查用户名,密码是否正确:拦截器
- 4.客户端自定义的out拦截器,带上用户名和密码:拦截器
- Wcf 安全性之 自定义用户名密码验证
- siverlight+wcf(basicHttpBinding)自定义用户名密码验证
- WCF中使用自定义“用户名/密码”验证
- 1.服务器自定义的In拦截器,负责检查用户名,密码是否正确:服务器主类
- 3.客户端自定义的out拦截器,带上用户名和密码:客户端主类
- hive配置mysql连接,配置java连接用户名密码,配置自定义类验证用户名密码
- winform+wcf(netTcpBinding)双向通讯 自定义用户名密码验证
- 验证用户名和密码
- 用户名密码验证程序
- 用户名和密码验证
- JS验证用户名密码
- HiveServer2用户名密码验证
- HiveServer2用户名密码验证
- 登陆用户名密码验证
- PAT1019 BASIC:数字黑洞 (20)
- 多机通讯的总结
- 将博客搬至CSDN
- 研发团队平稳度过“从小到大”并非易事
- struts2 Action获取表单数据
- 自定义拦截器,验证用户名密码
- HDU 1393 Weird Clock
- linux scp命令 (复制远程主机上的文件到本地)
- 派生类
- poj 1185 炮兵阵地 状态压缩dp
- CodeIgniter执行$this->load->database()后页面一片空白的解决方法
- OC学习笔记之OC类你好
- redis info命令
- 栈和队列算法一之栈的基本操作