@Override public FederatedIdentityModel getFederatedIdentity(UserModel user, String socialProvider, RealmModel realm) { logger.tracev("getFederatedIdentity: {0} {1}", user.getUsername(), socialProvider); String cacheKey = getFederatedIdentityLinksCacheKey(user.getId()); if (realmInvalidations.contains(realm.getId()) || invalidations.contains(user.getId()) || invalidations.contains(cacheKey)) { return getDelegate().getFederatedIdentity(user, socialProvider, realm); } Set<FederatedIdentityModel> federatedIdentities = getFederatedIdentities(user, realm); for (FederatedIdentityModel socialLink : federatedIdentities) { if (socialLink.getIdentityProvider().equals(socialProvider)) { return socialLink; } } return null; }
protected void fullyInvalidateUser(RealmModel realm, UserModel user) { Set<FederatedIdentityModel> federatedIdentities = realm.isIdentityFederationEnabled() ? getFederatedIdentities(user, realm) : null; UserFullInvalidationEvent event = UserFullInvalidationEvent.create(user.getId(), user.getUsername(), user.getEmail(), realm.getId(), realm.isIdentityFederationEnabled(), federatedIdentities); cache.fullUserInvalidation(user.getId(), user.getUsername(), user.getEmail(), realm.getId(), realm.isIdentityFederationEnabled(), event.getFederatedIdentities(), invalidations); invalidationEvents.add(event); }