Package io.netty.handler.ipfilter
Class RuleBasedIpFilter
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.handler.ipfilter.AbstractRemoteAddressFilter<InetSocketAddress>
io.netty.handler.ipfilter.RuleBasedIpFilter
- All Implemented Interfaces:
ChannelHandler
,ChannelInboundHandler
This class allows one to filter new Channel
s based on the
IpFilterRule
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 override
AbstractRemoteAddressFilter.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
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionRuleBasedIpFilter
(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
Modifier and TypeMethodDescriptionprotected boolean
accept
(ChannelHandlerContext ctx, 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
-
Field Details
-
acceptIfNotFound
private final boolean acceptIfNotFound -
rules
-
-
Constructor Details
-
RuleBasedIpFilter
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
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 Details
-
accept
protected boolean accept(ChannelHandlerContext ctx, InetSocketAddress remoteAddress) throws Exception Description copied from class:AbstractRemoteAddressFilter
This method is called immediately after aChannel
gets registered.- Specified by:
accept
in classAbstractRemoteAddressFilter<InetSocketAddress>
- Returns:
- Return true if connections from this IP address and port should be accepted. False otherwise.
- Throws:
Exception
-