Я работаю над интеграцией Spring Security OAuth2 с токенами JWT в проект Spring Boot. Мой сервер аутентификации настроен аналогично тому, что находится в этом пример проекта.
Когда клиент OAuth2 выполняет POST на /oauth/token
, он не может создать токен доступа. Зарегистрирована конкретная ошибка:
o.s.s.o.provider.endpoint.TokenEndpoint : Handling error: NoSuchBeanDefinitionException, No qualifying bean of type [org.springframework.transaction.PlatformTransactionManager] is defined
Я отладил его до AbstractTokenGranter
строки 70 при вызове tokenServices.createAccessToken
. Я не смог легко отладить дальше, потому что этот вызов на самом деле проходит через прокси. Кажется, что-то в конфигурации хочет сделать это транзакционным. Создание токенов доступа не должно быть транзакционным в JWT. Я мог понять, почему получение кода доступа было бы транзакционным, но код успешно прошел эту точку.
Почему для этого может потребоваться PlatformTransactionManager
и как я могу его предоставить?