[
https://issues.apache.org/jira/browse/PROTON-2490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17504553#comment-17504553
]
ASF subversion and git services commented on PROTON-2490:
---------------------------------------------------------
Commit 2b8030694f8bc1b8eac71cc9d471725a6bf2fdc6 in qpid-protonj2's branch
refs/heads/main from Timothy Bish
[ https://gitbox.apache.org/repos/asf?p=qpid-protonj2.git;h=2b80306 ]
PROTON-2490 Fix some issues with engine in SASL server mode
Fixes issue where an engine used as a SASL server does not properly
update the frame decoder state and interest mask. Fixes issues in the
test peer when testing the engine as a SASL server and some API naming
in peer SASL expectation types.
> 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
>
> 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: [email protected]
For additional commands, e-mail: [email protected]