I think the BlacklistFilter should implement all of the upstream IoFilter callbacks, not just sessionCreated(), to prevent those events to be propagated to the IoHandler. I have a situation where messageReceived() is called in my IoHandler even if BlacklistFilter has blocked the client. I guess it's because it takes some time for the CloseRequest to be picked up by SocketIoProcessor.
If we don't want to call BlacklistFilter.isBlocked(IoSession) for every upstream event we could instead add an attribute to the session in BlacklistFilter.sessionCreated() which tells whether the connection is blocked or not and use that attribute in all the other events. WDYT? /Niklas
