view mod_sasl2/README.md @ 6319:04c3273cb81f

mod_auth_cyrus: Add empty 'profile' table to SASL handler objects This is for compatibility with Prosody's built-in util.sasl objects. A SASL profile table usually includes methods supported by the backend, which can be used by SASL mechanism handlers to perform operations (such as testing the password). It also optionally contains a 'cb' field with channel binding method handlers. The Cyrus backend doesn't support channel binding, and doesn't have the same concept of auth backend methods (it handles all that internally, and Prosody has no insight or control over it). Thus, we create an empty profile which informs Prosody that the SASL handler does not support any of the auth or channel binding methods. Some features will not work, but they didn't work anyway. This just makes it explicit. This fixes a traceback in mod_sasl2_fast, which expected SASL handlers to always contain a 'profile' field.
author Matthew Wild <mwild1@gmail.com>
date Thu, 04 Sep 2025 10:14:46 +0100
parents 86989059de5b
children
line wrap: on
line source

---
labels:
- Stage-Beta
summary: "XEP-0388: Extensible SASL Profile"
---

Implementation of [XEP-0388: Extensible SASL Profile]. 

## Configuration

This module honours the same configuration options as Prosody's existing
[mod_saslauth](https://prosody.im/doc/modules/mod_saslauth).

## Developers

mod_sasl2 provides some events you can hook to affect aspects of the
authentication process:

- `advertise-sasl-features`
- `sasl2/c2s/success`
  - Priority 1000: Session marked as authenticated, success response created (`event.success`)
  - Priority -1000: Success response sent to client
  - Priority -1500: Updated <stream-features/> sent to client
- `sasl2/c2s/failure`
- `sasl2/c2s/error`

# Compatibility

This module requires Prosody **trunk** and is not compatible with 0.12 or older versions.


     Prosody Version           Status
  -----------------------  ----------------
  trunk as of 2025-05-25   Works
  13                       Works
  0.12                     Does not work
  -----------------------  ----------------