Class PortFilter
- java.lang.Object
-
- All Implemented Interfaces:
Filter
,Nameable
,PathConfigProcessor
- Direct Known Subclasses:
SslFilter
public class PortFilter extends AuthorizationFilter
A Filter that requires the request to be on a specific port, and if not, redirects to the same URL on that port. Example config:[filters] port.port = 80 [urls] /some/path/** = port # override for just this path: /another/path/** = port[8080]
- Since:
- 1.0
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_HTTP_PORT
static String
HTTP_SCHEME
-
Fields inherited from class org.apache.shiro.web.filter.AccessControlFilter
DEFAULT_LOGIN_URL, GET_METHOD, POST_METHOD
-
Fields inherited from class org.apache.shiro.web.filter.PathMatchingFilter
appliedPaths, pathMatcher
-
Fields inherited from class org.apache.shiro.web.servlet.OncePerRequestFilter
ALREADY_FILTERED_SUFFIX
-
Fields inherited from class org.apache.shiro.web.servlet.AbstractFilter
filterConfig
-
-
Constructor Summary
Constructors Constructor Description PortFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getPort()
protected String
getScheme(String requestScheme, int port)
protected boolean
isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue)
Returnstrue
if the request is allowed to proceed through the filter normally, orfalse
if the request should be handled by theonAccessDenied(request,response,mappedValue)
method instead.protected boolean
onAccessDenied(ServletRequest request, ServletResponse response, Object mappedValue)
Redirects the request to the same exact incoming URL, but with the port listed in the filter's configuration.void
setPort(int port)
protected int
toPort(Object mappedValue)
-
Methods inherited from class org.apache.shiro.web.filter.authz.AuthorizationFilter
getUnauthorizedUrl, onAccessDenied, setUnauthorizedUrl
-
Methods inherited from class org.apache.shiro.web.filter.AccessControlFilter
getLoginUrl, getSubject, isLoginRequest, onPreHandle, redirectToLogin, saveRequest, saveRequestAndRedirectToLogin, setLoginUrl
-
Methods inherited from class org.apache.shiro.web.filter.PathMatchingFilter
getPathWithinApplication, isEnabled, pathsMatch, pathsMatch, preHandle, processPathConfig
-
Methods inherited from class org.apache.shiro.web.servlet.AdviceFilter
afterCompletion, cleanup, doFilterInternal, executeChain, postHandle
-
Methods inherited from class org.apache.shiro.web.servlet.OncePerRequestFilter
doFilter, getAlreadyFilteredAttributeName, isEnabled, isEnabled, setEnabled, shouldNotFilter
-
Methods inherited from class org.apache.shiro.web.servlet.NameableFilter
getName, setName, toStringBuilder
-
Methods inherited from class org.apache.shiro.web.servlet.AbstractFilter
destroy, getFilterConfig, getInitParam, init, onFilterConfigSet, setFilterConfig
-
Methods inherited from class org.apache.shiro.web.servlet.ServletContextSupport
getContextAttribute, getContextInitParam, getServletContext, removeContextAttribute, setContextAttribute, setServletContext, toString
-
-
-
-
Field Detail
-
DEFAULT_HTTP_PORT
public static final int DEFAULT_HTTP_PORT
- See Also:
- Constant Field Values
-
HTTP_SCHEME
public static final String HTTP_SCHEME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PortFilter
public PortFilter()
-
-
Method Detail
-
getPort
public int getPort()
-
setPort
public void setPort(int port)
-
isAccessAllowed
protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception
Description copied from class:AccessControlFilter
Returnstrue
if the request is allowed to proceed through the filter normally, orfalse
if the request should be handled by theonAccessDenied(request,response,mappedValue)
method instead.- Specified by:
isAccessAllowed
in classAccessControlFilter
- Parameters:
request
- the incomingServletRequest
response
- the outgoingServletResponse
mappedValue
- the filter-specific config value mapped to this filter in the URL rules mappings.- Returns:
true
if the request should proceed through the filter normally,false
if the request should be processed by this filter'sAccessControlFilter.onAccessDenied(ServletRequest,ServletResponse,Object)
method instead.- Throws:
Exception
- if an error occurs during processing.
-
onAccessDenied
protected boolean onAccessDenied(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException
Redirects the request to the same exact incoming URL, but with the port listed in the filter's configuration.- Overrides:
onAccessDenied
in classAccessControlFilter
- Parameters:
request
- the incomingServletRequest
response
- the outgoingServletResponse
mappedValue
- the config specified for the filter in the matching request's filter chain.- Returns:
false
always to force a redirect.- Throws:
IOException
-
-