私はEventListenerSpiに基づいてKeycloakプラグインを実装します。 EventListenerProviderの実装では、ユーザー管理イベントのみに集中できます。すべてのユーザーデータとJSONオブジェクトを返す
public class SyncEventListener implements EventListenerProvider
{
private static final List<OperationType> SYNC_OPERATIONS = Arrays.asList(OperationType.CREATE, OperationType.UPDATE, OperationType.DELETE);
@Override
public void close() {}
@Override
public void onEvent(Event event) {}
@Override
public void onEvent(AdminEvent event, boolean includeRepresentation)
{
if ((event.getResourceType() == ResourceType.USER) && SYNC_OPERATIONS.contains(event.getOperationType()))
{
// Write user data to external message queue or database
externalStore.write(event.getOperationType(), event.getRepresentation());
}
}
}
event.getRepresentation()。 もちろん、Keycloak管理コンソール(Events/Config/Admin Events Settings)で管理イベントを有効にする必要があります。 [イベントを保存]と[表現を含める]の両方をオンにします。
あなたは一度にすべてのユーザーを必要としますか、ログインする際にこれを行うことはできますか? – stdunbar
私は自分のログイン時にユーザーを追加できません。ユーザーにログインするためにKeycloakアクセストークンエンドポイントを使用しているため、私のAPIからログインイベントを傍受できません。 –