geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aman Nanner (JIRA)" <j...@apache.org>
Subject [jira] Commented: (GERONIMO-2868) Message Driven Beans will not run under the specified "run-as" Subject
Date Tue, 06 Mar 2007 16:20:24 GMT

    [ https://issues.apache.org/jira/browse/GERONIMO-2868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478461
] 

Aman Nanner commented on GERONIMO-2868:
---------------------------------------

Ok, I've patched my instance by adding the DefaultSubjectInterceptor into the MDB's interceptor
stack; however, the MDB always receives a null default subject.  I've located this issue to
the fact that the constructor in MdbDeployment always passes a null principal to AbstractEjbDeployment.

I'll see if I can modify this so that it passes the actual default principal similar to the
way SLSBs do.

> Message Driven Beans will not run under the specified "run-as" Subject
> ----------------------------------------------------------------------
>
>                 Key: GERONIMO-2868
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-2868
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: OpenEJB, security
>    Affects Versions: 1.2
>            Reporter: Aman Nanner
>         Assigned To: David Jencks
>         Attachments: mdb-run-as.patch
>
>
> If a message driven bean is configured with a "run-as" element, it is being ignored and
the message driven bean is not run as the specified Subject.  The MDB would be configured
in the ejb-jar.xml as follows:
> ----
>       <message-driven>
>          <display-name>TestMDB</display-name>
>          <ejb-name>TestMDB</ejb-name>
>          <ejb-class>com.acme.ejb.TestMDB</ejb-class>
>          <transaction-type>Bean</transaction-type>
> <message-destination-type>javax.jms.Topic</message-destination-type>
>          <activation-config>
>             <activation-config-property>
> <activation-config-property-name>acknowledgeMode</activation-config-property-name>
> <activation-config-property-value>Auto-acknowledge</activation-config-property-value>
>             </activation-config-property>
>             <activation-config-property>
> <activation-config-property-name>messageSelector</activation-config-property-name>
>                <activation-config-property-value>JOB_CODE =
> 'FOO'</activation-config-property-value>
>             </activation-config-property>
>             <activation-config-property>
> <activation-config-property-name>subscriptionDurability</activation-config-property-name>
> <activation-config-property-value>NonDurable</activation-config-property-value>
>             </activation-config-property>
>          </activation-config>
>          <ejb-ref>
>             <ejb-ref-name>ejb/common/TestEJB</ejb-ref-name>
>             <ejb-ref-type>Session</ejb-ref-type>
>             <home>com.acme.ejb.TestHome</home>
>             <remote>com.acme.ejb.TestRemote</remote>
>             <ejb-link>TestEJB</ejb-link>
>          </ejb-ref>
>          <security-identity>
>             <run-as>
>                <role-name>TESTROLE</role-name>
>             </run-as>
>          </security-identity>
>       </message-driven>
> ----
> Upon inspection of the org.apache.openejb.mdb.DefaaultMdbContainer class, it is noted
that the EjbRunAsInterceptor is not configured as part of the invocation step (as it is in
org.apache.openejb.slsb.DefaultStatelessEjbContainer).  Therefore, the run-as Subject is never
being set as part of the Caller stack.
> I added the EjbRunAsInterceptor into the invocation stack and rebuilt Geronimo, but this
didn't completely fix the problem.  The EjbRunAsInterceptor is now being called, and the Subject
is being set as the "next" caller in the ContextManager's caller stack.  However, the EjbIdentityInterceptor
runs next, and authorizes the invocation under the "current" caller, not the "next" caller.
 Thus, the run-as Subject does NOT perform the invocation.
> I'm not sure what the best way is to fix this without impacting everything else.  If
somebody with more knowledge in this area has a good idea, I can try it and submit a patch.
> Also note that this problem seems to imply that the "run-as" functionality wouldn't work
with session EJBs either (I haven't tried to verify this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message