DelegatingSerializationFilter 无法设置 ObjectFilter:空警告消息重复出现在控制台中
Posted
技术标签:
【中文标题】DelegatingSerializationFilter 无法设置 ObjectFilter:空警告消息重复出现在控制台中【英文标题】:DelegatingSerializationFilter Could not set ObjectFilter: null warning message is repetitively appearing in console 【发布时间】:2021-08-03 16:26:43 【问题描述】:不知道为什么会这样。
我们将不胜感激。谢谢
【问题讨论】:
【参考方案1】:现在我做了一些更改后看不到警告。这就是我在 pom.xml 中所做的,并对扩展 KeycloakWebSecurityConfigurerAdapter
的 Config 类进行了一些更改
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("在对象被删除后不能设置过滤器 读")
【讨论】:
以上是关于DelegatingSerializationFilter 无法设置 ObjectFilter:空警告消息重复出现在控制台中的主要内容,如果未能解决你的问题,请参考以下文章