Skip to content

JAMES-4210 Implement RFC 5034 AUTH command for POP3#3092

Open
quantranhong1999 wants to merge 13 commits into
apache:masterfrom
quantranhong1999:sasl-pop3-support
Open

JAMES-4210 Implement RFC 5034 AUTH command for POP3#3092
quantranhong1999 wants to merge 13 commits into
apache:masterfrom
quantranhong1999:sasl-pop3-support

Conversation

@quantranhong1999

Copy link
Copy Markdown
Member

So POP3 can leverage SASL mechanisms via the AUTH command, just like IMAP/SMTP.

@chibenwa chibenwa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy to see comprehensive tests on thePOP3 layer covering real HTTP exchanges

However the sasl bridge design seems very boiler plate to me. That's not a hard blocker but I believe it holds room for simplification

Extract mailbox opening and INBOX provisioning into a reusable component shared by USER/PASS and AUTH.
Translate POP3 Base64 challenges and responses to shared SASL exchanges, including cancellation, final server data, and cleanup.
Implement AUTH parsing, transport availability checks, exchange lifecycle management, capability advertisement, and mailbox authentication.
Preserve regular POP3 and initial AUTH command limits while allowing bounded long SASL continuation responses.
Register AUTH, configure PASS through the PLAIN SASL policy, and require TLS for plaintext USER/PASS by default.
Load built-in and custom SASL factories with Guice and wire Spring to the default PLAIN and OAuth mechanisms.
Cover PLAIN and OAuth flows, STARTTLS capability changes, line limits, cancellation, cleanup, and TLS defaults.
Cover Guice mechanism configuration and distributed CAPA and AUTH PLAIN behavior.
@quantranhong1999

Copy link
Copy Markdown
Member Author

Rebased and reused the SaslCodec (drop POP3Bridge): 0e58e91

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants