|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.shiro.web.util.WebUtils
public class WebUtils
Simple utility class for operations used across multiple class hierarchies in the web framework code.
Some methods in this class were copied from the Spring Framework so we didn't have to re-invent the wheel, and in these cases, we have retained all license, copyright and author information.
| Field Summary | |
|---|---|
static String |
DEFAULT_CHARACTER_ENCODING
Default character encoding to use when request.getCharacterEncoding
returns null, according to the Servlet spec. |
static String |
FORWARD_CONTEXT_PATH_ATTRIBUTE
|
static String |
FORWARD_PATH_INFO_ATTRIBUTE
|
static String |
FORWARD_QUERY_STRING_ATTRIBUTE
|
static String |
FORWARD_REQUEST_URI_ATTRIBUTE
Standard Servlet 2.4+ spec request attributes for forward URI and paths. |
static String |
FORWARD_SERVLET_PATH_ATTRIBUTE
|
static String |
INCLUDE_CONTEXT_PATH_ATTRIBUTE
|
static String |
INCLUDE_PATH_INFO_ATTRIBUTE
|
static String |
INCLUDE_QUERY_STRING_ATTRIBUTE
|
static String |
INCLUDE_REQUEST_URI_ATTRIBUTE
Standard Servlet 2.3+ spec request attributes for include URI and paths. |
static String |
INCLUDE_SERVLET_PATH_ATTRIBUTE
|
static String |
SAVED_REQUEST_KEY
Session key used to save a request and later restore it, for example when redirecting to a
requested page after login, equal to shiroSavedRequest. |
static String |
SERVLET_REQUEST_KEY
|
static String |
SERVLET_RESPONSE_KEY
|
| Constructor Summary | |
|---|---|
WebUtils()
|
|
| Method Summary | |
|---|---|
static String |
decodeRequestString(HttpServletRequest request,
String source)
Decode the given source string with a URLDecoder. |
protected static String |
determineEncoding(HttpServletRequest request)
Determine the encoding for the given request. |
static SavedRequest |
getAndClearSavedRequest(ServletRequest request)
|
static String |
getCleanParam(ServletRequest request,
String paramName)
Convenience method that returns a request parameter value, first running it through StringUtils.clean(String). |
static String |
getContextPath(HttpServletRequest request)
Return the context path for the given request, detecting an include request URL if called within a RequestDispatcher include. |
static HttpServletRequest |
getHttpRequest(Object requestPairSource)
|
static HttpServletResponse |
getHttpResponse(Object requestPairSource)
|
static String |
getPathWithinApplication(HttpServletRequest request)
Return the path within the web application for the given request. |
static ServletRequest |
getRequest(Object requestPairSource)
|
static String |
getRequestUri(HttpServletRequest request)
Return the request URI for the given request, detecting an include request URL if called within a RequestDispatcher include. |
static ServletResponse |
getResponse(Object requestPairSource)
|
static SavedRequest |
getSavedRequest(ServletRequest request)
|
static boolean |
isHttp(Object requestPairSource)
|
static void |
issueRedirect(ServletRequest request,
ServletResponse response,
String url)
Redirects the current request to a new URL based on the given parameters and default values for unspecified parameters. |
static void |
issueRedirect(ServletRequest request,
ServletResponse response,
String url,
Map queryParams)
Redirects the current request to a new URL based on the given parameters and default values for unspecified parameters. |
static void |
issueRedirect(ServletRequest request,
ServletResponse response,
String url,
Map queryParams,
boolean contextRelative)
Redirects the current request to a new URL based on the given parameters and default values for unspecified parameters. |
static void |
issueRedirect(ServletRequest request,
ServletResponse response,
String url,
Map queryParams,
boolean contextRelative,
boolean http10Compatible)
Redirects the current request to a new URL based on the given parameters. |
static boolean |
isTrue(ServletRequest request,
String paramName)
Checks to see if a request param is considered true using a loose matching strategy for general values that indicate that something is true or enabled, etc. |
static boolean |
isWeb(Object requestPairSource)
|
static void |
redirectToSavedRequest(ServletRequest request,
ServletResponse response,
String fallbackUrl)
Redirects the to the request url from a previously saved request, or if there is no saved request, redirects the
end user to the specified fallbackUrl. |
static void |
saveRequest(ServletRequest request)
|
static HttpServletRequest |
toHttp(ServletRequest request)
A convenience method that merely casts the incoming ServletRequest to an
HttpServletRequest:
return (HttpServletRequest)request;
Logic could be changed in the future for logging or throwing an meaningful exception in
non HTTP request environments (e.g. |
static HttpServletResponse |
toHttp(ServletResponse response)
A convenience method that merely casts the incoming ServletResponse to an
HttpServletResponse:
return (HttpServletResponse)response;
Logic could be changed in the future for logging or throwing an meaningful exception in
non HTTP request environments (e.g. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String SERVLET_REQUEST_KEY
public static final String SERVLET_RESPONSE_KEY
public static final String SAVED_REQUEST_KEY
Session key used to save a request and later restore it, for example when redirecting to a
requested page after login, equal to shiroSavedRequest.
public static final String INCLUDE_REQUEST_URI_ATTRIBUTE
If included via a RequestDispatcher, the current resource will see the originating request. Its own URI and paths are exposed as request attributes.
public static final String INCLUDE_CONTEXT_PATH_ATTRIBUTE
public static final String INCLUDE_SERVLET_PATH_ATTRIBUTE
public static final String INCLUDE_PATH_INFO_ATTRIBUTE
public static final String INCLUDE_QUERY_STRING_ATTRIBUTE
public static final String FORWARD_REQUEST_URI_ATTRIBUTE
If forwarded to via a RequestDispatcher, the current resource will see its own URI and paths. The originating URI and paths are exposed as request attributes.
public static final String FORWARD_CONTEXT_PATH_ATTRIBUTE
public static final String FORWARD_SERVLET_PATH_ATTRIBUTE
public static final String FORWARD_PATH_INFO_ATTRIBUTE
public static final String FORWARD_QUERY_STRING_ATTRIBUTE
public static final String DEFAULT_CHARACTER_ENCODING
request.getCharacterEncoding
returns null, according to the Servlet spec.
ServletRequest.getCharacterEncoding(),
Constant Field Values| Constructor Detail |
|---|
public WebUtils()
| Method Detail |
|---|
public static String getPathWithinApplication(HttpServletRequest request)
Detects include request URL if called within a RequestDispatcher include.
For example, for a request to URLhttp://www.somehost.com/myapp/my/url.jsp,
for an application deployed to /mayapp (the application's context path), this method would return
/my/url.jsp.
request - current HTTP request
public static String getRequestUri(HttpServletRequest request)
As the value returned by request.getRequestURI() is not
decoded by the servlet container, this method will decode it.
The URI that the web container resolves should be correct, but some containers like JBoss/Jetty incorrectly include ";" strings like ";jsessionid" in the URI. This method cuts off such incorrect appendices.
request - current HTTP request
public static String getContextPath(HttpServletRequest request)
As the value returned by request.getContextPath() is not
decoded by the servlet container, this method will decode it.
request - current HTTP request
public static String decodeRequestString(HttpServletRequest request,
String source)
The default implementation uses URLDecoder.decode(input, enc).
request - current HTTP requestsource - the String to decode
DEFAULT_CHARACTER_ENCODING,
ServletRequest.getCharacterEncoding(),
URLDecoder.decode(String, String),
URLDecoder.decode(String)protected static String determineEncoding(HttpServletRequest request)
The default implementation checks the request's
character encoding, and if that
null, falls back to the DEFAULT_CHARACTER_ENCODING.
request - current HTTP request
null)ServletRequest.getCharacterEncoding()public static boolean isWeb(Object requestPairSource)
public static boolean isHttp(Object requestPairSource)
public static ServletRequest getRequest(Object requestPairSource)
public static ServletResponse getResponse(Object requestPairSource)
public static HttpServletRequest getHttpRequest(Object requestPairSource)
public static HttpServletResponse getHttpResponse(Object requestPairSource)
public static HttpServletRequest toHttp(ServletRequest request)
ServletRequest to an
HttpServletRequest:
return (HttpServletRequest)request;
Logic could be changed in the future for logging or throwing an meaningful exception in
non HTTP request environments (e.g. Portlet API).
request - the incoming ServletRequest
request argument casted to an HttpServletRequest.public static HttpServletResponse toHttp(ServletResponse response)
ServletResponse to an
HttpServletResponse:
return (HttpServletResponse)response;
Logic could be changed in the future for logging or throwing an meaningful exception in
non HTTP request environments (e.g. Portlet API).
response - the outgoing ServletResponse
response argument casted to an HttpServletResponse.
public static void issueRedirect(ServletRequest request,
ServletResponse response,
String url,
Map queryParams,
boolean contextRelative,
boolean http10Compatible)
throws IOException
request - the servlet request.response - the servlet response.url - the URL to redirect the user to.queryParams - a map of parameters that should be set as request parameters for the new request.contextRelative - true if the URL is relative to the servlet context path, or false if the URL is absolute.http10Compatible - whether to stay compatible with HTTP 1.0 clients.
IOException - if thrown by response methods.
public static void issueRedirect(ServletRequest request,
ServletResponse response,
String url)
throws IOException
request - the servlet request.response - the servlet response.url - the URL to redirect the user to.
IOException - if thrown by response methods.
public static void issueRedirect(ServletRequest request,
ServletResponse response,
String url,
Map queryParams)
throws IOException
request - the servlet request.response - the servlet response.url - the URL to redirect the user to.queryParams - a map of parameters that should be set as request parameters for the new request.
IOException - if thrown by response methods.
public static void issueRedirect(ServletRequest request,
ServletResponse response,
String url,
Map queryParams,
boolean contextRelative)
throws IOException
request - the servlet request.response - the servlet response.url - the URL to redirect the user to.queryParams - a map of parameters that should be set as request parameters for the new request.contextRelative - true if the URL is relative to the servlet context path, or false if the URL is absolute.
IOException - if thrown by response methods.
public static boolean isTrue(ServletRequest request,
String paramName)
Checks to see if a request param is considered true using a loose matching strategy for general values that indicate that something is true or enabled, etc.
Values that are considered "true" include (case-insensitive): true, t, 1, enabled, y, yes, on.
request - the servlet requestparamName - @return true if the param value is considered true or false if it isn't.
public static String getCleanParam(ServletRequest request,
String paramName)
StringUtils.clean(String).
request - the servlet request.paramName - the parameter name.
public static void saveRequest(ServletRequest request)
public static SavedRequest getAndClearSavedRequest(ServletRequest request)
public static SavedRequest getSavedRequest(ServletRequest request)
public static void redirectToSavedRequest(ServletRequest request,
ServletResponse response,
String fallbackUrl)
throws IOException
saved request, or if there is no saved request, redirects the
end user to the specified fallbackUrl. If there is no saved request or fallback url, this method
throws an IllegalStateException.
This method is primarily used to support a common login scenario - if an unauthenticated user accesses a
page that requires authentication, it is expected that request is
saved first and then redirected to the login page. Then,
after a successful login, this method can be called to redirect them back to their originally requested URL, a
nice usability feature.
request - the incoming requestresponse - the outgoing responsefallbackUrl - the fallback url to redirect to if there is no saved request available.
IllegalStateException - if there is no saved request and the fallbackUrl is null.
IOException - if there is an error redirecting
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||