Package io.netty.handler.ipfilter
Class RuleBasedIpFilter
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.ipfilter.AbstractRemoteAddressFilter<java.net.InetSocketAddress>
-
- io.netty.handler.ipfilter.RuleBasedIpFilter
-
- All Implemented Interfaces:
ChannelHandler
,ChannelInboundHandler
@Sharable public class RuleBasedIpFilter extends AbstractRemoteAddressFilter<java.net.InetSocketAddress>
This class allows one to filter new
Channel
s based on theIpFilterRule
s passed to its constructor. If no rules are provided, all connections will be accepted.If you would like to explicitly take action on rejected
Channel
s, you should overrideAbstractRemoteAddressFilter.channelRejected(ChannelHandlerContext, SocketAddress)
.Consider using
IpSubnetFilter
for better performance while not as general purpose as this filter.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Constructor Summary
Constructors Constructor Description RuleBasedIpFilter(boolean acceptIfNotFound, IpFilterRule... rules)
Create new Instance ofRuleBasedIpFilter
and filter incoming connections based on their IP address andrules
applied.RuleBasedIpFilter(IpFilterRule... rules)
Create new Instance ofRuleBasedIpFilter
and filter incoming connections based on their IP address andrules
applied.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
accept(ChannelHandlerContext ctx, java.net.InetSocketAddress remoteAddress)
This method is called immediately after aChannel
gets registered.-
Methods inherited from class io.netty.handler.ipfilter.AbstractRemoteAddressFilter
channelAccepted, channelActive, channelRegistered, channelRejected
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelInactive, channelRead, channelReadComplete, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty.channel.ChannelHandler
handlerAdded, handlerRemoved
-
-
-
-
Constructor Detail
-
RuleBasedIpFilter
public RuleBasedIpFilter(IpFilterRule... rules)
Create new Instance of
RuleBasedIpFilter
and filter incoming connections based on their IP address andrules
applied.acceptIfNotFound
is set totrue
.- Parameters:
rules
- An array ofIpFilterRule
containing all rules.
-
RuleBasedIpFilter
public RuleBasedIpFilter(boolean acceptIfNotFound, IpFilterRule... rules)
Create new Instance ofRuleBasedIpFilter
and filter incoming connections based on their IP address andrules
applied.- Parameters:
acceptIfNotFound
- Iftrue
then accept connection from IP Address if it doesn't match any rule.rules
- An array ofIpFilterRule
containing all rules.
-
-
Method Detail
-
accept
protected boolean accept(ChannelHandlerContext ctx, java.net.InetSocketAddress remoteAddress) throws java.lang.Exception
Description copied from class:AbstractRemoteAddressFilter
This method is called immediately after aChannel
gets registered.- Specified by:
accept
in classAbstractRemoteAddressFilter<java.net.InetSocketAddress>
- Returns:
- Return true if connections from this IP address and port should be accepted. False otherwise.
- Throws:
java.lang.Exception
-
-