Writing to a mailing list is always therapeutic, even before anyone
has a chance to respond.

At present, I'm performing just-in-time login and looking at
context().request().uri().  (ie
setDestinationUrl(context().request().uri());

I'm storing that URI and then redirecting after successful login. I
think that's the problem.

Instead, I'm going to try this (as yet untested in deployment):

        public void setDestinationFromRequest(WORequest request) {
                StringBuilder sb = new StringBuilder();
                sb.append(request.adaptorPrefix());
                sb.append('/');
                sb.append(request.applicationName());
                sb.append(".woa/");
                if (request.applicationNumber() < 0) {
                        sb.append(request.applicationNumber());
                        sb.append('/');
                }
                if 
(ERXStringUtilities.stringIsNullOrEmpty(request.requestHandlerKey())
== false) {
                        sb.append(request.requestHandlerKey());
                        sb.append('/');
                }
                if 
(ERXStringUtilities.stringIsNullOrEmpty(request.requestHandlerPath())
== false) {
                        sb.append(request.requestHandlerPath());
                }
                if 
(ERXStringUtilities.stringIsNullOrEmpty(request.queryString()) == false) {
                        sb.append('?');
                        sb.append(request.queryString());
                }
                log.debug("URI: " + request.uri());
                log.debug("prefix: " + request.adaptorPrefix());
                log.debug("appname: " + request.applicationName());
                log.debug("appnumber: " + request.applicationNumber()); // will 
be
-1 if can be handled by any
                log.debug("request handler key: " + 
request.requestHandlerKey());
                log.debug("request handler path: " + 
request.requestHandlerPath());
                log.debug("qs: " + request.queryString());
                log.debug("safely parsed destination URL: " + sb.toString());
                setDestinationUrl(sb.toString());
        }

Now whenever I start hacking URLs like this in WebObjects, I think I'm
clearly going about something the wrong way. Doesn't anyone else
perform DA and component JIT by redirecting to a login page and then
redirecting back to the original URL? With the above code, I'm hoping
to remove all record of the application instance (unless its a minus
one in which case one needs in when in direct connect/development).

Is this the solution?

Mark
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to