diff --git a/projects/samskivert/src/java/com/samskivert/servlet/user/UserManager.java b/projects/samskivert/src/java/com/samskivert/servlet/user/UserManager.java index bb533a0e..4c91a6ba 100644 --- a/projects/samskivert/src/java/com/samskivert/servlet/user/UserManager.java +++ b/projects/samskivert/src/java/com/samskivert/servlet/user/UserManager.java @@ -1,5 +1,5 @@ // -// $Id: UserManager.java,v 1.5 2001/05/26 04:37:35 mdb Exp $ +// $Id: UserManager.java,v 1.6 2001/05/26 23:18:11 mdb Exp $ package com.samskivert.servlet.user; @@ -10,6 +10,7 @@ import javax.servlet.http.*; import com.samskivert.Log; import com.samskivert.servlet.RedirectException; +import com.samskivert.servlet.util.RequestUtils; import com.samskivert.util.*; /** @@ -128,12 +129,7 @@ public class UserManager // the login page if (user == null) { // first construct the redirect URL - StringBuffer rurl = HttpUtils.getRequestURL(req); - String qs = req.getQueryString(); - if (qs != null) { - rurl.append("?").append(qs); - } - String eurl = URLEncoder.encode(rurl.toString()); + String eurl = RequestUtils.getEncodedLocation(req); String target = StringUtil.replace(_loginURL, "%R", eurl); throw new RedirectException(target); } diff --git a/projects/samskivert/src/java/com/samskivert/servlet/util/RequestUtils.java b/projects/samskivert/src/java/com/samskivert/servlet/util/RequestUtils.java new file mode 100644 index 00000000..bf27dff7 --- /dev/null +++ b/projects/samskivert/src/java/com/samskivert/servlet/util/RequestUtils.java @@ -0,0 +1,45 @@ +// +// $Id: RequestUtils.java,v 1.1 2001/05/26 23:18:11 mdb Exp $ + +package com.samskivert.servlet.util; + +import java.net.URLEncoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpUtils; + +/** + * A repository of utility functions related to HTTP servlet stuff. + */ +public class RequestUtils +{ + /** + * Reconstructs the current location (URL) from the request and + * servlet configuration (which is the only way to know which server + * we're on because that's not provided in the request) and returns it + * URL encoded so that it can be substituted into another URL. + * + * @return The URL encoded URL that represents our current location. + */ + public static String getEncodedLocation (HttpServletRequest req) + { + return URLEncoder.encode(getLocation(req)); + } + + /** + * Reconstructs the current location (URL) from the request and + * servlet configuration (which is the only way to know which server + * we're on because that's not provided in the request) and returns + * it. + * + * @return The URL that represents our current location. + */ + public static String getLocation (HttpServletRequest req) + { + StringBuffer rurl = HttpUtils.getRequestURL(req); + String qs = req.getQueryString(); + if (qs != null) { + rurl.append("?").append(qs); + } + return rurl.toString(); + } +}