From c8ec99a93b19a14ac141e70ec8abffbb0485bf3a Mon Sep 17 00:00:00 2001 From: mdb Date: Sat, 26 May 2001 23:18:11 +0000 Subject: [PATCH] Created RequestUtils, a place for HTTP request related utility functions. Added getLocation() and getLocationEncoded() which reconstruct the URL used to make this request (complete with query parameters if there are any). Modified UserManager to use getLocationEncoded() rather than doing it itself. git-svn-id: https://samskivert.googlecode.com/svn/trunk@127 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- .../samskivert/servlet/user/UserManager.java | 10 ++--- .../samskivert/servlet/util/RequestUtils.java | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 projects/samskivert/src/java/com/samskivert/servlet/util/RequestUtils.java 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(); + } +}