protected List<UserModel> query(PaginatedQuery pagedQuery, RealmModel realm, int firstResult, int maxResults) { List<UserModel> results = new LinkedList<UserModel>(); if (maxResults == 0) return results; int first = firstResult; int max = maxResults; do { List<UserModel> query = pagedQuery.query(realm, first, max); if (query == null || query.size() == 0) return results; int added = 0; for (UserModel user : query) { user = validateAndProxyUser(realm, user); if (user == null) continue; results.add(user); added++; } if (results.size() == maxResults) return results; if (query.size() < max) return results; first = query.size(); max -= added; if (max <= 0) return results; } while (true); }
@Override public UserModel getUserById(String id, RealmModel realm) { UserModel user = session.userStorage().getUserById(id, realm); if (user != null) { user = validateAndProxyUser(realm, user); } return user; }
@Override public UserModel getUserByFederatedIdentity(FederatedIdentityModel socialLink, RealmModel realm) { UserModel user = session.userStorage().getUserByFederatedIdentity(socialLink, realm); if (user != null) { user = validateAndProxyUser(realm, user); } return user; }
@Override public UserModel getUserByServiceAccountClient(ClientModel client) { UserModel user = session.userStorage().getUserByServiceAccountClient(client); if (user != null) { user = validateAndProxyUser(client.getRealm(), user); } return user; }
@Override public UserModel getUserByUsername(String username, RealmModel realm) { UserModel user = session.userStorage().getUserByUsername(username.toLowerCase(), realm); if (user != null) { user = validateAndProxyUser(realm, user); if (user != null) return user; } for (UserFederationProviderModel federation : realm.getUserFederationProviders()) { UserFederationProvider fed = getFederationProvider(federation); user = fed.getUserByUsername(realm, username); if (user != null) return user; } return user; }
@Override public UserModel getUserByEmail(String email, RealmModel realm) { UserModel user = session.userStorage().getUserByEmail(email.toLowerCase(), realm); if (user != null) { user = validateAndProxyUser(realm, user); if (user != null) return user; } for (UserFederationProviderModel federation : realm.getUserFederationProviders()) { UserFederationProvider fed = getFederationProvider(federation); user = fed.getUserByEmail(realm, email); if (user != null) return user; } return user; }