Keycloak несколько сеансов для одного и того же имени пользователя - PullRequest
0 голосов
/ 05 октября 2018

Я недавно настроил единый вход с помощью сервлет-адаптера Keycloak.Проблема в том, что у нас есть связь между сервисами, которая идет с аутентификацией BASIC.
Раньше мы использовали аутентификацию JAAS, поэтому связь S2S была без сохранения состояния (сессий не было связано).

С SSO / Keycloak это уже не так.Более того, каждый запрос REST создает новый сеанс Keycloak.

Я пытался найти конфигурацию или альтернативное решение без настройки и кодирования Keycloak, но не смог.

PS Из-за обратнойсовместимость, я не могу изменить клиенты REST для переключения на BEARER или другие методы аутентификации.

У кого-нибудь есть идея получше?

1 Ответ

0 голосов
/ 03 мая 2019

Я прочитал, что вы не можете перейти с базовый на на предъявителя .Но можете ли вы вообще отключить свою базовую аутентификацию от своих служб отдыха?

Я говорю это потому, что после этого вы сможете переместить свою логику аутентификации в фильтр.

Вы можете создать Фильтр , который будет перехватывать все запросы, прежде чем они достигнут моей Службы отдыха.Этот фильтр обрабатывает аутентификацию и, в случае успеха, переходит в состояние покоя, в противном случае возвращается 401. Пример кода:

public class RequestInterceptor implements Filter 
{
  if( (performAuth()) ) 
     chain.doFilter(request, response);
  else     
    // set status to HttpServletResponse.SC_SERVICE_UNAVAILABLE
}

// But you will have to find a way to exclude this class from authentication chain. 

Попробуйте продумать эти строки, вы можете получить какое-то направление.

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