Обновление токена не работает в Spring Security OAuth2 - PullRequest
0 голосов
/ 21 апреля 2019

Есть шлюз в качестве клиента oauth2 и Сервер авторизации. Тип гранта authorization_code. Все работает правильно. Uaa, шлюз и сервер ресурсов расположены здесь .

application.yml шлюза:

zuul:
  routes:
    resource:
      url: http://localhost:8085
    resource2:
      url: http://localhost:8086
security:
  oauth2:
    resource:
      user-info-uri: http://localhost:9191/uaa/user
    client:
      accessTokenUri: http://localhost:9191/uaa/oauth/token
      userAuthorizationUri: http://localhost:9191/uaa/oauth/authorize
      clientId: web
      clientSecret: secret
      grant-type: authorization_code,refresh_token

logging:
  level:
    org.springframework.security: DEBUG

Как вы видите в application.yml выше, в типе grant refresh_token.

И конфиг Сервера авторизации:

@Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        //clients.jdbc(appConfig.dataSource());
        clients.inMemory()
                .withClient("web")
                .secret(new HashingClass().encode("secret"))
                .authorizedGrantTypes("authorization_code","refresh_token")
                .scopes("read,write")
                .accessTokenValiditySeconds(9)
                .refreshTokenValiditySeconds(9);

    }

Как вы видите в приведенном выше классе конфигурации, в авторизованном GrantTypes есть refresh_token.

Но через 9 секунд токен обновления не работает, и в приложении Gateway возникает следующая ошибка:

Вызвано: org.springframework.security.authentication.BadCredentialsException: Не удается получить действительный токен доступа на org.springframework.cloud.security.oauth2.proxy.OAuth2TokenRelayFilter.getAccessToken (OAuth2TokenRelayFilter.java:99) ~ [spring-cloud-security-2.0.0.RELEASE.jar: 2.0.0.RELEASE] в org.springframework.cloud.security.oauth2.proxy.OAuth2TokenRelayFilter.run (OAuth2TokenRelayFilter.java:79) ~ [spring-cloud-security-2.0.0.RELEASE.jar: 2.0.0.RELEASE] в com.netflix.zuul.ZuulFilter.runFilter (ZuulFilter.java:117) ~ [zuul-core-1.3.1.jar: 1.3.1] в com.netflix.zuul.FilterProcessor.processZuulFilter (FilterProcessor.java:193) ~ [zuul-core-1.3.1.jar: 1.3.1] ... 97 общих кадров пропущено

Где не так? а какая-то еще конфигурация теряется для токена обновления?

Я, кроме как через 9 секунд, приложение Gateway автоматически получает новый токен по токену обновления. почему этого не происходит?

...