Class AuthorizationFilter
java.lang.Object
org.apache.shiro.web.servlet.ServletContextSupport
org.apache.shiro.web.servlet.AbstractFilter
org.apache.shiro.web.servlet.NameableFilter
org.apache.shiro.web.servlet.OncePerRequestFilter
org.apache.shiro.web.servlet.AdviceFilter
org.apache.shiro.web.filter.PathMatchingFilter
org.apache.shiro.web.filter.AccessControlFilter
org.apache.shiro.web.filter.authz.AuthorizationFilter
- All Implemented Interfaces:
javax.servlet.Filter,org.apache.shiro.lang.util.Nameable,PathConfigProcessor
- Direct Known Subclasses:
HostFilter,IpFilter,PermissionsAuthorizationFilter,PortFilter,RolesAuthorizationFilter
Superclass for authorization-related filters. If an request is unauthorized, response handling is delegated to the
onAccessDenied method, which
provides reasonable handling for most applications.- Since:
- 0.9
- See Also:
-
Field Summary
Fields inherited from class org.apache.shiro.web.filter.AccessControlFilter
DEFAULT_LOGIN_URL, GET_METHOD, POST_METHODFields inherited from class org.apache.shiro.web.filter.PathMatchingFilter
appliedPaths, pathMatcherFields inherited from class org.apache.shiro.web.servlet.OncePerRequestFilter
ALREADY_FILTERED_SUFFIXFields inherited from class org.apache.shiro.web.servlet.AbstractFilter
filterConfig -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns the URL to which users should be redirected if they are denied access to an underlying path or resource, ornullif a rawHttpServletResponse.SC_FORBIDDENresponse should be issued (403 Forbidden).protected booleanonAccessDenied(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) Handles the response when access has been denied.voidsetUnauthorizedUrl(String unauthorizedUrl) Sets the URL to which users should be redirected if they are denied access to an underlying path or resource.Methods inherited from class org.apache.shiro.web.filter.AccessControlFilter
getLoginUrl, getSubject, isAccessAllowed, isLoginRequest, onAccessDenied, onPreHandle, redirectToLogin, saveRequest, saveRequestAndRedirectToLogin, setLoginUrlMethods inherited from class org.apache.shiro.web.filter.PathMatchingFilter
getPathWithinApplication, isEnabled, pathsMatch, pathsMatch, preHandle, processPathConfigMethods inherited from class org.apache.shiro.web.servlet.AdviceFilter
afterCompletion, cleanup, doFilterInternal, executeChain, postHandleMethods inherited from class org.apache.shiro.web.servlet.OncePerRequestFilter
doFilter, getAlreadyFilteredAttributeName, isEnabled, isEnabled, isFilterOncePerRequest, setEnabled, setFilterOncePerRequest, shouldNotFilterMethods inherited from class org.apache.shiro.web.servlet.NameableFilter
getName, setName, toStringBuilderMethods inherited from class org.apache.shiro.web.servlet.AbstractFilter
destroy, getFilterConfig, getInitParam, init, onFilterConfigSet, setFilterConfigMethods inherited from class org.apache.shiro.web.servlet.ServletContextSupport
getContextAttribute, getContextInitParam, getServletContext, removeContextAttribute, setContextAttribute, setServletContext, toString
-
Constructor Details
-
AuthorizationFilter
public AuthorizationFilter()
-
-
Method Details
-
getUnauthorizedUrl
Returns the URL to which users should be redirected if they are denied access to an underlying path or resource, ornullif a rawHttpServletResponse.SC_FORBIDDENresponse should be issued (403 Forbidden). The default isnull, ensuring default web server behavior. Override this default by calling thesetUnauthorizedUrlmethod with a meaningful path within your application if you would like to show the user a 'nice' page in the event of unauthorized access.- Returns:
- the URL to which users should be redirected if they are denied access to an underlying path or resource,
or
nullif a rawHttpServletResponse.SC_FORBIDDENresponse should be issued (403 Forbidden).
-
setUnauthorizedUrl
Sets the URL to which users should be redirected if they are denied access to an underlying path or resource. If the value isnulla rawHttpServletResponse.SC_FORBIDDENresponse will be issued (403 Forbidden), retaining default web server behavior. Unless overridden by calling this method, the default value isnull. If desired, you can specify a meaningful path within your application if you would like to show the user a 'nice' page in the event of unauthorized access.- Parameters:
unauthorizedUrl- the URL to which users should be redirected if they are denied access to an underlying path or resource, ornullto an ensure rawHttpServletResponse.SC_FORBIDDENresponse is issued (403 Forbidden).
-
onAccessDenied
protected boolean onAccessDenied(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) throws IOException Handles the response when access has been denied. It behaves as follows:- If the
Subjectis unknown[1]:- The incoming request will be saved and they will be redirected to the login page for authentication
(via the
AccessControlFilter.saveRequestAndRedirectToLogin(javax.servlet.ServletRequest, javax.servlet.ServletResponse)method). - Once successfully authenticated, they will be redirected back to the originally attempted page.
- The incoming request will be saved and they will be redirected to the login page for authentication
(via the
- If the Subject is known:
- The HTTP
HttpServletResponse.SC_FORBIDDENheader will be set (403 Forbidden) - If the
unauthorizedUrlhas been configured, a redirect will be issued to that URL. Otherwise the 403 response is rendered normally
[1]: ASubjectis 'known' whensubject.is notgetPrincipal()null, which implicitly means that the subject is either currently authenticated or they have been remembered via 'remember me' services.- Specified by:
onAccessDeniedin classAccessControlFilter- Parameters:
request- the incomingServletRequestresponse- the outgoingServletResponse- Returns:
falsealways for this implementation.- Throws:
IOException- if there is any servlet error.
- If the
-