免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3216 | 回复: 0
打印 上一主题 下一主题

[WebLogic] 揭开WebLogic Web服务安全性的面纱(三) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-22 12:02 |只看该作者 |倒序浏览
导读:安全性是我们大多数客户优先考虑的问题。随着越来越多的客户采用Web服务,他们发现,他们需要了解如何保护Web服务,以及使用何种身份验证机制。为了保持Web服务的开放性并支持多种客户端类型,就必须了解如何处理Web服务的安全性问题。\r\n\r\n关键词:Web服务 安全性 WebLogic Web服务\r\n\r\n  客户端类型\r\n  虽然前面的部分着重于浏览器客户端,但是协议对于任何类型的客户端都是相同的。任何需要访问受保护的Web服务的客户端都要理解这个HTTP身份验证协议,并实现它以求通过身份验证。这个部分说明了如何传送来自各种类型客户端的身份验证信息。\r\n\r\n  MS Visual Basic 客户端\r\n  Microsoft为传输层提供HTTPConnector接口。它使用两个属性来传递证书--AuthUser 和AuthPassword。清单4显示了一个使用Visual Basic和MS SOAP Toolkit 2.0调用一个受保护的WebLogic Web服务的例子。\r\n\r\n  清单4\r\n\r\n  Set Client = New SoapClient \r\n  Client.mssoapinit  \"<WSDL URL>\", \"<Service Name in WSDL>\", \"<Port Name in WSDL>\"\r\n  Connect\r\n  Client.ConnectorProperty(\"AuthUser\") = <username>\r\n  Client.ConnectorProperty(\"AuthPassword\") = <password>\r\n  Client.<Service(args)>\r\n\r\n  不应该把AuthUser 和AuthPassword与ProxyUser 和ProxyPassword相互混淆。它们用于为代理服务器提供证书(如果存在证书的话)。这种身份验证的工作方式是一样的,除了返回的错误号是407,而不是401。\r\n\r\n  Java客户端\r\n  WebLogic Server提供Java客户端库来访问受保护的资源。用户名和证书是使用\"java.naming.security.principal\"和 \"java.naming.security.credentials\"来传送的。清单5描述了Java客户端如何使用WebServiceProxy来调用一个受保护的WebLogic Web服务。\r\n\r\n  清单5\r\n\r\n  Properties h = new Properties();\r\n  h.put(Context.INITIAL_CONTEXT_FACTORY,\r\n  \"weblogic.soap.http.SoapInitialContextFactory\");\r\n  h.put(\"java.naming.security.principal\", \"<username>\" );\r\n  h.put(\"java.naming.security.credentials\", \"<password>\" );\r\n  Context context = new InitialContext(h);\r\n  WebServiceProxy proxy = (WebServiceProxy)context.lookup(<WSDL_URL>);\r\n  SoapMethod method = proxy.getMethod(\"<method name>\");\r\n  method.invoke(new Object[]{\"<args>\"});\r\n\r\n  JAX-RPC客户端\r\n  JAX-RPC(Java API for XML-based remote procedure calls,用于基于XML的远程过程调用的Java API)是2002年6月发布的新标准,它定义了用于调用Web服务的API。WebLogic Server 7.0 支持 JAX-RPC。JAX-RPC接口\"Stub\"和 \"Call\"均支持属性”javax.xml.rpc.security.auth.username\" 和 \"javax.xml.rpc.security.auth.password\",身份验证信息就是借助这两个属性进行传送的。您还可以使用静态常量Stub.USERNAME_PROPERTY 和Stub.PASSWORD_PROPERTY在调用服务之前设置安全性信息(参见清单6)。还可以在使用get<web service>port()获得端口的同时传送用户名和密码。\r\n\r\n  清单6\r\n\r\n  <Web Service Stub>._setProperty(Stub.USERNAME_PROPERTY, \"<username>\");\r\n  <Web Service Stub>._setProperty(Stub.PASSWORD_PROPERTY, \"<password>\");\r\n\r\n  MS C++ 客户端\r\n  类似地,您可以使用厂商提供的API编写C/C++客户端。MS SOAP工具包可以用于编写Windows平台上的C++客户端。用户名和密码是使用Connector Property进行传送的。下面是一个设置用户名和密码的例子。\r\n\r\n  Connector->Property[\"AuthUser\"] =\r\n  \"<UserName>\";\r\n  Connector->Property[\"AuthPassword\"] =  \"<Password>\";\r\n\r\n  结束语\r\n  本文讨论了用于WebLogic Web服务和保护Web服务组件的身份验证。因为Web服务是涉及到不同技术的异构环境的自然选择,必须了解如何使用各种类型的客户端访问受保护的Web服务。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP