Randall, It should work the same way. I'm unsure why you are loosing  
the query detail from your return response.  I think that we should  
ask Scott Philips if he has any opinion on this subject.

Heres one possibility to explore:

The AuthenticationUtil.resumeRequest method may be returning an older  
original request for the authenticator because it is only checking  
the "path" and not the "query"of the URL.

I would pepper this method with some logging or trace it with a  
debugger and see if you are falling into it.

On the note of debugging it a lot easier to trace through the  
executing code using the Eclipse debugger attached to your tomcat  
instance, than it it to alter the code with debugging lines and  
recompiling, I would recommend utilizing that tool ti figure out  
where the failure is happening.

http://andrej.racchvs.com/archives/2003/10/23/using-eclipse-to-debug- 
your-tomcat-web-application/
http://www.eclipsezone.com/eclipse/forums/t53459.html


>     /**
>      * Check to see if this request should be resumed.
>      *
>      * @param realHttpRequest The current real request
>      * @return Either the current real request or a stored request  
> that was previously interrupted.
>      */
>     public static HttpServletRequest resumeRequest 
> (HttpServletRequest realHttpRequest)
>     {
>       // First check to see if there is a resumed request.
>       HttpSession session = realHttpRequest.getSession();
>       //session.setMaxInactiveInterval(60);
>         Object object = session.getAttribute(REQUEST_RESUME);
>       
>         // Next check to make sure it's the right type of object,
>         // there should be no condition where it is not - but always
>         // safe to check.
>         if (object instanceof RequestInfo)
>         {
>               RequestInfo interruptedRequest = (RequestInfo) object;
>
>               // Next, check to make sure this real request if for the  
> same url
>               // path, if so then resume the previous request.
>               String interruptedServletPath =  
> interruptedRequest.getServletPath();
>               String realServletPath = realHttpRequest.getServletPath();
>               
>               if (realServletPath != null &&
>                       realServletPath.equals(interruptedServletPath))
>               {
>                       // Clear the resumed request and send the request back 
> to  
> be resumed.
>                       session.setAttribute(REQUEST_INTERRUPTED, null);
>                       session.setAttribute(REQUEST_RESUME, null);
>
>                       return interruptedRequest.wrapRequest(realHttpRequest);
>               }
>         }
>       // Otherwise return the real request.
>       return realHttpRequest;
>     }

-Mark

On Sep 30, 2008, at 10:34 AM, Floyd, Randall Dean wrote:

> Let me try this again, but I'll back up and ask it in a much more
> general way.  Does the XMLUI use the stackable authentication  
> mechanism
> in the same way that the JSPUI does?  I'm going through the code  
> trying
> to follow the flow, and I'm starting to question whether the eperson
> aspect in Manakin is going to call the methods of my authentication
> class in the same way as the JSPUI.  And again, just to be clear, this
> an implicit CAS authentication method that works in my DSpace 1.5.1
> environment using the JSPUI.  It doesn't work in the XMLUI. Details  
> are
> in the original message, but it would really just be helpful if I knew
> whether or not this is going to work at all in the XMLUI, and if not,
> where I can go for clues on how to write a different method.
>
> Quoting "Floyd,  Randall Dean" <[EMAIL PROTECTED]>:
>
>> Hi all,
>>
>> I have a custom authentication method that works in DSpace 1.5.1
>> JSPUI but does not work in the XMLUI.  Essentially this is a custom
>> method that sends a user to a CAS login page and back for further
>> validation of the CAS ticket.  The root issue seems to be that I am
>> losing essential parameters in the HTTP request, and that is where my
>> casticket is supposed to be.  That is, at my institution, the CAS
>> server tags the CAS ticket string onto the end of the URL that CAS is
>> going to send the browser back to. So, when this works in JSPUI, I go
>> to the CAS login server, and when it comes back to DSpace, it will
>> always look something like:
>>
>> .../dspace/mydspace?casticket=ST-205536...(some long string)
>>
>> That 'casticket' parameter is essential for everything that happens
>> next in my method in the stack. Without it, I can't check to see
>> where I am in the process, and I don't have a ticket ID to validate
>> against the CAS server.
>>
>> In the XMLUI, I am losing that casticket parameter. The browser goes
>> off to the CAS login server, and then comes back to DSpace/XMLUI and
>> goes down through the stack methods again.  Problem is, on this
>> second time around, I don't have that casticket parameter in the URL,
>> even though the CAS server is sticking it onto the end of the return
>> URL. It seems as though something at a lower level is replacing the
>> URL or doing some redirect I can't see.
>>
>> I have stuck debug statements into my method, and a request for the
>> casticket parameter always comes up empty:
>>
>> final String casticket = request.getParameter("casticket");
>> log.info(LogManager.getHeader(context, "loginPageURL", "casticket is:
>> " + casticket));
>>
>>
>> (From the log file:)
>> ...loginPageURL:casticket is: null
>>
>> Any ideas as to why I lose that parameter in the request in the
>> XMLUI?  Again, this works in the JSPUI.
>>
>
>
>
>
> ---------------------------------------------------------------------- 
> ---
> This SF.Net email is sponsored by the Moblin Your Move Developer's  
> challenge
> Build the coolest Linux based applications with Moblin SDK & win  
> great prizes
> Grand prize is a trip for two to an Open Source event anywhere in  
> the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> DSpace-tech mailing list
> DSpace-tech@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dspace-tech

~~~~~~~~~~~~~
Mark R. Diggory
Home Page: http://purl.org/net/mdiggory/homepage
Blog: http://purl.org/net/mdiggory/blog






-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
DSpace-tech mailing list
DSpace-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to