Я работаю над интеграцией Spring Security OAuth2 с токенами JWT в проект Spring Boot. Мой сервер аутентификации настроен аналогично тому, что находится в этом sample project.Spring OAuth2 Требуется PlatformTransactionManager
Когда клиент 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
и как я могу его поставить?
Спасибо за предложение, но я не использую любую базу данных SQL. –
Вопрос: Где вы можете хранить своих зарегистрированных клиентов? –
Еще один совет для вас. Реализация внутренней пружинной пружины для стандартного DefaultTokenService аннотируется с помощью @Transactional (строка 81). Чем вам нужен менеджер транзакций. Я вижу два решения для вас. Внедрите свой собственный TokenService без аннотации Transactional или добавьте в базу данных memeory в качестве зависимости. –