ruby / ruby/net-imap

🔒 Cancel SASL authentication after client-side exceptions

Open
#310 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

IMAP4rev1 IMAP4rev2 SASL :lock:
Dominant language
Ruby
Stars
118
Forks
43
Avg merge
1d 23h
Merged PRs (30d)
26

Description

From RFC9051 6.2.2

If the client wishes to cancel an authentication exchange, it issues a line consisting of a single "*". If the server receives such a response, or if it receives an invalid base64 string (e.g., characters outside the base64 alphabet or non-terminal "="), it MUST reject the AUTHENTICATE command by sending a tagged BAD response.

Currently, exceptions should cause the connection to be dropped, but that's too severe a reaction.

When authentication is canceled, the original exception should be the #cause of any resulting BAD exception. This way it will be captured by automated error reporting.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the AUTHENTICATE command handling and compare its cancellation behavior with RFC 9051 section 6.2.2. The work is done when client-side exceptions cancel authentication instead of dropping the connection, and the resulting BAD exception retains the original exception as its #cause.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
authentication, networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.