id
Panduan
Keamanan Aplikasi
NQRust-Identity admin client
idGuidesSecuring ApplicationsAdmin Client

Klien admin NQRust-Identity

Klien admin NQRust-Identity adalah pustaka Java yang memudahkan akses dan penggunaan Admin REST API NQRust-Identity. Pustaka ini memerlukan Java 11 atau lebih tinggi pada saat runtime (ketergantungan RESTEasy menetapkan persyaratan ini). Untuk menggunakannya dari aplikasi Anda, tambahkan ketergantungan pada pustaka keycloak-admin-client. Sebagai contoh menggunakan Maven:

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>26.0.8</version>
</dependency>

Contoh berikut menunjukkan bagaimana menggunakan pustaka klien Java untuk mendapatkan detail realm utama:

import org.keycloak.admin.client.Keycloak;
import org.keycloak.representations.idm.RealmRepresentation;
...
 
Keycloak keycloak = Keycloak.getInstance(
    "http://localhost:8080",
    "master",
    "admin",
    "password",
    "admin-cli");
RealmRepresentation realm = keycloak.realm("master").toRepresentation();

Kompatibilitas dengan server NQRust-Identity

Klien admin NQRust-Identity dimaksudkan untuk bekerja dengan beberapa versi server NQRust-Identity. Klien admin mungkin didukung dengan versi server NQRust-Identity yang lebih baru yang dirilis setelah klien dan versi server NQRust-Identity yang lebih lama yang dirilis sebelumnya. Sebagai akibat perubahan ini, bidang Java dari kelas "representation" yang mendasari, yang merepresentasikan properti JSON dari body permintaan/tanggapan (seperti kelas RealmRepresentation yang ditunjukkan dalam bagian sebelumnya) mungkin tidak persis sama untuk klien dan server.

Untuk menghindari isu kompatibilitas, pastikan bahwa kelas com.fasterxml.jackson.databind.ObjectMapper, yang digunakan oleh klien admin di balik layar, diinisialisasi dengan kedua properti ini:

objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

Jika Anda menggunakan cara pembuatan klien admin yang dasar seperti yang dijelaskan di atas, maka properti-properti ini ditambahkan secara default karena klien admin secara default menggunakan kelas org.keycloak.admin.client.JacksonProvider untuk membuat ObjectMapper, yang menambahkan properti-properti ini secara otomatis. Namun jika Anda menyuntikkan customJacksonProvider Anda sendiri saat membuat objek Keycloak, pastikan bahwa object mapper diinisialisasi dengan properti di atas jika Anda ingin menghindari isu kompatibilitas.

Sebagai contoh, pertimbangkan situasi di mana klien admin diinstantiasikan dengan cara yang dijelaskan di bawah ini dengan kelas MyCustomJacksonProvider Anda sendiri:

Keycloak.getInstance(
                "http://localhost:8080",
                "master",
                "admin",
                "admin",
                "admin-cli",
                null,
                null,
                new MyCustomJacksonProvider()
        );

Dalam hal ini, pastikan bahwa kelas MyCustomJacksonProvider Anda mewarisi dari kelas org.keycloak.admin.client.JacksonProvider atau pastikan untuk mengonfigurasi ObjectMapper secara manual dengan cara yang dijelaskan di atas. Perhatian serupa harus diambil saat menggunakan KeycloakBuilder untuk membuat klien admin dan klien RestEasy yang secara manual disuntikkan dan dibuat.