Файл Spring Boot application.yml неправильно настроен? Azure Active Directory OAuth2
Я пытаюсь настроить свое приложение весенней загрузки для использования OAuth2 с активным каталогом Azure. Однако весенняя загрузка либо не получает файл application.yml, либо мой файл настроен неправильно, но я не могу найти, что настроено неправильно.
Основная ошибка, которую я получаю, это
Вызвано: org.springframework.beans.factory.NoSuchBeanDefinitionException: нет доступного квалификационного компонента типа «org.springframework.security.oauth2.client.registration.ClientRegistrationRepository».
но если я включу bean-компонент в свой файл конфигурации с аналогичной настройкой, сервер Tomcat сможет успешно запуститься, но указывает на неправильную конечную точку. (/oauth2/authorization/azure
против ожидаемого/login/oauth2/code/
)
Я использую пружинную версию 5.3.20, пружинную загрузочную версию 2.7.10 и пружинную безопасность 5.6.9.Final.
приложение.yml:
azure:
activedirectory:
client-id: {CLIENT ID}
client-secret: {CLIENT SECRET}
tenant-id: {TENANT ID}
authorization-clients:
facility-inventory:
scopes: openid, profile, user, offline_access
authorization-grant-type: client_credentials
spring:
security:
oauth2:
client:
provider:
azure-active-directory:
issuer-uri: https://login.microsoftonline.com/{ORG}/oauth2/v2.0
registration:
azure:
provider: azure-active-directory
client-id: {CLIENT ID}
client-secret: {CLIENT SECRET}
scope: openid, profile, user, offline_access
authorization-uri: /login/oauth2/authorize/
redirect-uri: /login/oauth2/code/
authorization-grant-type: client_credentials
pre-established-redirect-uri: {Base URL}/login/oauth2/code/
registered-redirect-uri: {Base URL}/login/oauth2/code/
use-current-uri: false
Определение пользовательской регистрации клиента Java:
@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
return new InMemoryClientRegistrationRepository(
ClientRegistration
.withRegistrationId("azure")
.clientId("{CLIENT ID}")
.clientSecret("CLIENT SECRET")
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUri("/login/oauth2/code/*")
.scope("openid", "profile", "email", "address", "phone")
.authorizationUri("https://login.microsoftonline.com/{ORG}/oauth2/v2.0")
.tokenUri("https://login.microsoftonline.com/{ORG}/oauth2/v2.0/token")
.userNameAttributeName(IdTokenClaimNames.SUB)
.clientName("Valuations-Mgmt-Tool_qa_ac_client")
.build()
);
}