WebService与框架整合.ppt

上传人:牧羊曲112 文档编号:6523270 上传时间:2023-11-08 格式:PPT 页数:13 大小:295.99KB
返回 下载 相关 举报
WebService与框架整合.ppt_第1页
第1页 / 共13页
WebService与框架整合.ppt_第2页
第2页 / 共13页
WebService与框架整合.ppt_第3页
第3页 / 共13页
WebService与框架整合.ppt_第4页
第4页 / 共13页
WebService与框架整合.ppt_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《WebService与框架整合.ppt》由会员分享,可在线阅读,更多相关《WebService与框架整合.ppt(13页珍藏版)》请在三一办公上搜索。

1、WebService与框架整合,第三十一章,回顾,JSR181开发JSR181简介JSR181开发JDK1.4与JDK1.5的下复杂数据的处理JDK1.4的数据绑定aegis.xml文件的配置JDK1.5处理复杂数据,本章目标,WebService认证处理HTTP身份认证SOAP Header认证Spring 调用 webservice,WebService的认证处理,WebSerice是一种开放的web服务,任何人都可以访问,但我们有时候需要考虑只有付费用户才能使用WS,所以,我们就需要对WS加入安全验证机制。当然,可以利用防火墙的IP过滤,web应用的配置从最外层去隔离非法用户。但在内层,

2、我们也可以使用SOAP Header的方式,由客户端发送验证数据,服务端验通过后基WS访问权限。,WebService的认证处理,作为WebService服务商,希望为自己的服务加锁.认证方式:HTTP身份认证:在web服务器中指定可访问IP,或在防火墙中设置IP访问策略,也可以在web服务器中配置验证程序进行身份认证.SOAP Header 中进行身份验证(JSR181方式):采用JSR181标注的方式进行身份验证.,SOAP Header认证处理(1),首先,编写服务端验证类,继承AbstractHandler public class AuthenticationHandler exte

3、nds AbstractHandler.public void invoke(MessageContext cfx)throws Exception.if(cfx.getInMessage().getHeader()=null)throw new org.codehaus.xfire.fault.XFireFault(请求必须包含验证信息,org.codehaus.xfire.fault.XFireFault.SENDER);Element token=cfx.getInMessage().getHeader().getChild(AuthenticationToken);if(token=n

4、ull)throw new org.codehaus.xfire.fault.XFireFault(请求必须包含身份验证信息,org.codehaus.xfire.fault.XFireFault.SENDER);String username=token.getChild(Username).getValue();String password=token.getChild(Password).getValue();try/进行身份验证,只有abcd1234的用户为授权用户 if(username.equals(abcd),SOAP Header认证处理(2),接着,客户端调用是也需要一个授

5、权信息,在客户端编写类继承AbstractHandler publicclassClientAuthenticationHandlerextendsAbstractHandler.privateStringusername=null;privateStringpassword=null;publicClientAuthenticationHandler().publicClientAuthenticationHandler(Stringusername,Stringpassword).this.username=username;this.password=password;publicvoi

6、dsetUsername(Stringusername).this.username=username;publicvoidsetPassword(Stringpassword).this.password=password;publicvoidinvoke(MessageContextcontext)throwsException./为SOAPHeader构造验证信息 Elementel=newElement(header);context.getOutMessage().setHeader(el);Elementauth=newElement(AuthenticationToken);El

7、ementusername_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);,SOAP Header认证处理(3),然后就是客户端的调用了,其代码如下.URL;publicclassHelloWorkClient publicsta

8、ticvoidmain(Stringargs)throwsException StringwsdlUrl=http:/127.0.0.1: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

9、调用成功);System.out.println(obj0);,SOAP Header认证处理(4),client.addOutHandler表示客户端调用服务端的验证码,你如果没有这行则无法调用,另外就是service.xml的配置文件必须要配置soapHeader,代码如下:helloWord ws.HelloWord wrapped literal application,SOAP Header认证处理(5),applicationContext.xmlcom.softfz.IHelloWebservicehttp:/localhost:8081/HelloWebservice/serv

10、ices/HelloWebservice?wsdl,Spring中配置webservice,applicationContext.xmlcom.softfz.IHelloWebservicehttp:/localhost:8081/HelloWebservice/services/HelloWebservice?wsdl,客户端调用,public static void main(String args)ApplicationContext context=new ClassPathXmlApplicationContext(applicationContext.xml);IHelloWebservice service=(IHelloWebservice)context.getBean(testService);String result=service.say(hpp);System.out.println(result);,总结,使用AJAX 调用WebService使用 Spring调用WebService,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号