Как сохранить Spring Boot OAuth2 вошедшего в систему пользователя в сеансе? - PullRequest
1 голос
/ 23 марта 2019

Я пытаюсь внедрить Тихая аутентификация для моего сервера авторизации Spring Boot (созданного с помощью @EnableAuthorizationServer), чтобы я мог запросить новые токены доступа из моего SPA.

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

Я не смог найти информацию о том, как решить мою проблему онлайн. Я предполагаю, что аннотация @EnableAuthorizationServer как-то отключает хранение сеанса, но мне не удалось найти, где это происходит.

Допустим, я "захожу" на мой сервер аутентификации следующим образом:

curl -X POST \
  http://localhost:8080/oauth/token \
  -H 'Authorization: Basic Y2xpZW50OnNlY3JldA==' \
  -H 'content-type: multipart/form-data \
  -F grant_type=password \
  -F username=demo \
  -F password=demo

Выше, конечно, предоставит мне токен доступа. Тем не менее, я хотел бы, чтобы Auth Server держал пользователя в сеансе, чтобы я мог получить доступ к контроллеру ниже БЕЗ этого токена доступа:

// This controller is in my Auth Server
@RestController
public class SecurityController {

    @GetMapping("silentauth")
    public String silentAuth(Principal principal) {
        return principal.toString();
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...