DelegatingSerializationFilter Не удалось установить фильтр объектов: в консоли постоянно появляется предупреждающее сообщение null

#spring-boot #spring-mvc #spring-security #keycloak

Вопрос:

введите описание изображения здесь

Не имея ни малейшего представления, почему это так.

Помощь была бы признательна. Спасибо

Ответ №1:

Теперь я не вижу предупреждений после того, как внес некоторые изменения. Вот что я сделал в своей pom.xml и внес некоторые изменения в класс конфигурации, который расширяет KeycloakWebSecurityConfigurerAdapter

 public class ResourceServerConfig extends KeycloakWebSecurityConfigurerAdapter {

public final KeycloakClientRequestFactory keycloakClientRequestFactory;

// keycloakClientRequestFactory injected via constructor
public ResourceServerConfig(KeycloakClientRequestFactory keycloakClientRequestFactory) {
    this.keycloakClientRequestFactory = keycloakClientRequestFactory;
}

...
...
/**
 * To simplify communication between clients, Keycloak provides an extension of Spring’s RestTemplate that handles
 * bearer token authentication for you. To enable this feature your security configuration must add the
 * KeycloakRestTemplate bean. Note that it must be scoped as a prototype to function correctly.
 * <p>
 * Refer: https://www.keycloak.org/docs/latest/securing_apps/#_spring_security_adapter (Spring Security Adapter)
 *
 * @return
 */
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public KeycloakRestTemplate keycloakRestTemplate() {
    return new KeycloakRestTemplate(keycloakClientRequestFactory);
}
}
 

И в pom.xml файл

         <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-spring-boot-starter</artifactId>
        <version>12.0.4</version>
    </dependency>
    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-spring-security-adapter</artifactId>
        <version>13.0.1</version>
    </dependency>
 

Ответ №2:

Воспользуйся

 -Djdk.serialSetFilterAfterRead=true
 

Для получения более подробной информации см. Следующее

https://issues.redhat.com/browse/KEYCLOAK-15901

Похоже, проблема вызвана ObjectInputStream.setObjectFilter (на Java 9-11) соответствующий ObjectInputStream.setInternalObjectInputFilter (в Java 8) вызывает исключение IllegalStateException(«фильтр не может быть установлен после того, как объект был прочитан»)