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 "Bernhard Roider (JIRA)" <ji...@apache.org> on 2007/08/09 09:35:43 UTC

[jira] Created: (RAMPART-69) RampartReceiver should store current MessageContext to simplify access MessageContext from CallbackHandler

RampartReceiver should store current MessageContext to simplify access MessageContext from CallbackHandler
----------------------------------------------------------------------------------------------------------

                 Key: RAMPART-69
                 URL: https://issues.apache.org/jira/browse/RAMPART-69
             Project: Rampart
          Issue Type: Improvement
          Components: rampart-core
    Affects Versions: 1.3
         Environment: all
            Reporter: Bernhard Roider


RampartReceiver should store current MessageContext to simplify access MessageContext from CallbackHandler.

This Feature is simple to implement and opens many ways to customise CallbackHandler and TokenIssuer.

Possible solution;

public class RampartReceiver(..) {
...
   RampartEngine engine = new RampartEngine();
   Vector wsResult;
   MessageContext oldCtx = MessageContext.getCurrentMessageContext();
   try {
            // save current MessageContext
            MessageContext.setCurrentMessageContext(msgContext);

            wsResult = engine.process(msgContext);
            
        } catch (WSSecurityException e) {
            e.printStackTrace();
            throw new AxisFault(e.getMessage(), e);
        } catch (WSSPolicyException e) {
            e.printStackTrace();
            throw new AxisFault(e.getMessage(), e);
        } catch (RampartException e) {
            e.printStackTrace();
            throw new AxisFault(e.getMessage(), e);
        } finally {
           // restore old MessageContext
           MessageContext.setCurrentMessageContext(oldContext);

        }


P.S.: it would be better (for future Axis2 Version compatibility) if the RampartReceiver extends AbstractHandler

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


[jira] Commented: (RAMPART-69) RampartReceiver should store current MessageContext to simplify access MessageContext from CallbackHandler

Posted by "Aaron Evans (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/RAMPART-69?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12643324#action_12643324 ] 

Aaron Evans commented on RAMPART-69:
------------------------------------

I agree.  The fact that I have to use some kind of static singleton mechanism to get at my authentication service from within my password callback handler is pretty lame.

If I had access to the MesssageContext (and therefore the servlet context) from within my password callback handler, I'd be much happier...

> RampartReceiver should store current MessageContext to simplify access MessageContext from CallbackHandler
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: RAMPART-69
>                 URL: https://issues.apache.org/jira/browse/RAMPART-69
>             Project: Rampart
>          Issue Type: Improvement
>          Components: rampart-core
>    Affects Versions: 1.3
>         Environment: all
>            Reporter: Bernhard Roider
>
> RampartReceiver should store current MessageContext to simplify access MessageContext from CallbackHandler.
> This Feature is simple to implement and opens many ways to customise CallbackHandler and TokenIssuer.
> Possible solution;
> public class RampartReceiver(..) {
> ...
>    RampartEngine engine = new RampartEngine();
>    Vector wsResult;
>    MessageContext oldCtx = MessageContext.getCurrentMessageContext();
>    try {
>             // save current MessageContext
>             MessageContext.setCurrentMessageContext(msgContext);
>             wsResult = engine.process(msgContext);
>             
>         } catch (WSSecurityException e) {
>             e.printStackTrace();
>             throw new AxisFault(e.getMessage(), e);
>         } catch (WSSPolicyException e) {
>             e.printStackTrace();
>             throw new AxisFault(e.getMessage(), e);
>         } catch (RampartException e) {
>             e.printStackTrace();
>             throw new AxisFault(e.getMessage(), e);
>         } finally {
>            // restore old MessageContext
>            MessageContext.setCurrentMessageContext(oldContext);
>         }
> P.S.: it would be better (for future Axis2 Version compatibility) if the RampartReceiver extends AbstractHandler

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