You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Timothy A. Bish (Jira)" <ji...@apache.org> on 2022/03/10 20:12:00 UTC

[jira] [Resolved] (PROTON-2490) SASL to AMQP handoff is unsuccessful in server contexts (e.g. for peer-to-peer)

     [ https://issues.apache.org/jira/browse/PROTON-2490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy A. Bish resolved PROTON-2490.
-------------------------------------
    Fix Version/s: protonj2-1.0.0-M5
       Resolution: Fixed

> SASL to AMQP handoff is unsuccessful in server contexts (e.g. for peer-to-peer)
> -------------------------------------------------------------------------------
>
>                 Key: PROTON-2490
>                 URL: https://issues.apache.org/jira/browse/PROTON-2490
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: protonj2
>    Affects Versions: protonj2-1.0.0-M4
>            Reporter: Matt Selway
>            Assignee: Timothy A. Bish
>            Priority: Blocker
>             Fix For: protonj2-1.0.0-M5
>
>
> When using the engine in a server context, i.e., not the client classes, the SASL to AMQP handoff does not complete correctly leaving the ProtonFrameDecodingHandler in the incorrect to process the followup AMQPHeader message.
> The problem appears to be caused by the `handleWrite(..., SASLEnvelope)` and `handleRead(..., SASLEnvelope)` methods resetting the ProtonFrameDecodingHandler's pipeline interests to 'read only'. However, this occurs before it processes the write of the final SASL Outcome frame, which is used to reset the ProtonFrameDecodingHandler's state to handle the next incoming AMQPHeader frame.
> The ProtonFrameDecodingHandler needs to be modified such that it only resets the interest to read only once it has processed the SASLOutcome and not before (unless it is a non-SASL engine).
> As it stands, it prevents the ProtonJ2 library from being used out of the box in server contexts, which default to SASL engine configurations. A temporary workaround is to add an engine handler to the pipeline that listens to writes, searches the pipeline for the decoder, and forces its reset at the appropriate time.
> It is recommended that Unit Tests be written to cover the SASL to AMQP handover portion of the protocol (and possibly other state transitions currently missing) as the current test suite only tests some aspects of the SASL protocol and AMQP protocols independently.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org