#spring-boot #spring-security #keycloak #infinispan #spring-session
#spring-boot #spring-безопасность #keycloak #infinispan #spring-session
Вопрос:
Я использую Spring Session для хранения сеанса приложения во внешнем хранилище, в данном случае в кэше Infinispan.
Для этого я внедрил обычай SessionRepository
, который использует Infinispan RemoteCacheManager
внизу.
«Обычные» объекты из сеанса сохраняются и удаляются без каких-либо проблем.
Мое приложение интегрировано с Keycloak для единого входа с использованием адаптера загрузки Keycloak Spring. Это устанавливает тип объекта сеанса RefreshableKeycloakSecurityContext
. Это вызов для сохранения сеанса в удаленном кэше, как вы можете видеть, обновляемый… имеет некоторые атрибуты (KeycloakDeployment, SpringSecurityTokenStore), которые установлены:
Но когда атрибут Refreshable … извлекается из хранилища сеансов, KeycloakDeployment и некоторые другие атрибуты исчезают:
С их исчезновением некоторые функции, предоставляемые адаптером, такие как токен обновления, теряются, как вы можете видеть в следующем разделе из Refreshable … где ему необходимо иметь развертывание:
Есть идеи, как я мог бы сохранить эти атрибуты, полученные из Infinispan?
Обновить
RefreshableKeycloakSecurityContext
определяет KeycloakDeployment
и AdapterTokenStore
как переходный, поэтому они не предназначены для сериализации. Проблема с этим заключается в том, что он прерывает адаптер, когда сеанс расширяется, а не просто сериализуется… есть ли обходной путь?
package org.keycloak.adapters;
...
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class RefreshableKeycloakSecurityContext extends KeycloakSecurityContext {
protected static Logger log = Logger.getLogger(RefreshableKeycloakSecurityContext.class);
protected transient KeycloakDeployment deployment;
protected transient AdapterTokenStore tokenStore;
protected String refreshToken;
Ответ №1:
В используемой нами версии адаптера есть ошибка, исправленная, как указано в следующей проблеме Red Hat: https://issues.redhat.com/browse/KEYCLOAK-6752?attachmentViewMode=list