You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by "William Walsh (JIRA)" <ji...@apache.org> on 2010/06/25 15:23:01 UTC

[jira] Created: (AXIS2-4753) Make EJBUtil multi-thread aware

Make EJBUtil multi-thread aware
-------------------------------

                 Key: AXIS2-4753
                 URL: https://issues.apache.org/jira/browse/AXIS2-4753
             Project: Axis2
          Issue Type: Improvement
          Components: databinding
    Affects Versions: 1.5.1
         Environment: WebLogic
            Reporter: William Walsh


We found that we had problems integrating Axis2 with WebLogic in that we couldn't re-use any of the EJB receiver code apparently because the security established at InitialContext creation (org.apache.axis2.rpc.receivers.ejb.EJBUtil) was then lost when org.apache.axis2.rpc.receivers.ejb.EJBUtil.EJBClientWorker invoked its run method in a separate thread for the EJB service, causing a WebLogic security error invoking the service.  We checked with Oracle and they feel it's most likely that the separate threads are the cause as WLS doesn't pass/propagate subjects across threads.  Thus the second thread that does the actual invocation of the service doesn't have the authentication done in the first thread when the InitialContext is created, which is successfully validated by our login module.

We coded our own receiver to avoid this additional threading—essentially duplicating the Axis2 functionality.  I've been told that for EJB environments that threading should not be  used, leaving it to the container environment to manage.

----

Had confirmation from Martin Gainty and request to open this JIRA case:
"
yep the statics of EJBUtil will not work in a multi-threaded environment as seen here
 
public class EJBUtil {
    public static final java.lang.String EJB_JNDI_NAME = "beanJndiName";
"



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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] Commented: (AXIS2-4753) Make EJBUtil multi-thread aware

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882829#action_12882829 ] 

Andreas Veithen commented on AXIS2-4753:
----------------------------------------

Indeed, by executing the lookup code in a different thread, the security context is lost. Probably this is desired in some use cases, but unfortunately there is no documentation that explains exactly why this has been coded like that (the code seems to have been ported from Axis1).

> Make EJBUtil multi-thread aware
> -------------------------------
>
>                 Key: AXIS2-4753
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4753
>             Project: Axis2
>          Issue Type: Improvement
>          Components: databinding
>    Affects Versions: 1.5.1
>         Environment: WebLogic
>            Reporter: William Walsh
>
> We found that we had problems integrating Axis2 with WebLogic in that we couldn't re-use any of the EJB receiver code apparently because the security established at InitialContext creation (org.apache.axis2.rpc.receivers.ejb.EJBUtil) was then lost when org.apache.axis2.rpc.receivers.ejb.EJBUtil.EJBClientWorker invoked its run method in a separate thread for the EJB service, causing a WebLogic security error invoking the service.  We checked with Oracle and they feel it's most likely that the separate threads are the cause as WLS doesn't pass/propagate subjects across threads.  Thus the second thread that does the actual invocation of the service doesn't have the authentication done in the first thread when the InitialContext is created, which is successfully validated by our login module.
> We coded our own receiver to avoid this additional threading—essentially duplicating the Axis2 functionality.  I've been told that for EJB environments that threading should not be  used, leaving it to the container environment to manage.
> ----
> Had confirmation from Martin Gainty and request to open this JIRA case:
> "
> yep the statics of EJBUtil will not work in a multi-threaded environment as seen here
>  
> public class EJBUtil {
>     public static final java.lang.String EJB_JNDI_NAME = "beanJndiName";
> "

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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] Commented: (AXIS2-4753) Make EJBUtil multi-thread aware

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882829#action_12882829 ] 

Andreas Veithen commented on AXIS2-4753:
----------------------------------------

Indeed, by executing the lookup code in a different thread, the security context is lost. Probably this is desired in some use cases, but unfortunately there is no documentation that explains exactly why this has been coded like that (the code seems to have been ported from Axis1).

> Make EJBUtil multi-thread aware
> -------------------------------
>
>                 Key: AXIS2-4753
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4753
>             Project: Axis2
>          Issue Type: Improvement
>          Components: databinding
>    Affects Versions: 1.5.1
>         Environment: WebLogic
>            Reporter: William Walsh
>
> We found that we had problems integrating Axis2 with WebLogic in that we couldn't re-use any of the EJB receiver code apparently because the security established at InitialContext creation (org.apache.axis2.rpc.receivers.ejb.EJBUtil) was then lost when org.apache.axis2.rpc.receivers.ejb.EJBUtil.EJBClientWorker invoked its run method in a separate thread for the EJB service, causing a WebLogic security error invoking the service.  We checked with Oracle and they feel it's most likely that the separate threads are the cause as WLS doesn't pass/propagate subjects across threads.  Thus the second thread that does the actual invocation of the service doesn't have the authentication done in the first thread when the InitialContext is created, which is successfully validated by our login module.
> We coded our own receiver to avoid this additional threading—essentially duplicating the Axis2 functionality.  I've been told that for EJB environments that threading should not be  used, leaving it to the container environment to manage.
> ----
> Had confirmation from Martin Gainty and request to open this JIRA case:
> "
> yep the statics of EJBUtil will not work in a multi-threaded environment as seen here
>  
> public class EJBUtil {
>     public static final java.lang.String EJB_JNDI_NAME = "beanJndiName";
> "

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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] Commented: (AXIS2-4753) Make EJBUtil multi-thread aware

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882829#action_12882829 ] 

Andreas Veithen commented on AXIS2-4753:
----------------------------------------

Indeed, by executing the lookup code in a different thread, the security context is lost. Probably this is desired in some use cases, but unfortunately there is no documentation that explains exactly why this has been coded like that (the code seems to have been ported from Axis1).

> Make EJBUtil multi-thread aware
> -------------------------------
>
>                 Key: AXIS2-4753
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4753
>             Project: Axis2
>          Issue Type: Improvement
>          Components: databinding
>    Affects Versions: 1.5.1
>         Environment: WebLogic
>            Reporter: William Walsh
>
> We found that we had problems integrating Axis2 with WebLogic in that we couldn't re-use any of the EJB receiver code apparently because the security established at InitialContext creation (org.apache.axis2.rpc.receivers.ejb.EJBUtil) was then lost when org.apache.axis2.rpc.receivers.ejb.EJBUtil.EJBClientWorker invoked its run method in a separate thread for the EJB service, causing a WebLogic security error invoking the service.  We checked with Oracle and they feel it's most likely that the separate threads are the cause as WLS doesn't pass/propagate subjects across threads.  Thus the second thread that does the actual invocation of the service doesn't have the authentication done in the first thread when the InitialContext is created, which is successfully validated by our login module.
> We coded our own receiver to avoid this additional threading—essentially duplicating the Axis2 functionality.  I've been told that for EJB environments that threading should not be  used, leaving it to the container environment to manage.
> ----
> Had confirmation from Martin Gainty and request to open this JIRA case:
> "
> yep the statics of EJBUtil will not work in a multi-threaded environment as seen here
>  
> public class EJBUtil {
>     public static final java.lang.String EJB_JNDI_NAME = "beanJndiName";
> "

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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] Commented: (AXIS2-4753) Make EJBUtil multi-thread aware

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882829#action_12882829 ] 

Andreas Veithen commented on AXIS2-4753:
----------------------------------------

Indeed, by executing the lookup code in a different thread, the security context is lost. Probably this is desired in some use cases, but unfortunately there is no documentation that explains exactly why this has been coded like that (the code seems to have been ported from Axis1).

> Make EJBUtil multi-thread aware
> -------------------------------
>
>                 Key: AXIS2-4753
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4753
>             Project: Axis2
>          Issue Type: Improvement
>          Components: databinding
>    Affects Versions: 1.5.1
>         Environment: WebLogic
>            Reporter: William Walsh
>
> We found that we had problems integrating Axis2 with WebLogic in that we couldn't re-use any of the EJB receiver code apparently because the security established at InitialContext creation (org.apache.axis2.rpc.receivers.ejb.EJBUtil) was then lost when org.apache.axis2.rpc.receivers.ejb.EJBUtil.EJBClientWorker invoked its run method in a separate thread for the EJB service, causing a WebLogic security error invoking the service.  We checked with Oracle and they feel it's most likely that the separate threads are the cause as WLS doesn't pass/propagate subjects across threads.  Thus the second thread that does the actual invocation of the service doesn't have the authentication done in the first thread when the InitialContext is created, which is successfully validated by our login module.
> We coded our own receiver to avoid this additional threading—essentially duplicating the Axis2 functionality.  I've been told that for EJB environments that threading should not be  used, leaving it to the container environment to manage.
> ----
> Had confirmation from Martin Gainty and request to open this JIRA case:
> "
> yep the statics of EJBUtil will not work in a multi-threaded environment as seen here
>  
> public class EJBUtil {
>     public static final java.lang.String EJB_JNDI_NAME = "beanJndiName";
> "

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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] Commented: (AXIS2-4753) Make EJBUtil multi-thread aware

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882829#action_12882829 ] 

Andreas Veithen commented on AXIS2-4753:
----------------------------------------

Indeed, by executing the lookup code in a different thread, the security context is lost. Probably this is desired in some use cases, but unfortunately there is no documentation that explains exactly why this has been coded like that (the code seems to have been ported from Axis1).

> Make EJBUtil multi-thread aware
> -------------------------------
>
>                 Key: AXIS2-4753
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4753
>             Project: Axis2
>          Issue Type: Improvement
>          Components: databinding
>    Affects Versions: 1.5.1
>         Environment: WebLogic
>            Reporter: William Walsh
>
> We found that we had problems integrating Axis2 with WebLogic in that we couldn't re-use any of the EJB receiver code apparently because the security established at InitialContext creation (org.apache.axis2.rpc.receivers.ejb.EJBUtil) was then lost when org.apache.axis2.rpc.receivers.ejb.EJBUtil.EJBClientWorker invoked its run method in a separate thread for the EJB service, causing a WebLogic security error invoking the service.  We checked with Oracle and they feel it's most likely that the separate threads are the cause as WLS doesn't pass/propagate subjects across threads.  Thus the second thread that does the actual invocation of the service doesn't have the authentication done in the first thread when the InitialContext is created, which is successfully validated by our login module.
> We coded our own receiver to avoid this additional threading—essentially duplicating the Axis2 functionality.  I've been told that for EJB environments that threading should not be  used, leaving it to the container environment to manage.
> ----
> Had confirmation from Martin Gainty and request to open this JIRA case:
> "
> yep the statics of EJBUtil will not work in a multi-threaded environment as seen here
>  
> public class EJBUtil {
>     public static final java.lang.String EJB_JNDI_NAME = "beanJndiName";
> "

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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org