webservice的安全机制1---users.lst
2012-09-10 00:11
246 查看
本节摘要:本节主要介绍webservice的安全机制。
那么,我们软件中是否有安全,安全是否重要呢?
sure,软件开发中当然也有安全,安全显得尤为重要。
本节,我们将一起来看看webservice的安全问题。
之前在前几节中写了webservice开发相关的知识,接下来几节我会写webservice安全相关的问题。
闲扯一点,
本来这部分在上个月就准备写的,但是确实是太忙了,每天加班,晚上回到家都快十一点了,偶尔还要通宵去上线,周末还要去奋战一天,实在是没那个精力,乘着今天下班早点,就来写写了,写博客也是我喜欢的事情嘛。
(1)对webservice发布的方法,方法名称和参数不要使用望文生义的描述;
(2)对webservice发布的方法,在入参中增加一个或多个字符串序列;
这里的字符串可以要求必须满足指定的格式,同时字符串可以再通过客户端传参数的时候加密,服务端解密;
(3)对webservice发布的方法,入参中加上用户名和密码,然后服务端通过数据库校验;
(4)对webservice发布的方法,通过handler/chain方式来实现验证(用户名&密码校验/IP地址校验等);
(5)对webservice发布的方法,采用webservice的users.lst来进行验证;
(6)对webservice发布的服务,通过servlet的Filter来实现验证;
(7)对webservice传输过程中的数据进行加密;
(8)自己写校验框架来实现webservice的安全;
(9)其它方式......
各位大虾,认为还有哪些比较好的方式,欢迎指出。
接下来几节,我会介绍webservice采用users.lst、chain、Filter实现webservice的方式;本节,就来介绍一下最简单的,采用webservice自带的users.lst的方式。
Test.java
客户端日志:
服务端日志:
(2)输入错误的用户名或密码
客户端日志:
服务端日志:
后台没有任何日志输出;
总结:
开发通过webservice自带的验证机制实现步骤如下:
1.先不考虑安全机制的问题,开发一个需要的webservice服务和客户端,并测试通过;
2.在WEB-INF目录下新建一个文件users.lst,文件名必须一模一样,然后在文件中加入允许的用户名和密码;
3.在wsdd配置文件中对应的服务中加入SimpleAuthenticationHandler的配置;
4.在客户端访问时增加用户名和密码的设置;
1.引言
俗话说,安全第一;那么,我们软件中是否有安全,安全是否重要呢?
sure,软件开发中当然也有安全,安全显得尤为重要。
本节,我们将一起来看看webservice的安全问题。
之前在前几节中写了webservice开发相关的知识,接下来几节我会写webservice安全相关的问题。
闲扯一点,
本来这部分在上个月就准备写的,但是确实是太忙了,每天加班,晚上回到家都快十一点了,偶尔还要通宵去上线,周末还要去奋战一天,实在是没那个精力,乘着今天下班早点,就来写写了,写博客也是我喜欢的事情嘛。
2.webservice安全机制分类
首先声明,这里的分类不一定准确,只是我站在目前的高度,对能了解到的,能想到的做一个简单的分类;再者,这里的分类都是站在代码的角度来写的,至于你说的防火墙、DMZ....这些都不在我的考虑范围之内。(1)对webservice发布的方法,方法名称和参数不要使用望文生义的描述;
(2)对webservice发布的方法,在入参中增加一个或多个字符串序列;
这里的字符串可以要求必须满足指定的格式,同时字符串可以再通过客户端传参数的时候加密,服务端解密;
(3)对webservice发布的方法,入参中加上用户名和密码,然后服务端通过数据库校验;
(4)对webservice发布的方法,通过handler/chain方式来实现验证(用户名&密码校验/IP地址校验等);
(5)对webservice发布的方法,采用webservice的users.lst来进行验证;
(6)对webservice发布的服务,通过servlet的Filter来实现验证;
(7)对webservice传输过程中的数据进行加密;
(8)自己写校验框架来实现webservice的安全;
(9)其它方式......
各位大虾,认为还有哪些比较好的方式,欢迎指出。
3.webservice安全实现
既然webservice的安全方式有那么多种,那么具体是怎么实现的呢?接下来几节,我会介绍webservice采用users.lst、chain、Filter实现webservice的方式;本节,就来介绍一下最简单的,采用webservice自带的users.lst的方式。
3.1开发一个基本的webservice
项目结构图如下:Test.java
package client; import java.net.URL; import javax.xml.rpc.ParameterMode; import org.apache.axis.client.Call; import org.apache.axis.encoding.XMLType; public class Test { public static void main(String args[]) throws Exception { webservice_user(); } public static void webservice_user() throws Exception { // 1.创建service对象,通过axis自带的类创建 org.apache.axis.client.Service service = new org.apache.axis.client.Service(); // 2.创建url对象 String wsdlUrl = "http://localhost:8080/WebService06_Security/services/HelloService?wsdl";// 请求服务的URL URL url = new URL(wsdlUrl);// 通过URL类的构造方法传入wsdlUrl地址创建URL对象 // 2.创建服务方法的调用者对象call,设置call对象的属性 Call call = (Call) service.createCall(); call.setTargetEndpointAddress(url);// 给call对象设置请求的URL属性 String serviceName = "hello";// webservice的方法名 call.setOperationName(serviceName);// 给call对象设置调用方法名属性 call.addParameter("s", XMLType.XSD_STRING, ParameterMode.IN);// 给call对象设置方法的参数名、参数类型、参数模式 call.setReturnType(XMLType.SOAP_STRING);// 设置调用方法的返回值类型 // call.setTimeout(new Integer(200));//设置超时限制 //-----------------------------采用webservice的users.lst的安全机制增加的------------------------------------- //此处的用户名和密码对应WEB-INF目录下users.lst文件中的用户名和密码 call.getMessageContext().setUsername("pantp"); call.getMessageContext().setPassword("123456"); //-----------------------------采用webservice的users.lst的安全机制增加的------------------------------------- // 4.通过invoke方法调用webservice String str = new String("pantp"); String dept = (String) call.invoke(new Object[] { str });// 调用服务方法 // 5.打印返回结果 System.out.println("我是客户端......."); System.out.println(dept); } }
3.4测试webservice通过users.lst实现的安全机制
(1)输入正确的用户名和密码客户端日志:
服务端日志:
(2)输入错误的用户名或密码
客户端日志:
服务端日志:
后台没有任何日志输出;
总结:
开发通过webservice自带的验证机制实现步骤如下:
1.先不考虑安全机制的问题,开发一个需要的webservice服务和客户端,并测试通过;
2.在WEB-INF目录下新建一个文件users.lst,文件名必须一模一样,然后在文件中加入允许的用户名和密码;
3.在wsdd配置文件中对应的服务中加入SimpleAuthenticationHandler的配置;
4.在客户端访问时增加用户名和密码的设置;
相关文章推荐
- [置顶] webservice的安全机制1---users.lst
- webservice的安全机制1---users.lst
- webservice的安全机制1---users.lst
- webservice的安全机制1---users.lst
- webservice的安全机制2---handler实现
- webservice的安全机制3---Filter
- [置顶] webservice的安全机制2---handler实现
- webservice的安全机制3---Filter
- [置顶] webservice的安全机制3---Filter
- WebService(8)_Apache CXF安全机制_X509证书加密
- 基于加密机制的WebService访问与通信安全
- 【webservice】基于axis2设计带soaphead安全机制的webservice服务端
- ASP.NET中基于soaphead的webservice安全机制
- 讨论WebService安全机制的几篇博文
- webservice的安全机制2---handler实现
- webservice的安全机制2---handler实现
- ASP.NET中基于soaphead的webservice安全机制
- uvnc应对vista安全机制之策略(摘录)
- CA证书已成累赘,互联网平台安全信任机制的探讨,纯技术贴。文:高航
- Android 安全机制(1)uid 、 gid 与 pid