'Instagram Oauth2 java.lang.IllegalArgumentException: authorizationGrantType cannot be null

I try to create Oath2 registration.

But I get this error:

Caused by: java.lang.IllegalArgumentException: authorizationGrantType cannot be null
    at org.springframework.util.Assert.notNull(Assert.java:201) ~[spring-core-5.3.5.jar:5.3.5]
    at org.springframework.security.oauth2.client.registration.ClientRegistration$Builder.build(ClientRegistration.java:612) ~[spring-security-oauth2-client-5.4.5.jar:5.4.5]
    at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesRegistrationAdapter.getClientRegistration(OAuth2ClientPropertiesRegistrationAdapter.java:73) ~[spring-boot-autoconfigure-2.4.4.jar:2.4.4]
    at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesRegistrationAdapter.lambda$getClientRegistrations$0(OAuth2ClientPropertiesRegistrationAdapter.java:53) ~[spring-boot-autoconfigure-2.4.4.jar:2.4.4]
    at java.base/java.util.HashMap.forEach(HashMap.java:1336) ~[na:na]
    at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesRegistrationAdapter.getClientRegistrations(OAuth2ClientPropertiesRegistrationAdapter.java:52) ~[spring-boot-autoconfigure-2.4.4.jar:2.4.4]
    at org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientRegistrationRepositoryConfiguration.clientRegistrationRepository(OAuth2ClientRegistrationRepositoryConfiguration.java:49) ~[spring-boot-autoconfigure-2.4.4.jar:2.4.4]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.5.jar:5.3.5]
    ... 124 common frames omitted

This is my configuration:

      instagram:
        client-id: 68339519326517
        client-secret: 398ec27b13c38ea175ded5badb117a2
        redirectUri: "{baseUrl}/oauth2/callback/{registrationId}"
        scope:
          - user_profile
          - user_media
    provider:
      instagram:
        authorization-uri: https://api.instagram.com/oauth/authorize
        token-uri: https://api.instagram.com/oauth/access_token

Anybody know what is authorizationGrantType necessary for instagram?



Solution 1:[1]

Try grant_type, authorization_code value

Solution 2:[2]

You forgot to add authorization-grant-type to your configuration.

security:
    oauth2:
      client:
        registration:
          instagram:
            clientId: 68339519326517
            clientSecret: 398ec27b13c38ea175ded5badb117a2
            scope:
              - user_profile
              - user_media
            authorization-grant-type: authorization_code
            redirectUri: "{baseUrl}/oauth2/callback/{registrationId}"
            issuerUri: must be added also
        provider:
          instagram:
            authorizationUri: https://api.instagram.com/oauth/authorize
            tokenUri: https://api.instagram.com/oauth/access_token

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Burcu
Solution 2 vkatsou