나는 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 관리 콘솔 (이벤트/구성/관리자 이벤트 설정)을 통해 관리자 이벤트를 켜야합니다. "이벤트 저장"및 "표현 포함"을 모두 ON으로 설정하십시오.
사용자를 모두 한 번에 불러야하거나 로그인 할 때이 작업을 수행 할 수 있습니까? – stdunbar
사용자가 로그인 할 때 Keycloak 액세스 토큰 종점을 사용하여 로그인 할 때 사용자를 추가 할 수 없으므로 API에서 로그인 이벤트를 차단할 수 없습니다. –