Le 10/25/13 10:11 AM, Julien Vermillard a écrit :
> Hi,
>
> I'm writing some security IoFilters and I'm having a recurring issue.
>
> Each time I write a security negotiation filter, I stumble in a quite
> annoying problem.
>
>
> I have a filter chain like :
>
> SecurityCodec -> SecurityLogic -> CodecA -> CodecB -> Business code
>
> The security logic filter is first negociating some security keys and auth :
>
> pseudo code:
>
> void messageReceived(session, msg, nextFilter) {
>
>     if (session is not authenticated) {
>             session.write( new SecurityNegociationMessage());
>     } else {
>            nextFilter.messageReceive(decipher(msg));
>     }
> }
>
>
> So the security filter call session.write, but when you do that the
> message is processed by the whole IoFilter chain, the two codec filter
> will try to process it.
>
> So most of time I need to add workaround in the upper fitlers to skip
> the low level security filters.
>
> IMO when a session.write(..) is called from a IoFilter message
> reception event, we should process the filter chain partially.

Can't you call the messageWriting() method in this case ?


-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com 

Reply via email to