Файл 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()
            );
    }

0 ответов

Другие вопросы по тегам