导入依赖后抛出异常org.keycloak:keycloak-spring-boot-starter
。没有对代码进行其他更改。
例外:
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported
....
at org.keycloak.adapters.tomcat.AbstractAuthenticatedActionsValve.invoke(AbstractAuthenticatedActionsValve.java:67) ~[spring-boot-container-bundle-15.0.2.jar:15.0.2
at org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.invoke(AbstractKeycloakAuthenticatorValve.java:181) ~[spring-boot-container-bundle-15.0.2.jar:15.0.2
DTO
@JsonSerialize(as = ImmutableTestUserDto3.class)
@JsonDeserialize(as = ImmutableTestUserDto3.class)
@Value.Immutable
public interface TestUserDto3 {
@JsonProperty("username")
String getUsername();
@JsonProperty("roles")
List<String> getRoles();
}
经过一些调试,很明显只有当构建器具有多个相同属性的方法时才会发生这种情况List<String>
。
public final ImmutableTestUserDto3 withRoles(String... elements)
public final ImmutableTestUserDto3 withRoles(Iterable<String> elements)
如果只有一种方法,一切都会按预期工作。使用带有 getter 和 setter 的“简单”DTO 类也可以。
不幸的是,身份验证是在最新阶段添加的,并且需要大量返工才能更改当前代码。有没有办法解决这个问题并使两个依赖项相互兼容?