Package io.netty.handler.ipfilter
Class AbstractRemoteAddressFilter<T extends SocketAddress>
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.ipfilter.AbstractRemoteAddressFilter<T>
-
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelInboundHandler
- Direct Known Subclasses:
IpSubnetFilter,RuleBasedIpFilter,UniqueIpFilter
public abstract class AbstractRemoteAddressFilter<T extends SocketAddress> extends io.netty.channel.ChannelInboundHandlerAdapterThis class provides the functionality to either accept or reject newChannels based on their IP address.You should inherit from this class if you would like to implement your own IP-based filter. Basically you have to implement
accept(ChannelHandlerContext, SocketAddress)to decided whether you want to accept or reject a connection from the remote address.Furthermore overriding
channelRejected(ChannelHandlerContext, SocketAddress)gives you the flexibility to respond to rejected (denied) connections. If you do not want to send a response, just have it return null. Take a look atRuleBasedIpFilterfor details.
-
-
Constructor Summary
Constructors Constructor Description AbstractRemoteAddressFilter()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract booleanaccept(io.netty.channel.ChannelHandlerContext ctx, T remoteAddress)This method is called immediately after aChannelgets registered.protected voidchannelAccepted(io.netty.channel.ChannelHandlerContext ctx, T remoteAddress)This method is called ifremoteAddressgets accepted byaccept(ChannelHandlerContext, SocketAddress).voidchannelActive(io.netty.channel.ChannelHandlerContext ctx)voidchannelRegistered(io.netty.channel.ChannelHandlerContext ctx)protected io.netty.channel.ChannelFuturechannelRejected(io.netty.channel.ChannelHandlerContext ctx, T remoteAddress)This method is called ifremoteAddressgets rejected byaccept(ChannelHandlerContext, SocketAddress).-
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
-
-
-
-
Method Detail
-
channelRegistered
public void channelRegistered(io.netty.channel.ChannelHandlerContext ctx) throws Exception- Specified by:
channelRegisteredin interfaceio.netty.channel.ChannelInboundHandler- Overrides:
channelRegisteredin classio.netty.channel.ChannelInboundHandlerAdapter- Throws:
Exception
-
channelActive
public void channelActive(io.netty.channel.ChannelHandlerContext ctx) throws Exception- Specified by:
channelActivein interfaceio.netty.channel.ChannelInboundHandler- Overrides:
channelActivein classio.netty.channel.ChannelInboundHandlerAdapter- Throws:
Exception
-
accept
protected abstract boolean accept(io.netty.channel.ChannelHandlerContext ctx, T remoteAddress) throws ExceptionThis method is called immediately after aChannelgets registered.- Returns:
- Return true if connections from this IP address and port should be accepted. False otherwise.
- Throws:
Exception
-
channelAccepted
protected void channelAccepted(io.netty.channel.ChannelHandlerContext ctx, T remoteAddress)This method is called ifremoteAddressgets accepted byaccept(ChannelHandlerContext, SocketAddress). You should override it if you would like to handle (e.g. respond to) accepted addresses.
-
channelRejected
protected io.netty.channel.ChannelFuture channelRejected(io.netty.channel.ChannelHandlerContext ctx, T remoteAddress)This method is called ifremoteAddressgets rejected byaccept(ChannelHandlerContext, SocketAddress). You should override it if you would like to handle (e.g. respond to) rejected addresses.- Returns:
- A
ChannelFutureif you perform I/O operations, so that theChannelcan be closed once it completes. Null otherwise.
-
-