Mengonfigurasi Provider
Server dibangun dengan pertimbangan pada ekstensibilitas dan untuk itu menyediakan beberapa Antarmuka Penyedia Layanan atau SPI, masing-masing bertanggung jawab untuk menyediakan kemampuan tertentu ke server. Dalam panduan ini, Anda akan memahami konsep inti tentang konfigurasi SPI dan penyedia mereka yang masing-masing.
Setelah membaca panduan ini, Anda harus dapat menggunakan konsep dan langkah yang dijelaskan di sini untuk menginstal, menghapus, mengaktifkan, menonaktifkan, dan mengonfigurasi penyedia mana saja, termasuk mereka yang telah Anda implementasikan untuk memperluas kemampuan server untuk lebih baik memenuhi kebutuhan Anda.
Format Opsi Konfigurasi
Penyedia dapat dikonfigurasi dengan menggunakan format konfigurasi tertentu. Format terdiri dari:
spi-<spi-id>--<provider-id>--<property>=<value>Atau jika tidak ada kemungkinan kebingungan antara beberapa penyedia:
spi-<spi-id>-<provider-id>-<property>=<value><spi-id> adalah nama SPI yang ingin Anda konfigurasi.
<provider-id> adalah id dari penyedia yang ingin Anda konfigurasi. Ini adalah id yang diatur ke implementasi pabrik penyedia yang sesuai.
<property> adalah nama properti aktual yang ingin Anda atur untuk penyedia tertentu.
nama properti enabled dilindungi secara efektif untuk mengaktifkan / menonaktifkan penyedia
Semua nama tersebut (untuk spi, penyedia, dan properti) harus dalam huruf kecil dan jika nama dalam bentuk camel-case seperti myKeycloakProvider, harus termasuk tanda hubung (-) sebelum huruf kapital sebagai berikut: my-keycloak-provider.
Mengambil HttpClientSpi SPI sebagai contoh, nama SPI adalah connectionsHttpClient dan salah satu implementasi penyedia yang tersedia bernama default. Untuk mengatur properti connectionPoolSize Anda akan menggunakan opsi konfigurasi sebagai berikut:
spi-connections-http-client--default--connection-pool-size=10Mengatur Opsi Konfigurasi Penyedia
Opsi konfigurasi penyedia diberikan saat memulai server. Lihat semua sumber konfigurasi yang didukung dan format untuk opsi di Mengonfigurasi NQRust-Identity. Sebagai contoh melalui opsi baris perintah:
bin/kc.[sh|bat] start --spi-connections-http-client--default--connection-pool-size=10Opsi Waktu Pembuatan
Mengonfigurasi Satu Penyedia untuk SPI
Tergantung pada SPI, beberapa implementasi penyedia dapat berdampingan tetapi hanya satu diantaranya yang akan digunakan pada waktu runtime. Untuk SPI ini, penyedia spesifik adalah implementasi utama yang akan aktif dan digunakan pada waktu runtime. Format terdiri dari:
spi-<spi-id>--provider=<provider-id>spi-<spi-id>-provider=<provider-id> mungkin masih digunakan, tetapi server tidak akan dengan benar mendeteksi ketika perlu melakukan reaugmentation.
Untuk mengonfigurasi penyedia sebagai penyedia tunggal Anda harus menjalankan perintah build sebagai berikut:
bin/kc.[sh|bat] build --spi-email-template--provider=mycustomproviderMengonfigurasi Penyedia Default untuk SPI
Tergantung pada SPI, beberapa implementasi penyedia dapat berdampingan dan satu digunakan secara default. Untuk SPI ini, penyedia spesifik adalah implementasi default yang akan dipilih kecuali jika penyedia spesifik diminta. Format terdiri dari:
spi-<spi-id>--provider-default=<provider-id>spi-<spi-id>-provider-default=<provider-id> mungkin masih digunakan, tetapi server tidak akan dengan benar mendeteksi ketika perlu melakukan reaugmentation.
Logika berikut digunakan untuk menentukan penyedia default:
- Penyedia default yang dikonfigurasi secara eksplisit
- Penyedia dengan urutan tertinggi (penyedia dengan urutan kurang dari atau sama dengan 0 diabaikan)
- Penyedia dengan id diatur ke
default
Untuk mengonfigurasi penyedia sebagai penyedia default Anda harus menjalankan perintah build sebagai berikut:
bin/kc.[sh|bat] build --spi-password-hashing--provider-default=mycustomproviderMengaktifkan dan Menonaktifkan Penyedia
Format terdiri dari:
spi-<spi-id>--<provider-id>--enabled=<boolean>spi-<spi-id>-<provider-id>-enabled=<boolean> mungkin masih digunakan, tetapi server tidak akan dengan benar mendeteksi ketika perlu melakukan reaugmentation.
Untuk mengaktifkan atau menonaktifkan penyedia Anda harus menjalankan perintah build sebagai berikut:
bin/kc.[sh|bat] build --spi-email-template--mycustomprovider--enabled=trueUntuk menonaktifkan penyedia, gunakan perintah yang sama dan atur properti enabled ke false.
Menginstal dan Menghapus Penyedia
Penyedia kustom harus dikemas dalam file Java Archive (JAR) dan disalin ke direktori providers dari distribusi. Setelah itu, jika Anda menggunakan --optimized,
Anda harus menjalankan perintah build untuk memperbarui registri penyedia server dengan implementasi dari file JAR.
Langkah ini diperlukan untuk mengoptimalkan runtime server sehingga semua penyedia diketahui sebelumnya daripada ditemukan hanya saat memulai server atau pada waktu runtime.
Jangan instal JAR penyedia yang tidak tepercaya! Ada satu class loader untuk seluruh aplikasi, dan JAR di direktori providers diberikan prioritas di atas pustaka bawaan. Juga tidak ada sandboxing bawaan untuk state atau metode apa yang tersedia untuk logika penyedia. Penyedia dapat melakukan apa saja yang dapat dilakukan proses server termasuk akses langsung ke DB, membaca semua konfigurasi server (termasuk kredensial), dll.
Untuk menghapus penyedia, Anda harus menghapus file JAR dari direktori providers dan menjalankan perintah build lagi.
Menggunakan Dependensi Pihak Ketiga
Saat mengimplementasikan penyedia, Anda mungkin perlu menggunakan beberapa dependensi pihak ketiga yang tidak tersedia dari distribusi server.
Dalam kasus ini, Anda harus menyalin dependensi tambahan ke direktori providers dan menjalankan perintah build.
Setelah Anda melakukan itu, server akan membuat dependensi tambahan ini tersedia pada waktu runtime untuk penyedia mana saja yang bergantung padanya.