Как правильно добавить AuthenticationProvider
в ядро?Создание фиктивной записи в файле security.yml
работает, но выглядит довольно глупо.
Длинная история:
Я работаю над созданием навыка Amazon Alexa для моегосуществующие веб-службы на основе Symfony.
Чтобы проверить, должен ли запрос быть авторизован, мне нужно вручную извлечь AuthToken
из запроса и передать его в AuthenticationManager
:
public function alexaRequestAction(Request $request, AuthenticationManagerInterface $authenticationManager) {
...
$accessToken = $this->getAuthTokenFromRequest($request);
if ($accessToken) {
$token = new OAuthToken();
$token->setToken($accessToken);
try {
$authToken = $authenticationManager->authenticate($token);
...
} catchcatch (AuthenticationException $e) {
...
}
} else {
// Request without a linked account...
}
}
Это не с ProviderNotFoundException
.Если я добавлю некоторые записи в Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager
, чтобы посмотреть, какие провайдеры доступны, OAuthProvider
не будет включен.
Я могу изменить это, добавив фиктивную запись в настройки брандмауэра:
// security.yml
security:
firewalls:
oauth_dummy:
pattern : ^/someDummyPath
fos_oauth : true
Теперь провайдер доступен и приведенный выше код работает.Однако добавление фиктивного брандмауэра только для того, чтобы добавить провайдера, кажется не самым элегантным решением.Как правильно это сделать?