Получение предупреждений об устаревании от GitHub при использовании подключаемого модуля Spring Security Rest - PullRequest
0 голосов
/ 07 мая 2020

У меня есть приложение Grails 3, которое использует плагин spring-security-rest версии 2.0.0.RC1, используя GitHub для аутентификации пользователя.

Я вижу предупреждения от GitHub:

Your application used an access token as part of a query parameter to access an endpoint through the GitHub API:
    https://api.github.com/user
Please use the Authorization HTTP header instead as using the `access_token` query parameter is deprecated.

Есть ли версия, где это исправлено, которая все еще работает с Grails 3?

Я считаю, что предупреждения об устаревании станут ошибками в ноябре 2020 года.

Обновление: Пробираясь вокруг pac4j Я вижу в классе OAuthConfiguration переменную tokenAsHeader. Если установлено, он добавляет токен авторизации в заголовок при получении информации о пользователе.

Не уверен, что это сработает, но я добавил tokenAsHeader = true в приложение. groovy:

github {
  client = org.pac4j.oauth.client.GitHubClient 
  key = '${APP_KEY}' 
  secret = '${APP_SECRET}' 
  scope = 'user' 
  tokenAsHeader = true
  defaultRoles = ['ROLE_GITHUB'] 
}

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

1 Ответ

0 голосов
/ 11 мая 2020

Как вы могли понять, клиенты OAuth не являются частью самого Spring Security REST, а исходят из Pac4j. Spring Security REST 2.0.0.RC1 поставляется с Pac4j 2.2.1, которому 2,5 года. Так что вполне возможно, что действующие настройки для клиентов, которые были тогда, в настоящее время устарели.

Ваши шансы:

  1. Обновите локально до более новой версии Pac4j. Он должен работать без сбоев до 4.0.0. В build.gradle:

    compile("org.grails.plugins:spring-security-rest:2.0.0.RC1") {
        exclude group: 'org.pac4j'
    }
    compile "org.pac4j:pac4j-core:3.8.3"
    compile "org.pac4j:pac4j-oauth:3.8.3"
    
  2. Обновите свое приложение до Grails 4 и используйте Spring Security REST 3.0.1, который использует pac4j 3.8.3

...