@taluks
какой бесполезный сайт(

Как исправить отправку JSESSIONID в cookies при обновлении страницы?

Согласно руководству spring-boot-oauth2 после авторизации OAuth2 у нас появляется JSESSIONID и его достаточно для базовой безопасности.
Но при этом при обновлении страницы f5 сессионные cookies удаляются и первые запросы после обновления вызывают ошибку авторизации.
В моем случае устанавливается статус 401 (Spring boot 3.2):
http.exceptionHandling(exHandler ->
                exHandler.authenticationEntryPoint(new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED)));

В качестве клиента Angular17:
export const authInterceptor: HttpInterceptorFn = (req, next) => {
  const clonedRequest = req.clone( { withCredentials: true } );
  return next(clonedRequest);
};

Когда получен JSESSIONID все работает без ошибок в консоле Angular, но если перезагрузить страницу то в логе появится ошибка:
status: 401,
  statusText: 'Unknown Error',
  url: 'http://localhost:8080/api...',
  ok: false,
  name: 'HttpErrorResponse',
  message: 'Http failure response for http://localhost:8080/api...: 401 ',
  error: null

При этом этот же запрос обрабатывается и выдает результат, т.е. вначале на один запрос придет ошибка, а потом нормальный ответ. В браузере все запросы отображаются со статусом 200.
Из-за обработчика авторизации если перезагружать страницу иногда мелькает страница логина на которую этот обработчик перенаправляет, что не хорошо.
Как это можно исправить?
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
@taluks Автор вопроса
какой бесполезный сайт(
Проблема в серверном рендринге ангуляра
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы