WebService CXF学习(高级篇3):WS-Security

来源:互联网 发布:燕十八mysql优化笔记 编辑:程序博客网 时间:2024/05/20 01:08
这一节我们来探讨一下WebService安全问题,如果所有系统都运行在一个封闭的局域网内,那么可以不考虑网络攻击,拒绝服务,消息篡改,窃取等问题。但通常情况都接入互联网,那么我就得考虑信息安全问题,像前面那样直接将消息裸传,肯定不行。那么,我们就得给消息加密。CXF可以结合WSS4J来对消息安全进行管理,可以使用令牌,X.509认证对消息头或内容进行加密。这节我只对令牌加密做一个简单的描述,我们还以Demo的形式来讲解一下。 这个Demo是在CXF+Spring+Hibernate的基础修改而成。在这里我只针对修改的东西进行讲解。 Java代码 action:UsernameToken指使用用户令牌 passwordType:PasswordText指密码加密策略,这里直接文本 user:cxfServer指别名 passwordCallBackRef:serverPasswordCallback指消息验证 消息验证类: Java代码 package com.itdcl.ws; import java.io.IOException; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.UnsupportedCallbackException; import org.apache.ws.security.WSPasswordCallback; public class ServerPasswordCallback implements CallbackHandler { public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { WSPasswordCallback pc = (WSPasswordCallback) callbacks[0]; String pw = pc.getPassword(); String idf = pc.getIdentifier(); System.out.println("password:"+pw); System.out.println("identifier:"+idf); if (pw.equals("josen") && idf.equals("admin")) { // 验证通过 } else { throw new SecurityException("验证失败"); } } } 消息验证类通过实现CallbackHandler接口,实现handle方法来进行用户认证。 那么,客户端又怎样来验证消息是否确呢。 Java代码 客户端在发送SOAP时对消息对认证,策略跟服务端一样。但是认证类有所区别: Java代码 package com.itdcl.ws; import java.io.IOException; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.UnsupportedCallbackException; import org.apache.ws.security.WSPasswordCallback; public class ClientPasswordCallback implements CallbackHandler { public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { for(int i=0;i
  • WebService CXF学习(高级篇3):WS-Security
  • WebService CXF学习(高级篇3):WS-Security
  • WebService CXF学习(进阶篇2):JAX-WS讲解
  • WebService CXF学习(进阶篇2):JAX-WS讲解
  • CXF学习二(WS-Security)
  • webservice cxf+spring+WS-security配置示例
  • WebService CXF学习(高级篇2):CXF+Spring+Hibernate
  • WebService CXF学习(高级篇2):CXF+Spring+Hibernate
  • WebService CXF学习(进阶篇1):JAX-WS讲解
  • CXF+WS-Security+Spring WebService服务器端+客户端及注意问题
  • 浅谈spingmvc 整合CXF +ws-security 实现webservice安全验证
  • 浅谈spingmvc 整合CXF +ws-security 实现webservice安全验证
  • WebService CXF学习(高级篇1):整合Spring框架
  • WebService CXF学习(高级篇1):整合Spring框架
  • CXF ws security 案例
  • jax-ws之webservice security(安全)3
  • Cxf+wss4j的WS-Security实现(异常解决续篇)
  • cxf + spring 的WS-Security示例(一)
  • sprintf
  • 服务器应用程序不可用
  • Windows环境下使用VS2005编译OpenSSL
  • Android源码目录结构详解
  • DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性
  • WebService CXF学习(高级篇3):WS-Security
  • 获取Android手机总内存和可用内存
  • VS的相关问题
  • Ajax的UpdatePanel内无法弹出窗口的解决方法
  • 关于java中文乱码的应对绝招
  • Ubuntu更新+编译环境+中文输入法
  • 计数排序
  • Socket I/O模型之完成端口
  • 测试大小6k
  • 原创粉丝点击