Gibt es eine Möglichkeit, den Standardauthentifizierungsanbieter UserAuthenticationProvider
von $app['security.authentication_manager']
zu entfernen?Silex 2: Entfernen des Standardauthentifizierungsanbieters UserAuthenticationProvider
Ich habe meinen eigenen Authentifizierungsanbieter erstellt und möchte nicht den Standard verwenden, der DaoAuthenticationProvider
aufruft, um das Benutzerkennwort zu überprüfen, da der Authentifizierungsprozess nicht so funktioniert.
Zu diesem Zeitpunkt ruft der Authentifizierungsmanager die beiden Authentifizierungsanbieter an: my custom und der Standardwert. Um eine erfolgreiche Authentifizierung zu ermöglichen, überschreibe ich das DAO, um die Tests zu überspringen, aber es ist nicht sauber.
Benutzerdefinierte Authentifizierungsanbieter
$app['security.authentication_listener.factory.sds'] = $app->protect(function ($name, $options) use ($app) {
// define the authentication provider object
$app['security.authentication_provider.'.$name.'.sds'] = function() use ($app) {
return new CustomAuthenticationProvider($app['user.provider'], $app['security.encoder_factory']);
};
// define the authentication listener object
$app['security.authentication_listener.'.$name.'.sds'] = function() use ($app) {
return new CustomAuthenticationListener($app['security.token_storage'], $app['security.authentication_manager']);
};
return array(
// the authentication provider id
'security.authentication_provider.'.$name.'.sds',
// the authentication listener id
'security.authentication_listener.'.$name.'.sds',
// the entry point id
null,
// the position of the listener in the stack
'pre_auth'
);
});
die DAO überschreiben Tests eine benutzerdefinierte calss und überspringen zu verwenden.Ich möchte diesen Punkt vermeiden, indem Sie den DAO-Aufruf vom Authentifizierungsmanager entfernen.
$app['security.authentication_provider.dao._proto'] = $app->protect(function ($name) use($app) {
return new \Trilogis\Classes\CustomUserAuthenticationProvider(
$app['security.user_provider.' . $name],
$app['security.user_checker'],
$name,
$app['security.encoder_factory']
);
});
Sicherheits Config hinzufügen für 'sds' Firewall –