@Override
    public ResultPage<User> find(final FindUserCriteria criteria) {
        final List<String> fields = ExpressionUtil.fields(criteria.getExpression());

        Condition condition = expressionMapper.apply(criteria.getExpression());
        if (criteria.isActiveUsersOnly()) {
            condition = condition.and(STROOM_USER.ENABLED.isTrue());
        }

        final Collection<OrderField<?>> orderFields = createOrderFields(criteria);
        final int limit = JooqUtil.getLimit(criteria.getPageRequest(), true);
        final int offset = JooqUtil.getOffset(criteria.getPageRequest());

        LOGGER.debug("find - criteria: {}, fields: {}, condition: {}, limit: {}, offset: {}",
                criteria, fields, condition, limit, offset);

        final List<User> list;
        if (fields.contains(UserFields.PARENTS_OF.getFldName())) {
            list = getParentsOf(condition, orderFields, offset, limit);
        } else if (fields.contains(UserFields.CHILDREN_OF.getFldName())) {
            list = getChildrenOf(condition, orderFields, offset, limit);
        } else {
            list = getMatchingUsersOrGroups(condition, orderFields, offset, limit);
        }

        return ResultPage.createCriterialBasedList(list, criteria);
    }
Get user or group by their UUID.
stroom-security/stroom-security-impl-db/src/main/java/stroom/security/impl/db/UserDaoImpl.java