34 lines
1.3 KiB
Java
34 lines
1.3 KiB
Java
package dev.lions.user.manager.config;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import io.quarkus.jackson.ObjectMapperCustomizer;
|
|
import jakarta.inject.Singleton;
|
|
import org.keycloak.representations.idm.RealmRepresentation;
|
|
import org.keycloak.representations.idm.UserRepresentation;
|
|
import org.keycloak.representations.idm.RoleRepresentation;
|
|
|
|
/**
|
|
* Customizer pour Jackson afin d'ignorer les propriétés inconnues dans les
|
|
* représentations Keycloak.
|
|
* Cela évite les erreurs de désérialisation (comme bruteForceStrategy) lorsque
|
|
* le serveur Keycloak
|
|
* est plus récent que les bibliothèques clients.
|
|
*/
|
|
@Singleton
|
|
public class KeycloakJacksonCustomizer implements ObjectMapperCustomizer {
|
|
|
|
@Override
|
|
public void customize(ObjectMapper objectMapper) {
|
|
// En plus de la configuration globale, on force les Mix-ins pour les classes
|
|
// Keycloak critiques
|
|
objectMapper.addMixIn(RealmRepresentation.class, IgnoreUnknownMixin.class);
|
|
objectMapper.addMixIn(UserRepresentation.class, IgnoreUnknownMixin.class);
|
|
objectMapper.addMixIn(RoleRepresentation.class, IgnoreUnknownMixin.class);
|
|
}
|
|
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
abstract static class IgnoreUnknownMixin {
|
|
}
|
|
}
|