Search in sources :

Example 1 with BadRequestException

use of org.apache.syncope.ext.scimv2.api.BadRequestException in project syncope by apache.

the class SCIMDataBinder method toUserTO.

public UserTO toUserTO(final SCIMUser user) {
    if (!USER_SCHEMAS.equals(user.getSchemas()) && !ENTERPRISE_USER_SCHEMAS.equals(user.getSchemas())) {
        throw new BadRequestException(ErrorType.invalidValue);
    }
    UserTO userTO = new UserTO();
    userTO.setRealm(SyncopeConstants.ROOT_REALM);
    userTO.setKey(user.getId());
    userTO.setPassword(user.getPassword());
    userTO.setUsername(user.getUserName());
    SCIMConf conf = confManager.get();
    if (conf.getUserConf() != null) {
        if (conf.getUserConf().getName() != null && user.getName() != null) {
            if (conf.getUserConf().getName().getFamilyName() != null && user.getName().getFamilyName() != null) {
                userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getName().getFamilyName()).value(user.getName().getFamilyName()).build());
            }
            if (conf.getUserConf().getName().getFormatted() != null && user.getName().getFormatted() != null) {
                userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getName().getFormatted()).value(user.getName().getFormatted()).build());
            }
            if (conf.getUserConf().getName().getGivenName() != null && user.getName().getGivenName() != null) {
                userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getName().getGivenName()).value(user.getName().getGivenName()).build());
            }
            if (conf.getUserConf().getName().getHonorificPrefix() != null && user.getName().getHonorificPrefix() != null) {
                userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getName().getHonorificPrefix()).value(user.getName().getHonorificPrefix()).build());
            }
            if (conf.getUserConf().getName().getHonorificSuffix() != null && user.getName().getHonorificSuffix() != null) {
                userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getName().getHonorificSuffix()).value(user.getName().getHonorificSuffix()).build());
            }
            if (conf.getUserConf().getName().getMiddleName() != null && user.getName().getMiddleName() != null) {
                userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getName().getMiddleName()).value(user.getName().getMiddleName()).build());
            }
        }
        if (conf.getUserConf().getDisplayName() != null && user.getDisplayName() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getDisplayName()).value(user.getDisplayName()).build());
        }
        if (conf.getUserConf().getNickName() != null && user.getNickName() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getNickName()).value(user.getNickName()).build());
        }
        if (conf.getUserConf().getProfileUrl() != null && user.getProfileUrl() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getProfileUrl()).value(user.getProfileUrl()).build());
        }
        if (conf.getUserConf().getTitle() != null && user.getTitle() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getTitle()).value(user.getTitle()).build());
        }
        if (conf.getUserConf().getUserType() != null && user.getUserType() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getUserType()).value(user.getUserType()).build());
        }
        if (conf.getUserConf().getPreferredLanguage() != null && user.getPreferredLanguage() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getPreferredLanguage()).value(user.getPreferredLanguage()).build());
        }
        if (conf.getUserConf().getLocale() != null && user.getLocale() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getLocale()).value(user.getLocale()).build());
        }
        if (conf.getUserConf().getTimezone() != null && user.getTimezone() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getTimezone()).value(user.getTimezone()).build());
        }
        fill(userTO.getPlainAttrs(), conf.getUserConf().getEmails(), user.getEmails());
        fill(userTO.getPlainAttrs(), conf.getUserConf().getPhoneNumbers(), user.getPhoneNumbers());
        fill(userTO.getPlainAttrs(), conf.getUserConf().getIms(), user.getIms());
        fill(userTO.getPlainAttrs(), conf.getUserConf().getPhotos(), user.getPhotos());
        user.getAddresses().stream().filter(address -> address.getType() != null).forEach(address -> {
            Optional<SCIMUserAddressConf> addressConf = conf.getUserConf().getAddresses().stream().filter(object -> address.getType().equals(object.getType().name())).findFirst();
            if (addressConf.isPresent()) {
                if (addressConf.get().getFormatted() != null && address.getFormatted() != null) {
                    userTO.getPlainAttrs().add(new AttrTO.Builder().schema(addressConf.get().getFormatted()).value(address.getFormatted()).build());
                }
                if (addressConf.get().getStreetAddress() != null && address.getStreetAddress() != null) {
                    userTO.getPlainAttrs().add(new AttrTO.Builder().schema(addressConf.get().getStreetAddress()).value(address.getStreetAddress()).build());
                }
                if (addressConf.get().getLocality() != null && address.getLocality() != null) {
                    userTO.getPlainAttrs().add(new AttrTO.Builder().schema(addressConf.get().getLocality()).value(address.getLocality()).build());
                }
                if (addressConf.get().getRegion() != null && address.getFormatted() != null) {
                    userTO.getPlainAttrs().add(new AttrTO.Builder().schema(addressConf.get().getFormatted()).value(address.getFormatted()).build());
                }
                if (addressConf.get().getPostalCode() != null && address.getPostalCode() != null) {
                    userTO.getPlainAttrs().add(new AttrTO.Builder().schema(addressConf.get().getPostalCode()).value(address.getPostalCode()).build());
                }
                if (addressConf.get().getCountry() != null && address.getCountry() != null) {
                    userTO.getPlainAttrs().add(new AttrTO.Builder().schema(addressConf.get().getCountry()).value(address.getCountry()).build());
                }
            }
        });
        for (int i = 0; i < user.getX509Certificates().size(); i++) {
            Value certificate = user.getX509Certificates().get(i);
            if (conf.getUserConf().getX509Certificates().size() > i) {
                userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getUserConf().getX509Certificates().get(i)).value(certificate.getValue()).build());
            }
        }
    }
    if (conf.getEnterpriseUserConf() != null) {
        if (conf.getEnterpriseUserConf().getEmployeeNumber() != null && user.getEnterpriseInfo().getEmployeeNumber() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getEnterpriseUserConf().getEmployeeNumber()).value(user.getEnterpriseInfo().getEmployeeNumber()).build());
        }
        if (conf.getEnterpriseUserConf().getCostCenter() != null && user.getEnterpriseInfo().getCostCenter() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getEnterpriseUserConf().getCostCenter()).value(user.getEnterpriseInfo().getCostCenter()).build());
        }
        if (conf.getEnterpriseUserConf().getOrganization() != null && user.getEnterpriseInfo().getOrganization() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getEnterpriseUserConf().getOrganization()).value(user.getEnterpriseInfo().getOrganization()).build());
        }
        if (conf.getEnterpriseUserConf().getDivision() != null && user.getEnterpriseInfo().getDivision() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getEnterpriseUserConf().getDivision()).value(user.getEnterpriseInfo().getDivision()).build());
        }
        if (conf.getEnterpriseUserConf().getDepartment() != null && user.getEnterpriseInfo().getDepartment() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getEnterpriseUserConf().getDepartment()).value(user.getEnterpriseInfo().getDepartment()).build());
        }
        if (conf.getEnterpriseUserConf().getManager() != null && conf.getEnterpriseUserConf().getManager().getKey() != null && user.getEnterpriseInfo().getManager() != null && user.getEnterpriseInfo().getManager().getValue() != null) {
            userTO.getPlainAttrs().add(new AttrTO.Builder().schema(conf.getEnterpriseUserConf().getManager().getKey()).value(user.getEnterpriseInfo().getManager().getValue()).build());
        }
    }
    user.getGroups().forEach(group -> {
        userTO.getMemberships().add(new MembershipTO.Builder().group(group.getValue()).build());
    });
    user.getRoles().forEach(role -> {
        userTO.getRoles().add(role.getValue());
    });
    return userTO;
}
Also used : Arrays(java.util.Arrays) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException) Group(org.apache.syncope.ext.scimv2.api.data.Group) AttrTO(org.apache.syncope.common.lib.to.AttrTO) EntityTOUtils(org.apache.syncope.common.lib.EntityTOUtils) SCIMUserAddressConf(org.apache.syncope.common.lib.scim.SCIMUserAddressConf) ErrorType(org.apache.syncope.ext.scimv2.api.type.ErrorType) LoggerFactory(org.slf4j.LoggerFactory) OrderByClause(org.apache.syncope.core.persistence.api.dao.search.OrderByClause) SCIMUserAddress(org.apache.syncope.ext.scimv2.api.data.SCIMUserAddress) Autowired(org.springframework.beans.factory.annotation.Autowired) HashMap(java.util.HashMap) StringUtils(org.apache.commons.lang3.StringUtils) ArrayList(java.util.ArrayList) Map(java.util.Map) SCIMUserManager(org.apache.syncope.ext.scimv2.api.data.SCIMUserManager) MembershipTO(org.apache.syncope.common.lib.to.MembershipTO) SCIMComplexValue(org.apache.syncope.ext.scimv2.api.data.SCIMComplexValue) SyncopeConstants(org.apache.syncope.common.lib.SyncopeConstants) SCIMGroup(org.apache.syncope.ext.scimv2.api.data.SCIMGroup) Logger(org.slf4j.Logger) SearchCond(org.apache.syncope.core.persistence.api.dao.search.SearchCond) Value(org.apache.syncope.ext.scimv2.api.data.Value) SCIMUserName(org.apache.syncope.ext.scimv2.api.data.SCIMUserName) SCIMEnterpriseInfo(org.apache.syncope.ext.scimv2.api.data.SCIMEnterpriseInfo) Set(java.util.Set) GroupTO(org.apache.syncope.common.lib.to.GroupTO) AuthDataAccessor(org.apache.syncope.core.spring.security.AuthDataAccessor) Function(org.apache.syncope.ext.scimv2.api.type.Function) SCIMUser(org.apache.syncope.ext.scimv2.api.data.SCIMUser) List(java.util.List) Meta(org.apache.syncope.ext.scimv2.api.data.Meta) Component(org.springframework.stereotype.Component) Resource(org.apache.syncope.ext.scimv2.api.type.Resource) SCIMComplexConf(org.apache.syncope.common.lib.scim.SCIMComplexConf) SCIMConf(org.apache.syncope.common.lib.scim.SCIMConf) AnyDAO(org.apache.syncope.core.persistence.api.dao.AnyDAO) SCIMConfManager(org.apache.syncope.core.logic.scim.SCIMConfManager) Member(org.apache.syncope.ext.scimv2.api.data.Member) Optional(java.util.Optional) UserTO(org.apache.syncope.common.lib.to.UserTO) MembershipCond(org.apache.syncope.core.persistence.api.dao.search.MembershipCond) Collections(java.util.Collections) UserTO(org.apache.syncope.common.lib.to.UserTO) SCIMUserAddressConf(org.apache.syncope.common.lib.scim.SCIMUserAddressConf) MembershipTO(org.apache.syncope.common.lib.to.MembershipTO) SCIMComplexValue(org.apache.syncope.ext.scimv2.api.data.SCIMComplexValue) Value(org.apache.syncope.ext.scimv2.api.data.Value) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException) SCIMConf(org.apache.syncope.common.lib.scim.SCIMConf)

Example 2 with BadRequestException

use of org.apache.syncope.ext.scimv2.api.BadRequestException in project syncope by apache.

the class UserServiceImpl method replace.

@Override
public Response replace(final String id, final SCIMUser user) {
    if (!id.equals(user.getId())) {
        throw new BadRequestException(ErrorType.invalidPath, "Expected " + id + ", found " + user.getId());
    }
    ResponseBuilder builder = checkETag(Resource.User, id);
    if (builder != null) {
        return builder.build();
    }
    ProvisioningResult<UserTO> result = userLogic().update(AnyOperations.diff(binder().toUserTO(user), userLogic().read(id), false), false);
    return updateResponse(result.getEntity().getKey(), binder().toSCIMUser(result.getEntity(), uriInfo.getAbsolutePathBuilder().path(result.getEntity().getKey()).build().toASCIIString(), Collections.<String>emptyList(), Collections.<String>emptyList()));
}
Also used : UserTO(org.apache.syncope.common.lib.to.UserTO) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException) ResponseBuilder(javax.ws.rs.core.Response.ResponseBuilder)

Example 3 with BadRequestException

use of org.apache.syncope.ext.scimv2.api.BadRequestException in project syncope by apache.

the class SearchCondConverter method convert.

public static SearchCond convert(final SearchCondVisitor visitor, final String filter) {
    SCIMFilterParser parser = new SCIMFilterParser(new CommonTokenStream(new SCIMFilterLexer(CharStreams.fromString(filter))));
    parser.setBuildParseTree(true);
    parser.setTrimParseTree(true);
    parser.setProfile(true);
    parser.removeErrorListeners();
    parser.setErrorHandler(new SCIMFilterErrorHandler());
    try {
        return visitor.visit(parser.scimFilter());
    } catch (Exception e) {
        LOG.error("Could not parse '{}'", filter, e);
        throw new BadRequestException(ErrorType.invalidFilter, "Could not parse '" + filter + "'");
    }
}
Also used : CommonTokenStream(org.antlr.v4.runtime.CommonTokenStream) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException)

Example 4 with BadRequestException

use of org.apache.syncope.ext.scimv2.api.BadRequestException in project syncope by apache.

the class AbstractService method doSearch.

@SuppressWarnings("unchecked")
protected ListResponse<R> doSearch(final Resource type, final SCIMSearchRequest request) {
    if (type == null) {
        throw new UnsupportedOperationException();
    }
    if (request.getCount() > confManager().get().getFilterMaxResults()) {
        throw new BadRequestException(ErrorType.tooMany, "Too many results requested");
    }
    SearchCondVisitor visitor = new SearchCondVisitor(type, confManager().get());
    int startIndex = request.getStartIndex() <= 1 ? 1 : (request.getStartIndex() / AnyDAO.DEFAULT_PAGE_SIZE) + 1;
    int itemsPerPage = request.getCount() <= 1 ? AnyDAO.DEFAULT_PAGE_SIZE : request.getCount();
    List<OrderByClause> sort;
    if (request.getSortBy() == null) {
        sort = Collections.<OrderByClause>emptyList();
    } else {
        OrderByClause clause = new OrderByClause();
        clause.setField(visitor.createAttributeCond(request.getSortBy()).getSchema());
        clause.setDirection(request.getSortOrder() == null || request.getSortOrder() == SortOrder.ascending ? OrderByClause.Direction.ASC : OrderByClause.Direction.DESC);
        sort = Collections.singletonList(clause);
    }
    Pair<Integer, ? extends List<? extends AnyTO>> result = anyLogic(type).search(StringUtils.isBlank(request.getFilter()) ? null : SearchCondConverter.convert(visitor, request.getFilter()), startIndex, itemsPerPage, sort, SyncopeConstants.ROOT_REALM, false);
    if (result.getLeft() > confManager().get().getFilterMaxResults()) {
        throw new BadRequestException(ErrorType.tooMany, "Too many results found");
    }
    ListResponse<R> response = new ListResponse<>(result.getLeft(), startIndex == 1 ? 1 : startIndex - 1, itemsPerPage);
    result.getRight().forEach(anyTO -> {
        SCIMResource resource = null;
        if (anyTO instanceof UserTO) {
            resource = binder().toSCIMUser((UserTO) anyTO, uriInfo.getAbsolutePathBuilder().path(anyTO.getKey()).build().toASCIIString(), request.getAttributes(), request.getExcludedAttributes());
        } else if (anyTO instanceof GroupTO) {
            resource = binder().toSCIMGroup((GroupTO) anyTO, uriInfo.getAbsolutePathBuilder().path(anyTO.getKey()).build().toASCIIString(), request.getAttributes(), request.getExcludedAttributes());
        }
        if (resource != null) {
            response.getResources().add((R) resource);
        }
    });
    return response;
}
Also used : SCIMResource(org.apache.syncope.ext.scimv2.api.data.SCIMResource) ListResponse(org.apache.syncope.ext.scimv2.api.data.ListResponse) GroupTO(org.apache.syncope.common.lib.to.GroupTO) OrderByClause(org.apache.syncope.core.persistence.api.dao.search.OrderByClause) UserTO(org.apache.syncope.common.lib.to.UserTO) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException) SearchCondVisitor(org.apache.syncope.core.logic.scim.SearchCondVisitor)

Example 5 with BadRequestException

use of org.apache.syncope.ext.scimv2.api.BadRequestException in project syncope by apache.

the class GroupServiceImpl method replace.

@Override
public Response replace(final String id, final SCIMGroup group) {
    if (!id.equals(group.getId())) {
        throw new BadRequestException(ErrorType.invalidPath, "Expected " + id + ", found " + group.getId());
    }
    ResponseBuilder builder = checkETag(Resource.Group, id);
    if (builder != null) {
        return builder.build();
    }
    // save current group members
    Set<String> beforeMembers = new HashSet<>();
    MembershipCond membCond = new MembershipCond();
    membCond.setGroup(id);
    SearchCond searchCond = SearchCond.getLeafCond(membCond);
    int count = userLogic().search(searchCond, 1, 1, Collections.<OrderByClause>emptyList(), SyncopeConstants.ROOT_REALM, false).getLeft();
    for (int page = 1; page <= (count / AnyDAO.DEFAULT_PAGE_SIZE) + 1; page++) {
        beforeMembers.addAll(userLogic().search(searchCond, page, AnyDAO.DEFAULT_PAGE_SIZE, Collections.<OrderByClause>emptyList(), SyncopeConstants.ROOT_REALM, false).getRight().stream().map(EntityTO::getKey).collect(Collectors.toSet()));
    }
    // update group, don't change members
    ProvisioningResult<GroupTO> result = groupLogic().update(AnyOperations.diff(binder().toGroupTO(group), groupLogic().read(id), false), false);
    // assign new members
    Set<String> afterMembers = new HashSet<>();
    group.getMembers().forEach(member -> {
        afterMembers.add(member.getValue());
        if (!beforeMembers.contains(member.getValue())) {
            UserPatch patch = new UserPatch();
            patch.setKey(member.getValue());
            patch.getMemberships().add(new MembershipPatch.Builder().operation(PatchOperation.ADD_REPLACE).group(result.getEntity().getKey()).build());
            try {
                userLogic().update(patch, false);
            } catch (Exception e) {
                LOG.error("While setting membership of {} to {}", result.getEntity().getKey(), member.getValue(), e);
            }
        }
    });
    // remove unconfirmed members
    beforeMembers.stream().filter(member -> !afterMembers.contains(member)).forEach(user -> {
        UserPatch patch = new UserPatch();
        patch.setKey(user);
        patch.getMemberships().add(new MembershipPatch.Builder().operation(PatchOperation.DELETE).group(result.getEntity().getKey()).build());
        try {
            userLogic().update(patch, false);
        } catch (Exception e) {
            LOG.error("While removing membership of {} from {}", result.getEntity().getKey(), user, e);
        }
    });
    return updateResponse(result.getEntity().getKey(), binder().toSCIMGroup(result.getEntity(), uriInfo.getAbsolutePathBuilder().path(result.getEntity().getKey()).build().toASCIIString(), Collections.<String>emptyList(), Collections.<String>emptyList()));
}
Also used : Arrays(java.util.Arrays) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException) ErrorType(org.apache.syncope.ext.scimv2.api.type.ErrorType) OrderByClause(org.apache.syncope.core.persistence.api.dao.search.OrderByClause) ArrayUtils(org.apache.commons.lang3.ArrayUtils) UserPatch(org.apache.syncope.common.lib.patch.UserPatch) ProvisioningResult(org.apache.syncope.common.lib.to.ProvisioningResult) StringUtils(org.apache.commons.lang3.StringUtils) HashSet(java.util.HashSet) MembershipPatch(org.apache.syncope.common.lib.patch.MembershipPatch) EntityTO(org.apache.syncope.common.lib.to.EntityTO) SortOrder(org.apache.syncope.ext.scimv2.api.type.SortOrder) ListResponse(org.apache.syncope.ext.scimv2.api.data.ListResponse) ResponseBuilder(javax.ws.rs.core.Response.ResponseBuilder) SyncopeConstants(org.apache.syncope.common.lib.SyncopeConstants) SCIMGroup(org.apache.syncope.ext.scimv2.api.data.SCIMGroup) SearchCond(org.apache.syncope.core.persistence.api.dao.search.SearchCond) Set(java.util.Set) GroupTO(org.apache.syncope.common.lib.to.GroupTO) Collectors(java.util.stream.Collectors) Resource(org.apache.syncope.ext.scimv2.api.type.Resource) Response(javax.ws.rs.core.Response) AnyDAO(org.apache.syncope.core.persistence.api.dao.AnyDAO) PatchOperation(org.apache.syncope.common.lib.types.PatchOperation) SCIMSearchRequest(org.apache.syncope.ext.scimv2.api.data.SCIMSearchRequest) Member(org.apache.syncope.ext.scimv2.api.data.Member) GroupService(org.apache.syncope.ext.scimv2.api.service.GroupService) MembershipCond(org.apache.syncope.core.persistence.api.dao.search.MembershipCond) Collections(java.util.Collections) AnyOperations(org.apache.syncope.common.lib.AnyOperations) ResponseBuilder(javax.ws.rs.core.Response.ResponseBuilder) MembershipCond(org.apache.syncope.core.persistence.api.dao.search.MembershipCond) UserPatch(org.apache.syncope.common.lib.patch.UserPatch) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException) GroupTO(org.apache.syncope.common.lib.to.GroupTO) EntityTO(org.apache.syncope.common.lib.to.EntityTO) OrderByClause(org.apache.syncope.core.persistence.api.dao.search.OrderByClause) BadRequestException(org.apache.syncope.ext.scimv2.api.BadRequestException) SearchCond(org.apache.syncope.core.persistence.api.dao.search.SearchCond) ResponseBuilder(javax.ws.rs.core.Response.ResponseBuilder) HashSet(java.util.HashSet)

Aggregations

BadRequestException (org.apache.syncope.ext.scimv2.api.BadRequestException)6 GroupTO (org.apache.syncope.common.lib.to.GroupTO)4 UserTO (org.apache.syncope.common.lib.to.UserTO)3 OrderByClause (org.apache.syncope.core.persistence.api.dao.search.OrderByClause)3 Arrays (java.util.Arrays)2 Collections (java.util.Collections)2 Set (java.util.Set)2 ResponseBuilder (javax.ws.rs.core.Response.ResponseBuilder)2 StringUtils (org.apache.commons.lang3.StringUtils)2 SyncopeConstants (org.apache.syncope.common.lib.SyncopeConstants)2 AnyDAO (org.apache.syncope.core.persistence.api.dao.AnyDAO)2 MembershipCond (org.apache.syncope.core.persistence.api.dao.search.MembershipCond)2 SearchCond (org.apache.syncope.core.persistence.api.dao.search.SearchCond)2 ListResponse (org.apache.syncope.ext.scimv2.api.data.ListResponse)2 Member (org.apache.syncope.ext.scimv2.api.data.Member)2 SCIMGroup (org.apache.syncope.ext.scimv2.api.data.SCIMGroup)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 List (java.util.List)1