如何使用注释设置MessageDriven bean的主体?

时间:2014-10-17 13:17:40

标签: java glassfish jms glassfish-4 message-driven-bean

我在glassfish v4上运行,我使用了messagedriven bean。目前我正在定义bean在glassfish-ejb-jar.xml中运行的主体,如:

<enterprise-beans>
  <ejb>
    <ejb-name>MessageConsumerBean</ejb-name>
    <principal>
      <name>MDBPrincipal</name>
    </principal>

是否可以仅使用注释来执行相同操作,例如@MessageDriven

1 个答案:

答案 0 :(得分:1)

根据https://java.net/downloads/ejb-spec/mdb.no-method.interface.pdf第5.4.14节第133页,可以在安全上下文中传播Principal ,但详细信息不受EJB规范的约束。换句话说,它是一个平台相关的功能。

可以使用@RunAs如果需要为MDB授予特定角色来运行某些受保护的@RolesAllowed方法。

如果您需要使用Principal来处理某些应用程序逻辑,我担心在您的情况下,只有依赖于平台的解决方案,如RunAsPrincipal(JBoss)或glassfish-ejb-jar.xml。