PSR-14 Events
The extension provides PSR-14 events for customizing the authentication process.
Available Events
BeforeUserCreationEvent
Dispatched before a new user is created from SAML attributes.
namespace Netresearch\NrSamlAuth\Event;
final class BeforeUserCreationEvent
{
public function getSamlAttributes(): array;
public function getUserData(): array;
public function setUserData(array $userData): void;
public function getSettings(): Settings;
}
Copied!
AfterUserCreationEvent
Dispatched after a new user has been created.
namespace Netresearch\NrSamlAuth\Event;
final class AfterUserCreationEvent
{
public function getUser(): array;
public function getSamlAttributes(): array;
public function getSettings(): Settings;
}
Copied!
BeforeAuthenticationEvent
Dispatched before authentication is processed.
namespace Netresearch\NrSamlAuth\Event;
final class BeforeAuthenticationEvent
{
public function getSamlResponse(): Response;
public function getSettings(): Settings;
public function setSkipAuthentication(bool $skip): void;
}
Copied!
Registering Event Listeners
Register your event listeners in your extension's Services.yaml:
# Configuration/Services.yaml
services:
Vendor\MyExtension\EventListener\CustomUserCreationListener:
tags:
- name: event.listener
identifier: 'myextension/custom-user-creation'
event: Netresearch\NrSamlAuth\Event\BeforeUserCreationEvent
Copied!
Example Implementation
Custom attribute mapping:
namespace Vendor\MyExtension\EventListener;
use Netresearch\NrSamlAuth\Event\BeforeUserCreationEvent;
final class CustomUserCreationListener
{
public function __invoke(BeforeUserCreationEvent $event): void
{
$attributes = $event->getSamlAttributes();
$userData = $event->getUserData();
// Map department to custom field
if (isset($attributes['department'][0])) {
$userData['tx_myext_department'] = $attributes['department'][0];
}
// Map employee ID
if (isset($attributes['employeeId'][0])) {
$userData['tx_myext_employee_id'] = $attributes['employeeId'][0];
}
$event->setUserData($userData);
}
}
Copied!