Сервер Spring OAuth2: должен ли вызов / oauth / authorize продлить сеансовый cookie? - PullRequest
0 голосов
/ 17 декабря 2018

У нас есть сервер аутентификации OAuth2, созданный с использованием Spring Security OAuth2 и Spring Boot.

Мы используем неявный поток OAuth2 в нашем веб-приложении для аутентификации на этом сервере.Он работает следующим образом:

  1. Веб-приложение отправляет информацию для входа на сервер аутентификации и возвращает токен JWT и файл cookie сеанса.В веб-приложении токен JWT используется для связи с другими службами, а cookie-файл сеанса - только для сохранения сеанса на сервере аутентификации.

  2. Токен JWT имеет ограниченную допустимость, поэтому пользователь может сохранить его.После входа в систему веб-приложение периодически вызывает /oauth/authorize?response_type=token на сервере авторизации, чтобы получить новый токен JWT до истечения срока действия старого.Вот почему веб-приложение должно иметь действительный сеанс.

Проблема заключается в том, что при вызове oauth/authorize на сервере авторизации срок действия сеанса автоматически продлевается (я вижуэто в БД, потому что данные сеанса хранятся через JDBC), но срок действия cookie сеанса не.Это означает, что когда срок действия файла cookie сеанса истекает, веб-приложение теряет сеанс и больше не может получить новый токен JWT.

Мы ожидаем, что вызов oauth/authorize вернет заголовок set cookie, который расширитсясрок действия файла cookie сеанса.

У меня есть 2 вопроса:

  1. Должно ли это работать таким образом или у нас неверные предположения?(То есть, должен ли вызов oauth authorize продлить сеансовый файл cookie в соответствии со стандартом неявного потока oauth2?

  2. Если это должно работать таким образом, что может помешать безопасности Spring продлитьcookie?

...