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 Channels based on the
IpFilterRules passed to its constructor. If no rules are provided, all connections
will be accepted.
If you would like to explicitly take action on rejected Channels, 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 ChannelHandler
ChannelHandler.SharableModifier and TypeInterfaceDescriptionstatic @interfaceIndicates that the same instance of the annotatedChannelHandlercan be added to one or moreChannelPipelines multiple times without a race condition. -
Constructor Summary
ConstructorsConstructorDescriptionRuleBasedIpFilter(boolean acceptIfNotFound, IpFilterRule... rules) Create new Instance ofRuleBasedIpFilterand filter incoming connections based on their IP address andrulesapplied.RuleBasedIpFilter(IpFilterRule... rules) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanaccept(ChannelHandlerContext ctx, InetSocketAddress remoteAddress) This method is called immediately after aChannelgets registered.Methods inherited from class AbstractRemoteAddressFilter
channelAccepted, channelActive, channelRegistered, channelRejectedModifier and TypeMethodDescriptionprotected voidchannelAccepted(ChannelHandlerContext ctx, InetSocketAddress remoteAddress) This method is called ifremoteAddressgets accepted byAbstractRemoteAddressFilter.accept(ChannelHandlerContext, SocketAddress).voidCallsChannelHandlerContext.fireChannelActive()to forward to the nextChannelInboundHandlerin theChannelPipeline.voidCallsChannelHandlerContext.fireChannelRegistered()to forward to the nextChannelInboundHandlerin theChannelPipeline.protected ChannelFuturechannelRejected(ChannelHandlerContext ctx, InetSocketAddress remoteAddress) This method is called ifremoteAddressgets rejected byAbstractRemoteAddressFilter.accept(ChannelHandlerContext, SocketAddress).Methods inherited from class ChannelInboundHandlerAdapter
channelInactive, channelRead, channelReadComplete, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggeredModifier and TypeMethodDescriptionvoidCallsChannelHandlerContext.fireChannelInactive()to forward to the nextChannelInboundHandlerin theChannelPipeline.voidchannelRead(ChannelHandlerContext ctx, Object msg) CallsChannelHandlerContext.fireChannelRead(Object)to forward to the nextChannelInboundHandlerin theChannelPipeline.voidCallsChannelHandlerContext.fireChannelReadComplete()to forward to the nextChannelInboundHandlerin theChannelPipeline.voidCallsChannelHandlerContext.fireChannelUnregistered()to forward to the nextChannelInboundHandlerin theChannelPipeline.voidCallsChannelHandlerContext.fireChannelWritabilityChanged()to forward to the nextChannelInboundHandlerin theChannelPipeline.voidexceptionCaught(ChannelHandlerContext ctx, Throwable cause) CallsChannelHandlerContext.fireExceptionCaught(Throwable)to forward to the nextChannelHandlerin theChannelPipeline.voiduserEventTriggered(ChannelHandlerContext ctx, Object evt) CallsChannelHandlerContext.fireUserEventTriggered(Object)to forward to the nextChannelInboundHandlerin theChannelPipeline.Methods inherited from class ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharableModifier and TypeMethodDescriptionprotected voidvoidDo nothing by default, sub-classes may override this method.voidDo nothing by default, sub-classes may override this method.booleanReturntrueif the implementation isChannelHandler.Sharableand so can be added to differentChannelPipelines.
-
Constructor Details
-
RuleBasedIpFilter
Deprecated.Create new Instance of
RuleBasedIpFilterand filter incoming connections based on their IP address andrulesapplied.acceptIfNotFoundis set totrue.- Parameters:
rules- An array ofIpFilterRulecontaining all rules.
-
RuleBasedIpFilter
Create new Instance ofRuleBasedIpFilterand filter incoming connections based on their IP address andrulesapplied.- Parameters:
acceptIfNotFound- Iftruethen accept connection from IP Address if it doesn't match any rule.rules- An array ofIpFilterRulecontaining all rules.
-
-
Method Details
-
accept
protected boolean accept(ChannelHandlerContext ctx, InetSocketAddress remoteAddress) throws Exception Description copied from class:AbstractRemoteAddressFilterThis method is called immediately after aChannelgets registered.- Specified by:
acceptin classAbstractRemoteAddressFilter<InetSocketAddress>- Returns:
- Return true if connections from this IP address and port should be accepted. False otherwise.
- Throws:
Exception
-
RuleBasedIpFilter(boolean, IpFilterRule...)