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

Aman Nanner updated GERONIMO-2868:
----------------------------------

    Attachment: mdb-default-subject-interceptor.patch

Ok, here's a first pass at a patch for this issue.  It's causing several test 
failures and errors that I have not yet had a chance to look into.

> 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-default-subject-interceptor.patch, 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.

Reply via email to