Class IpFilter
java.lang.Object
- All Implemented Interfaces:
javax.servlet.Filter,org.apache.shiro.lang.util.Nameable,PathConfigProcessor
A Filter that requires the request to be from within a specific set of IP
address ranges and / or not from with a specific (denied) set.
Example config:
[main] localLan = org.apache.shiro.web.filter.authz.IpFilter localLan.authorizedIps = 192.168.10.0/24 localLan.deniedIps = 192.168.10.10/32 [urls] /some/path/** = localLan # override for just this path: /another/path/** = localLan
- Since:
- 2.0
-
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 TypeMethodDescriptiongetHostFromRequest(javax.servlet.ServletRequest request) Returns the remote host for a given HTTP request.protected booleanisAccessAllowed(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, Object mappedValue) Returnstrueif the request is allowed to proceed through the filter normally, orfalseif the request should be handled by theonAccessDenied(request,response,mappedValue)method instead.voidsetAuthorizedIps(String authorizedIps) Specifies a set of (comma, tab or space-separated) strings representing IP address representing IPv4 or IPv6 ranges / CIDRs from which access should be allowed (if the IP is not included in either the list of statically defined denied IPs or the dynamic list of IPs obtained from the IP source.voidsetDeniedIps(String deniedIps) Specified a set of (comma, tab or space-separated) strings representing IP address representing IPv4 or IPv6 ranges / CIDRs from which access should be blocked.voidsetIpSource(IpSource source) Methods inherited from class org.apache.shiro.web.filter.authz.AuthorizationFilter
getUnauthorizedUrl, onAccessDenied, setUnauthorizedUrlMethods inherited from class org.apache.shiro.web.filter.AccessControlFilter
getLoginUrl, getSubject, 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
-
IpFilter
public IpFilter()
-
-
Method Details
-
setAuthorizedIps
Specifies a set of (comma, tab or space-separated) strings representing IP address representing IPv4 or IPv6 ranges / CIDRs from which access should be allowed (if the IP is not included in either the list of statically defined denied IPs or the dynamic list of IPs obtained from the IP source. -
setDeniedIps
Specified a set of (comma, tab or space-separated) strings representing IP address representing IPv4 or IPv6 ranges / CIDRs from which access should be blocked. -
setIpSource
-
getHostFromRequest
Returns the remote host for a given HTTP request. By default uses the remote method ServletRequest.getRemoteAddr(). May be overridden by subclasses to obtain address information from specific headers (e.g. XFF or Forwarded) in situations with reverse proxies. -
isAccessAllowed
protected boolean isAccessAllowed(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, Object mappedValue) throws Exception Description copied from class:AccessControlFilterReturnstrueif the request is allowed to proceed through the filter normally, orfalseif the request should be handled by theonAccessDenied(request,response,mappedValue)method instead.- Specified by:
isAccessAllowedin classAccessControlFilter- Parameters:
request- the incomingServletRequestresponse- the outgoingServletResponsemappedValue- the filter-specific config value mapped to this filter in the URL rules mappings.- Returns:
trueif the request should proceed through the filter normally,falseif the request should be processed by this filter'sAccessControlFilter.onAccessDenied(ServletRequest, ServletResponse, Object)method instead.- Throws:
Exception- if an error occurs during processing.
-