diff --git a/config/packages/league_oauth2_server.yaml b/config/packages/league_oauth2_server.yaml index b8a24c4..aacf4f4 100644 --- a/config/packages/league_oauth2_server.yaml +++ b/config/packages/league_oauth2_server.yaml @@ -5,8 +5,8 @@ league_oauth2_server: encryption_key: '%env(resolve:OAUTH_ENCRYPTION_KEY)%' enable_client_credentials_grant: true enable_auth_code_grant: true - enable_refresh_token_grant: false - enable_password_grant: false + enable_refresh_token_grant: true + enable_password_grant: true access_token_ttl: PT10M resource_server: public_key: '%env(resolve:OAUTH_PUBLIC_KEY)%' diff --git a/config/services.yaml b/config/services.yaml index 80958e5..422012f 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -261,3 +261,7 @@ services: $apiBaseUrl: '%env(default::MAILJET_API_BASE_URL)%' $defaultListId: '%env(default::MAILJET_DEFAULT_LIST_ID)%' $contactMetadataFields: '%mailjet_contact_metadata_fields%' + + App\EventListener\UserResolverListener: + arguments: + $userProvider: '@security.user_providers' diff --git a/src/EventListener/UserResolverListener.php b/src/EventListener/UserResolverListener.php new file mode 100644 index 0000000..95c702c --- /dev/null +++ b/src/EventListener/UserResolverListener.php @@ -0,0 +1,43 @@ +userProvider->loadUserByIdentifier($event->getUsername()); + } catch (AuthenticationException $e) { + return; + } + + if (!$user instanceof PasswordAuthenticatedUserInterface) { + return; + } + + $passwordHash = $this->crypt->decrypt($user->getPassword()); + + if ($passwordHash !== md5($event->getPassword())) { + return; + } + + $event->setUser($user); + } +}