WebService与框架整合.ppt_第1页
WebService与框架整合.ppt_第2页
WebService与框架整合.ppt_第3页
WebService与框架整合.ppt_第4页
WebService与框架整合.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WebService与框架整合,第三十一章,回顾,JSR181开发JSR181简介JSR181开发JDK1.4与JDK1.5的下复杂数据的处理JDK1.4的数据绑定aegis.xml文件的配置JDK1.5处理复杂数据,本章目标,WebService认证处理HTTP身份认证SOAPHeader认证Spring调用webservice,WebService的认证处理,WebSerice是一种开放的web服务,任何人都可以访问,但我们有时候需要考虑只有付费用户才能使用WS,所以,我们就需要对WS加入安全验证机制。当然,可以利用防火墙的IP过滤,web应用的配置从最外层去隔离非法用户。但在内层,我们也可以使用SOAPHeader的方式,由客户端发送验证数据,服务端验通过后基WS访问权限。,WebService的认证处理,作为WebService服务商,希望为自己的服务加锁.认证方式:HTTP身份认证:在web服务器中指定可访问IP,或在防火墙中设置IP访问策略,也可以在web服务器中配置验证程序进行身份认证.SOAPHeader中进行身份验证(JSR181方式):采用JSR181标注的方式进行身份验证.,SOAPHeader认证处理(1),首先,编写服务端验证类,继承AbstractHandlerpublicclassAuthenticationHandlerextendsAbstractHandler.publicvoidinvoke(MessageContextcfx)throwsException.if(cfx.getInMessage().getHeader()=null)throwneworg.codehaus.xfire.fault.XFireFault(请求必须包含验证信息,org.codehaus.xfire.fault.XFireFault.SENDER);Elementtoken=cfx.getInMessage().getHeader().getChild(AuthenticationToken);if(token=null)throwneworg.codehaus.xfire.fault.XFireFault(请求必须包含身份验证信息,org.codehaus.xfire.fault.XFireFault.SENDER);Stringusername=token.getChild(Username).getValue();Stringpassword=token.getChild(Password).getValue();try/进行身份验证,只有abcd1234的用户为授权用户if(username.equals(abcd),SOAPHeader认证处理(2),接着,客户端调用是也需要一个授权信息,在客户端编写类继承AbstractHandlerpublicclassClientAuthenticationHandlerextendsAbstractHandler.privateStringusername=null;privateStringpassword=null;publicClientAuthenticationHandler().publicClientAuthenticationHandler(Stringusername,Stringpassword).this.username=username;this.password=password;publicvoidsetUsername(Stringusername).this.username=username;publicvoidsetPassword(Stringpassword).this.password=password;publicvoidinvoke(MessageContextcontext)throwsException./为SOAPHeader构造验证信息Elementel=newElement(header);context.getOutMessage().setHeader(el);Elementauth=newElement(AuthenticationToken);Elementusername_el=newElement(Username);username_el.addContent(username);Elementpassword_el=newElement(Password);password_el.addContent(password);auth.addContent(username_el);auth.addContent(password_el);el.addContent(auth);,SOAPHeader认证处理(3),然后就是客户端的调用了,其代码如下import.URL;publicclassHelloWorkClientpublicstaticvoidmain(Stringargs)throwsExceptionStringwsdlUrl=:8080/testWS/services/helloWord?wsdl;org.codehaus.xfire.client.Clientclient=neworg.codehaus.xfire.client.Client(newURL(wsdlUrl);client.addOutHandler(newClientAuthenticationHandler(abcd,1234);Objectobj=client.invoke(example,newObject调用成功);System.out.println(obj0);,SOAPHeader认证处理(4),client.addOutHandler表示客户端调用服务端的验证码,你如果没有这行则无法调用,另外就是service.xml的配置文件必须要配置soapHeader,代码如下:helloWordws.HelloWordws.impl.HelloWordImplwrappedliteralapplication,SOAPHeader认证处理(5),applicationContext.xmlcom.softfz.IHelloWebservicehttp:/localhost:8081/HelloWebservice/services/HelloWebservice?wsdl,Spring中配置webservice,applicationContext.xmlcom.softfz.IHelloWebservicehttp:/localhost:8081/HelloWebservice/services/HelloWebservice?wsdl,客户端调用,publicstaticvoidmain(Stringargs)ApplicationContextcontext=newClassPathXmlApplicationContext(applicationContext.xml);IHelloWebservi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论