免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-22 12:01 |只看该作者 |倒序浏览
导读:安全性是我们大多数客户优先考虑的问题。随着越来越多的客户采用Web服务,他们发现,他们需要了解如何保护Web服务,以及使用何种身份验证机制。为了保持Web服务的开放性并支持多种客户端类型,就必须了解如何处理Web服务的安全性问题。\r\n\r\n关键词:Web服务 安全性 WebLogic Web服务\r\n\r\n  安全性是我们大多数客户优先考虑的问题。随着越来越多的客户采用Web服务,他们发现,他们需要了解如何保护Web服务,以及使用何种身份验证机制。为了保持Web服务的开放性并支持多种客户端类型,就必须了解如何处理Web服务的安全性问题。\r\n\r\n  本文深入幕后探讨了WebLogic Web服务的安全性问题。我将阐明如何保护WebLogic Web服务,身份验证如何工作,以及如何使用各种编程语言开发客户端来为WebLogic Web服务提供身份验证。\r\n\r\n  WebLogic Web 服务组件\r\n  以WebLogic Server作为宿主的Web服务是使用标准的J2EE组件(比如EJB和JMS)来实现的,并且作为标准的J2EE企业应用程序来打包。WebLogic Web服务使用简单对象访问协议(Simple Object Access Protocol ,SOAP)1.1作为消息格式,并使用HTTP 1.1作为连接协议。\r\n\r\n  Web服务运行时组件是一组创建Web服务所需的servlet和相关的基础架构。运行时的元素之一是一组用于处理来自客户端SOA请求的servlet。这些servlet包含在WebLogic Server发布中。运行时的另一个元素是Ant任务,它负责生成和组装WebLogic Web服务的所有组件。\r\n\r\n  WebLogic Web服务作为标准的J2EE企业应用程序来打包,它由以下特殊组件组成:\r\n\r\n  • 一个Web应用程序至少包含一个servlet,用于发送SOAP消息给客户端和接收来自客户端的SOAP消息。它作为Web服务开发过程的一部分而自动被包括在内。 \r\n  • 一个无状态会话EJB,用于为消息风格的Web服务实现RPC风格的Web服务或JMS监听程序(比如消息驱动bean)。\r\n\r\n  在一个RPC风格的Web服务中,无状态会话EJB可以完成Web服务的所有实际工作,或者它们可以把工作分配给其他EJB。Web服务的实现者决定哪些EJB完成实际工作。在消息风格的Web服务中,J2EE对象(通常是消息驱动bean)从JMS目的地获取消息,并且处理它们。WebLogic Web服务作为企业存档(.ear)文件打包,其中包含Web应用程序的Web存档(.war)文件和EJB存档(.jar)文件。\r\n\r\n  保护WebLogic Web 服务\r\n  因为WebLogic Web服务作为标准的J2EE企业应用程序打包,所以通过保护组成Web服务的以下标准J2EE组件中的一些或全部,来保护对Web服务的访问:\r\n\r\n  • SOAP servlet \r\n  • RPC风格的Web服务基于无状态会话EJB。可使用基本的HTTP身份验证或SSL对尝试访问WebLogic Web服务的客户端进行身份验证。因为前述组件均为标准的J2EE组件,因为可以使用标准的J2EE安全过程来保护它们。\r\n\r\n  保护消息风格的Web服务\r\n  可以通过保护负责处理客户端和服务之间SOAP消息的SOAP servlet,来保护消息风格的Web服务。\r\n\r\n  不论是手动还是使用wsgen Ant任务来组装Web服务时,您都可以在Web应用程序的web.xml文件中引用SOAP servlet。这些servelet负责处理在WebLogic Server和客户端应用程序之间传递的SOA消息。它们始终部署在WebLogic Server上,并为所有部署的WebLogic Web服务所共享。\r\n\r\n  Web服务引用哪个特定SOAP servlet取决于它的类型(RPC风格还是消息风格)。下面列出了对每个SOAP servlet的描述:\r\n\r\n  • weblogic.soap.server.servlet.DestinationSendAdapter: 在负责接收来自客户端应用程序的数据并把这些数据发送给JMS目的地的消息风格的Web服务中处理SOAP消息。 \r\n  • weblogic.soap.server.servlet.QueueReceiveAdapter: 在负责把数据从JMS队列发送给客户端应用程序的消息风格的Web服务中处理SOAP消息。 \r\n  • weblogic.soap.server.servlet.TopicReceiveAdapter: 在负责把数据从JMS主题发送给客户端应用程序的消息风格的Web服务中处理SOAP消息。 \r\n  • weblogic.soap.server.servlet.StatelessBeanAdapter: 处理RPC风格的Web服务和客户端应用程序之间的SOAP消息。\r\n\r\n  例如,在客户端应用程序用来发送数据给JMS目的地的消息风格的Web服务中,负责处理SOAP消息的SOAP servlet是weblogic.soap.server.servlet.DestinationSendAdapter。用于组装Web服务的wsgen Ant任务把清单1中所示的元素添加到Web应用程序的web.xml部署描述器。\r\n\r\n  清单1\r\n\r\n  <servlet>\r\n   <servlet-name>sender</servlet-name>\r\n   <servlet-class>\r\n   weblogic.soap.server.servlet.DestinationSendAdapter\r\n   </servlet-class>\r\n   <init-param>\r\n   <param-name>topic-resource-ref</param-name>\r\n   <param-value>senderDestination</param-value>\r\n   </init-param>\r\n   <init-param>\r\n   <param-name>connection-factory-resource-ref</param-name>\r\n   <param-value>senderFactory</param-value>\r\n   </init-param>\r\n   </servlet>\r\n   ...\r\n\r\n  为了限制对DestinationSendAdapter SOAP servlet的访问,您首先定义一个角色,并把它映射到安全域中的一个或多个主体,然后通过把web-resources-collection元素中的如下url-pattern元素添加到Web应用程序的web.xml部署描述器,指定把该安全约束应用到该SOAP servlet。\r\n\r\n  <url-pattern>/sendMsg</url-pattern>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP