private BrokerLinkEntity getBrokerLinkEntity(RealmModel realm, String userId, String socialProvider) { TypedQuery<BrokerLinkEntity> query = em.createNamedQuery("findBrokerLinkByUserAndProvider", BrokerLinkEntity.class) .setParameter("userId", userId) .setParameter("realmId", realm.getId()) .setParameter("identityProvider", socialProvider); List<BrokerLinkEntity> results = query.getResultList(); return results.size() > 0 ? results.get(0) : null; }
public UserListQuery(Long revisioned, String id, RealmModel realm, String user) { super(revisioned, id); this.realm = realm.getId(); this.realmName = realm.getName(); this.users = new HashSet<>(); this.users.add(user); }
public ClientListQuery(Long revisioned, String id, RealmModel realm, Set<String> clients) { super(revisioned, id); this.realm = realm.getId(); this.realmName = realm.getName(); this.clients = clients; }
public ClientListQuery(Long revisioned, String id, RealmModel realm, String client) { super(revisioned, id); this.realm = realm.getId(); this.realmName = realm.getName(); this.clients = new HashSet<>(); this.clients.add(client); }
public GroupListQuery(Long revisioned, String id, RealmModel realm, Set<String> groups) { super(revisioned, id); this.realm = realm.getId(); this.realmName = realm.getName(); this.groups = groups; }
default List<UserStorageProviderModel> getUserStorageProviders() { List<UserStorageProviderModel> list = new LinkedList<>(); for (ComponentModel component : getComponents(getId(), UserStorageProvider.class.getName())) { list.add(new UserStorageProviderModel(component)); } Collections.sort(list, UserStorageProviderModel.comparator); return list; }
@Override public void updateLastSessionRefreshes(RealmModel realm, int lastSessionRefresh, Collection<String> userSessionIds, boolean offline) { String offlineStr = offlineToString(offline); int us = em.createNamedQuery("updateUserSessionLastSessionRefresh") .setParameter("lastSessionRefresh", lastSessionRefresh) .setParameter("realmId", realm.getId()) .setParameter("offline", offlineStr) .setParameter("userSessionIds", userSessionIds) .executeUpdate(); logger.debugf("Updated lastSessionRefresh of %d user sessions in realm '%s'", us, realm.getName()); }
@Override public void moveGroup(RealmModel realm, GroupModel group, GroupModel toParent) { invalidateGroup(group.getId(), realm.getId(), true); if (toParent != null) invalidateGroup(group.getId(), realm.getId(), false); // Queries already invalidated listInvalidations.add(realm.getId()); invalidationEvents.add(GroupMovedEvent.create(group, toParent, realm.getId())); getRealmDelegate().moveGroup(realm, group, toParent); }
@Override public void grantToAllUsers(RealmModel realm, RoleModel role) { realmInvalidations.add(realm.getId()); // easier to just invalidate whole realm getDelegate().grantToAllUsers(realm, role); }
@Override public void preRemove(RealmModel realm, ClientModel client) { realmInvalidations.add(realm.getId()); // easier to just invalidate whole realm getDelegate().preRemove(realm, client); }
@Override public void onRealmRemoved(RealmModel realm) { // Send message to all DCs. The remoteCache will notify client listeners on all DCs for remove authentication sessions clusterEventsSenderTx.addEvent( RealmRemovedSessionEvent.createEvent(RealmRemovedSessionEvent.class, InfinispanAuthenticationSessionProviderFactory.REALM_REMOVED_AUTHSESSION_EVENT, session, realm.getId(), false), ClusterProvider.DCNotify.ALL_DCS); }
@Override public void onRealmRemoved(RealmModel realm) { // Don't send message to all DCs, just to all cluster nodes in current DC. The remoteCache will notify client listeners for removed userSessions. clusterEventsSenderTx.addEvent( RealmRemovedSessionEvent.createEvent(RealmRemovedSessionEvent.class, InfinispanUserSessionProviderFactory.REALM_REMOVED_SESSION_EVENT, session, realm.getId(), true), ClusterProvider.DCNotify.LOCAL_DC_ONLY); }
@Override public ClientModel getClientById(String id, RealmModel realm) { MongoClientEntity appData = getMongoStore().loadEntity(MongoClientEntity.class, id, invocationContext); // Check if application belongs to this realm if (appData == null || !realm.getId().equals(appData.getRealmId())) { return null; } return new ClientAdapter(session, realm, appData, invocationContext); }
protected void removeUserSessions(RealmModel realm, UserModel user, boolean offline) { Cache<String, SessionEntity> cache = getCache(offline); Iterator<String> itr = cache.entrySet().stream().filter(UserSessionPredicate.create(realm.getId()).user(user.getId())).map(Mappers.sessionId()).iterator(); while (itr.hasNext()) { removeUserSession(realm, itr.next(), offline); } }
@Override public RealmModel createRealm(String name) { RealmModel realm = getDelegate().createRealm(name); if (!cache.isEnabled()) return realm; registerRealmInvalidation(realm.getId()); return realm; }
@Override public void onUserRemoved(RealmModel realm, UserModel user) { removeUserSessions(realm, user, true); removeUserSessions(realm, user, false); loginFailureCache.remove(new LoginFailureKey(realm.getId(), user.getUsername())); loginFailureCache.remove(new LoginFailureKey(realm.getId(), user.getEmail())); }
@Override public List<String> getUsersByUserAttribute(RealmModel realm, String name, String value) { QueryBuilder queryBuilder = new QueryBuilder() .and("realmId").is(realm.getId()); queryBuilder.and("attributes." + name).is(value); List<FederatedUser> users = getMongoStore().loadEntities(FederatedUser.class, queryBuilder.get(), invocationContext); List<String> ids = new LinkedList<>(); for (FederatedUser user : users) ids.add(user.getId()); return ids; }
@Override public List<UserSessionModel> getUserSessionByBrokerUserId(RealmModel realm, String brokerUserId) { Map<String, UserSessionEntity> sessions = new MapReduceTask(sessionCache) .mappedWith(UserSessionMapper.create(realm.getId()).brokerUserId(brokerUserId)) .reducedWith(new FirstResultReducer()) .execute(); return wrapUserSessions(realm, sessions.values(), false); }
@Override public void removeAllUserLoginFailures(RealmModel realm) { Map<LoginFailureKey, Object> sessions = new MapReduceTask(loginFailureCache) .mappedWith(UserLoginFailureMapper.create(realm.getId()).emitKey()) .reducedWith(new FirstResultReducer()) .execute(); for (LoginFailureKey id : sessions.keySet()) { tx.remove(loginFailureCache, id); } }
@Override public RoleModel addRealmRole(RealmModel realm, String id, String name) { MongoRoleEntity roleEntity = new MongoRoleEntity(); roleEntity.setId(id); roleEntity.setName(name); roleEntity.setRealmId(realm.getId()); getMongoStore().insertEntity(roleEntity, invocationContext); return new RoleAdapter(session, realm, roleEntity, realm, invocationContext); }