Cognito Userpool Facebook OAuth с Spring Security, есть ли кеш? - PullRequest
0 голосов
/ 01 марта 2019

Я использую Spring Security 5 с Cognito Userpool.

Я реализовал вход в Facebook через пул пользователей, используя OAuth2 API-интерфейсы пользователей.Мне удалось войти в систему, используя мою учетную запись Facebook, но как только я удалил пользователя из пула пользователей (через deleteUser API), мне не удалось снова зарегистрироваться и выдать ошибку invalid_grant.

...
[nio-8090-exec-6] o.s.s.authentication.ProviderManager     : Authentication attempt using org.springframework.security.oauth2.client.authentication.OAuth2LoginAuthenticationProvider
[nio-8090-exec-6] o.s.s.authentication.ProviderManager     : Authentication attempt using org.springframework.security.oauth2.client.oidc.authentication.OidcAuthorizationCodeAuthenticationProvider
[nio-8090-exec-6] o.s.web.client.RestTemplate              : HTTP POST https://mydomain.auth.myregion.amazoncognito.com/oauth2/token
[nio-8090-exec-6] o.s.web.client.RestTemplate              : Accept=[application/json, application/*+json]
[nio-8090-exec-6] o.s.web.client.RestTemplate              : Writing [{grant_type=[authorization_code], code=[xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx], redirect_uri=[http://localhost:8090/login/oauth2/code/facebook]}] as "application/x-www-form-urlencoded;charset=UTF-8"
[nio-8090-exec-6] o.s.web.client.RestTemplate              : Response 400 BAD_REQUEST
[nio-8090-exec-6] .s.a.DefaultAuthenticationEventPublisher : No event was found for the exception org.springframework.security.oauth2.core.OAuth2AuthenticationException
[nio-8090-exec-6] .s.o.c.w.OAuth2LoginAuthenticationFilter : Authentication request failed: org.springframework.security.oauth2.core.OAuth2AuthenticationException: [invalid_grant] 

org.springframework.security.oauth2.core.OAuth2AuthenticationException: [invalid_grant] 
    at org.springframework.security.oauth2.client.oidc.authentication.OidcAuthorizationCodeAuthenticationProvider.authenticate(OidcAuthorizationCodeAuthenticationProvider.java:143) ~[spring-security-oauth2-client-5.1.4.RELEASE.jar:5.1.4.RELEASE]
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:175) ~[spring-security-core-5.1.4.RELEASE.jar:5.1.4.RELEASE]
    at org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter.attemptAuthentication(OAuth2LoginAuthenticationFilter.java:186) ~[spring-security-oauth2-client-5.1.4.RELEASE.jar:5.1.4.RELEASE]
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) ~[spring-security-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]
    at org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter.doFilterInternal(OAuth2AuthorizationRequestRedirectFilter.java:160) [spring-security-oauth2-client-5.1.4.RELEASE.jar:5.1.4.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    ...

Я попытался очистить кеш браузера, но ничего не случилось.Однако мне удалось снова войти в систему примерно через 30 минут , используя тот же исходный код.

Есть некоторые кэши для авторизации в Cognito Userpool или Facebook?

application.yml

spring:
  security:
    oauth2:
      client:
        registration:
          facebook:
            clientId: xxxxxxxxxxxxxxxx
            clientSecret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
            clientAuthenticationMethod: basic
            redirectUriTemplate: '{baseUrl}/login/oauth2/code/{registrationId}'
            authorizationGrantType: authorization_code
            scope:
              - openid
              - email
              - profile
              - aws.cognito.signin.user.admin
            clientName: Facebook
        provider:
          facebook:
            authorizationUri: https://mydomain.auth.myregion.amazoncognito.com/oauth2/authorize?identity_provider=Facebook
            tokenUri: https://mydomain.auth.myregion.amazoncognito.com/oauth2/token
            jwkSetUri: https://cognito-idp.myregion.amazonaws.com/my_userpool_id/.well-known/jwks.json
            userInfoUri: https://mydomain.auth.myregion.amazoncognito.com/oauth2/userInfo
            userNameAttribute: sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...