为使用侦听器端口的消息驱动的 Bean 配置安全性
对于非 Java™ EE 连接器体系结构 (JCA) 消息传递提供程序,由侦听器端口来提供连接工厂、目标以及消息驱动的 Bean 之间的关联。 在此情况下,您可以通过设置容器管理的别名来配置消息驱动的 Bean 的资源安全性和安全许可权。MDB 侦听器的安全信息是在创建 MDB 侦听器的 JMS 连接时建立的。
开始之前
侦听器端口允许与该端口相关联的已部署消息驱动的 Bean 从相关联的目标检索消息。 有关侦听器端口的更多信息,请参阅消息驱动的 Bean - 侦听器端口组件。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
关于此任务
在大多数情况下,MDB 的安全性与任何其他企业 Bean 的安全性完全相同。例如,访问 JDBC 资源和 JCA 资源(如 CICS® 和 IMS™)的方式与访问实体或会话 bean 的方式相同。 访问其他 JMS 资源的方式也与访问其他企业 Bean 的方式相同。
为保护侦听器端口上部署的 MDB,应为服务器配置认证和授权以连接至 JMS 提供程序和目标,以便可从目标中检索消息以供 MDB 的 onMessage() 方法进行处理。
进行初始 JMS 连接后,onMessage() 方法尝试使用一些 MDB 访问其他 JMS 资源。在此情况下,安全性的处理方式与实体或会话 EJB 进行 JMS 调用时的处理方式完全相同。
- 如果已对此连接工厂定义容器管理的别名,那么与该容器管理的别名相关联的用户标识会用于“创建连接”调用,例如 createQueueConnection(userid,password)。
- 如果已对此连接工厂定义了组件管理的别名,那么与该容器管理的别名相关联的用户标识会用于“创建连接”调用。
- 如果既没有指定别名也没有以绑定方式(即,TransportType = “BINDINGS”)定义连接工厂,那么会使用服务器标识。
服务器标识会更具体地转换为服务方中的服务方标识以及控制器中的控制器标识。因此,对于侦听中的控制器,控制器身份和服务方身份很重要。 有关侦听中的控制器的相关信息,请参阅
在 z/OS 上的消息侦听器服务。
要设置容器管理的别名(如果您选择该选项),请使用管理控制台来完成以下步骤:
过程
- 通过单击 ,显示侦听器端口设置
- 要获取 JMS 连接工厂的名称,请查看“连接工厂 JNDI 名称”属性。
- 显示 JMS 连接工厂属性。例如,要显示队列连接工厂的属性,请单击。
- 设置“容器管理的认证别名”属性。
- 单击确定
下一步做什么
调用其他 EJB
到达侦听器端口的消息没有与其关联的客户机凭证。这些消息是匿名的。要从消息驱动的 Bean 调用安全企业 Bean,必须使用 RunAs 标识部署描述符来配置消息驱动的 Bean。安全性取决于消息驱动的 Bean 的 RunAs 标识指定作为 EJB 组件的角色。
有关 EJB 安全性的更多信息,请参阅保护企业 Bean 应用程序。有关配置应用程序的安全性的更多信息,请参阅在组装和部署期间保护应用程序。