Search in sources :

Example 1 with ScimGroup

use of org.gluu.oxtrust.model.scim.ScimGroup in project oxTrust by GluuFederation.

the class BulkWebService method bulkOperation.

@POST
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response bulkOperation(@Context HttpServletRequest request, @HeaderParam("Authorization") String authorization, ScimBulkOperation operation) throws Exception {
    Response authorizationResponse = processAuthorization(authorization);
    if (authorizationResponse != null) {
        return authorizationResponse;
    }
    String domain;
    URL reconstructedURL;
    reconstructedURL = new URL(request.getScheme(), request.getServerName(), request.getServerPort(), "");
    domain = reconstructedURL.toString();
    log.info(" getting list of BulkRequest ");
    List<BulkRequests> bulkRequests = operation.getOperations();
    ScimBulkResponse scimBulkResponse = new ScimBulkResponse();
    List<BulkResponses> listResponses = new ArrayList<BulkResponses>();
    for (BulkRequests oneRequest : bulkRequests) {
        log.info(" checking operations ");
        if (oneRequest.getPath().contains("Users")) {
            log.info("  operations is for Users ");
            log.info(" method : " + oneRequest.getMethod());
            if (oneRequest.getMethod().equalsIgnoreCase("POST")) {
                log.info(" method is post ");
                String bulkId = oneRequest.getBulkId();
                String method = oneRequest.getMethod();
                ScimPerson person = oneRequest.getData();
                boolean status = createUser(person);
                if (status) {
                    log.info(" POST status is true ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setBulkId(bulkId);
                    bulkResponses.setMethod(method);
                    GluuCustomPerson gluuPerson = personService.getPersonByUid(person.getUserName());
                    String iD = gluuPerson.getInum();
                    String location = (new StringBuilder()).append(domain).append("/oxTrust/seam/resource/restv1/Users/").append(iD).toString();
                    bulkResponses.setLocation(location);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("201");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                } else if (!status) {
                    log.info(" POST status is false ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setBulkId(bulkId);
                    bulkResponses.setMethod(method);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("400");
                    result.setDescription("Request is unparseable, syntactically incorrect, or violates schema.");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                }
            } else if (oneRequest.getMethod().equalsIgnoreCase("PUT")) {
                log.info(" Status is PUT ");
                String method = oneRequest.getMethod();
                String version = oneRequest.getVersion();
                String path = oneRequest.getPath();
                ScimPerson person = oneRequest.getData();
                String personiD = getId(path);
                log.info(" Inum :  " + getId(path));
                boolean status = updateUser(personiD, person);
                if (status) {
                    log.info(" PUT status is true ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setMethod(method);
                    String iD = personiD;
                    String location = (new StringBuilder()).append(domain).append("/oxTrust/seam/resource/restv1/Users/").append(iD).toString();
                    bulkResponses.setLocation(location);
                    EntityTag eTag = new EntityTag(version, true);
                    String newVersion = eTag.getValue();
                    bulkResponses.setVersion(newVersion);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("200");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                } else if (!status) {
                    log.info(" PUT status is false ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setMethod(method);
                    bulkResponses.setVersion(version);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("400");
                    result.setDescription("Request is unparseable, syntactically incorrect, or violates schema.");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                }
            } else if (oneRequest.getMethod().equalsIgnoreCase("DELETE")) {
                log.info(" Operation is DELETE ");
                String method = oneRequest.getMethod();
                String path = oneRequest.getPath();
                String personiD = getId(path);
                boolean status = deleteUser(personiD);
                if (status) {
                    log.info(" DELETE operation is true ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setMethod(method);
                    String location = (new StringBuilder()).append(domain).append("/oxTrust/seam/resource/restv1/Users/").append(personiD).toString();
                    bulkResponses.setLocation(location);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("200");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                } else if (!status) {
                    log.info(" DELETE operation is False ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setMethod(method);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("400");
                    result.setDescription("Request is unparseable, syntactically incorrect, or violates schema.");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                }
            }
        //
        } else if (oneRequest.getPath().contains("Groups")) {
            if (oneRequest.getMethod().equalsIgnoreCase("POST")) {
                log.info(" method is post ");
                String bulkId = oneRequest.getBulkId();
                String method = oneRequest.getMethod();
                ScimGroup group = copyUtils.copy(oneRequest.getData(), null);
                boolean status = createGroup(group);
                if (status) {
                    log.info(" POST status is true ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setBulkId(bulkId);
                    bulkResponses.setMethod(method);
                    GluuGroup gluuGroup = groupService.getGroupByDisplayName(group.getDisplayName());
                    String iD = gluuGroup.getInum();
                    String location = (new StringBuilder()).append(domain).append("/oxTrust/seam/resource/restv1/Groups/").append(iD).toString();
                    bulkResponses.setLocation(location);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("201");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                } else if (!status) {
                    log.info(" POST status is false ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setBulkId(bulkId);
                    bulkResponses.setMethod(method);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("400");
                    result.setDescription("Request is unparseable, syntactically incorrect, or violates schema.");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                }
            } else if (oneRequest.getMethod().equalsIgnoreCase("PUT")) {
                log.info(" Status is PUT ");
                String method = oneRequest.getMethod();
                String version = oneRequest.getVersion();
                String path = oneRequest.getPath();
                ScimGroup group = copyUtils.copy(oneRequest.getData(), null);
                String groupiD = getId(path);
                boolean status = updateGroup(groupiD, group);
                if (status) {
                    log.info(" PUT status is true ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setMethod(method);
                    String iD = groupiD;
                    String location = (new StringBuilder()).append(domain).append("/oxTrust/seam/resource/restv1/Groups/").append(iD).toString();
                    bulkResponses.setLocation(location);
                    EntityTag eTag = new EntityTag(version, true);
                    String newVersion = eTag.getValue();
                    bulkResponses.setVersion(newVersion);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("200");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                } else if (!status) {
                    log.info(" PUT status is false ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setMethod(method);
                    bulkResponses.setVersion(version);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("400");
                    result.setDescription("Request is unparseable, syntactically incorrect, or violates schema.");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                }
            } else if (oneRequest.getMethod().equalsIgnoreCase("DELETE")) {
                log.info(" Operation is DELETE ");
                String method = oneRequest.getMethod();
                String path = oneRequest.getPath();
                String groupiD = getId(path);
                boolean status = deleteGroup(groupiD);
                if (status) {
                    log.info(" DELETE operation is true ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setMethod(method);
                    String location = (new StringBuilder()).append(domain).append("/oxTrust/seam/resource/restv1/Groups/").append(groupiD).toString();
                    bulkResponses.setLocation(location);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("200");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                } else if (!status) {
                    log.info(" DELETE operation is False ");
                    BulkResponses bulkResponses = new BulkResponses();
                    bulkResponses.setMethod(method);
                    BulkResponseStatus result = new BulkResponseStatus();
                    result.setCode("400");
                    result.setDescription("Request is unparseable, syntactically incorrect, or violates schema.");
                    bulkResponses.setStatus(result);
                    listResponses.add(bulkResponses);
                }
            }
        }
    }
    List<String> schemas = new ArrayList<String>();
    schemas.add(Constants.SCIM1_CORE_SCHEMA_ID);
    scimBulkResponse.setSchemas(schemas);
    scimBulkResponse.setOperations(listResponses);
    URI location = new URI("/Bulk/");
    return Response.ok(scimBulkResponse).location(location).build();
}
Also used : BulkResponseStatus(org.gluu.oxtrust.model.scim.BulkResponseStatus) BulkResponses(org.gluu.oxtrust.model.scim.BulkResponses) BulkRequests(org.gluu.oxtrust.model.scim.BulkRequests) ScimBulkResponse(org.gluu.oxtrust.model.scim.ScimBulkResponse) ArrayList(java.util.ArrayList) GluuGroup(org.gluu.oxtrust.model.GluuGroup) URI(java.net.URI) URL(java.net.URL) ScimBulkResponse(org.gluu.oxtrust.model.scim.ScimBulkResponse) Response(javax.ws.rs.core.Response) GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) ScimPerson(org.gluu.oxtrust.model.scim.ScimPerson) EntityTag(javax.ws.rs.core.EntityTag) ScimGroup(org.gluu.oxtrust.model.scim.ScimGroup) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces)

Example 2 with ScimGroup

use of org.gluu.oxtrust.model.scim.ScimGroup in project oxTrust by GluuFederation.

the class CopyUtils method copy.

/**
	 * Copy data from GluuGroup object to ScimGroup object
	 * 
	 * @param source
	 * @param destination
	 * @return
	 * @throws Exception
	 */
public ScimGroup copy(GluuGroup source, ScimGroup destination) throws Exception {
    if (source == null) {
        return null;
    }
    if (destination == null) {
        destination = new ScimGroup();
    }
    List<String> schemas = new ArrayList<String>();
    schemas.add(Constants.SCIM1_CORE_SCHEMA_ID);
    destination.setSchemas(schemas);
    destination.setDisplayName(source.getDisplayName());
    destination.setId(source.getInum());
    if (source.getMembers() != null) {
        if (source.getMembers().size() != 0) {
            List<ScimGroupMembers> members = new ArrayList<ScimGroupMembers>();
            List<String> membersList = source.getMembers();
            for (String oneMember : membersList) {
                ScimGroupMembers member = new ScimGroupMembers();
                GluuCustomPerson person = personService.getPersonByDn(oneMember);
                member.setValue(person.getInum());
                member.setDisplay(person.getDisplayName());
                members.add(member);
            }
            destination.setMembers(members);
        }
    }
    return destination;
}
Also used : GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) ScimGroupMembers(org.gluu.oxtrust.model.scim.ScimGroupMembers) ArrayList(java.util.ArrayList) ScimGroup(org.gluu.oxtrust.model.scim.ScimGroup)

Example 3 with ScimGroup

use of org.gluu.oxtrust.model.scim.ScimGroup in project oxTrust by GluuFederation.

the class CopyUtils2 method copy.

/**
	 * Copy data from GluuGroup object to ScimGroup object
	 * 
	 * @param source
	 * @param destination
	 * @return
	 * @throws Exception
	 */
public Group copy(GluuGroup source, Group destination) throws Exception {
    if (source == null) {
        return null;
    }
    if (destination == null) {
        destination = new Group();
    }
    destination.setDisplayName(source.getDisplayName());
    destination.setId(source.getInum());
    if (source.getMembers() != null) {
        if (source.getMembers().size() > 0) {
            Set<MemberRef> memberRefSet = new HashSet<MemberRef>();
            List<String> membersList = source.getMembers();
            for (String oneMember : membersList) {
                if (oneMember != null && !oneMember.isEmpty()) {
                    GluuCustomPerson gluuCustomPerson = personService.getPersonByDn(oneMember);
                    MemberRef memberRef = new MemberRef();
                    memberRef.setValue(gluuCustomPerson.getInum());
                    memberRef.setDisplay(gluuCustomPerson.getDisplayName());
                    String reference = appConfiguration.getBaseEndpoint() + "/scim/v2/Users/" + gluuCustomPerson.getInum();
                    memberRef.setReference(reference);
                    memberRefSet.add(memberRef);
                }
            }
            destination.setMembers(memberRefSet);
        }
    }
    log.trace(" getting meta ");
    Meta meta = (destination.getMeta() != null) ? destination.getMeta() : new Meta();
    if (source.getAttribute("oxTrustMetaVersion") != null) {
        meta.setVersion(source.getAttribute("oxTrustMetaVersion"));
    }
    String location = source.getAttribute("oxTrustMetaLocation");
    if (location != null && !location.isEmpty()) {
        if (!location.startsWith("https://") && !location.startsWith("http://")) {
            location = appConfiguration.getBaseEndpoint() + location;
        }
    } else {
        location = appConfiguration.getBaseEndpoint() + "/scim/v2/Groups/" + source.getInum();
    }
    meta.setLocation(location);
    if (source.getAttribute("oxTrustMetaCreated") != null && !source.getAttribute("oxTrustMetaCreated").isEmpty()) {
        try {
            DateTime dateTimeUtc = new DateTime(source.getAttribute("oxTrustMetaCreated"), DateTimeZone.UTC);
            meta.setCreated(dateTimeUtc.toDate());
        } catch (Exception e) {
            log.error(" Date parse exception (NEW format), continuing...", e);
            // For backward compatibility
            try {
                meta.setCreated(new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").parse(source.getAttribute("oxTrustMetaCreated")));
            } catch (Exception ex) {
                log.error(" Date parse exception (OLD format)", ex);
            }
        }
    }
    if (source.getAttribute("oxTrustMetaLastModified") != null && !source.getAttribute("oxTrustMetaLastModified").isEmpty()) {
        try {
            DateTime dateTimeUtc = new DateTime(source.getAttribute("oxTrustMetaLastModified"), DateTimeZone.UTC);
            meta.setLastModified(dateTimeUtc.toDate());
        } catch (Exception e) {
            log.error(" Date parse exception (NEW format), continuing...", e);
            // For backward compatibility
            try {
                meta.setLastModified(new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").parse(source.getAttribute("oxTrustMetaLastModified")));
            } catch (Exception ex) {
                log.error(" Date parse exception (OLD format)", ex);
            }
        }
    }
    destination.setMeta(meta);
    return destination;
}
Also used : ScimGroup(org.gluu.oxtrust.model.scim.ScimGroup) GluuGroup(org.gluu.oxtrust.model.GluuGroup) Group(org.gluu.oxtrust.model.scim2.Group) GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) Meta(org.gluu.oxtrust.model.scim2.Meta) MemberRef(org.gluu.oxtrust.model.scim2.MemberRef) SimpleDateFormat(java.text.SimpleDateFormat) DateTime(org.joda.time.DateTime) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) PersonRequiredFieldsException(org.gluu.oxtrust.exception.PersonRequiredFieldsException) JsonMappingException(org.codehaus.jackson.map.JsonMappingException) IOException(java.io.IOException) DuplicateEntryException(org.gluu.site.ldap.exception.DuplicateEntryException) HashSet(java.util.HashSet)

Example 4 with ScimGroup

use of org.gluu.oxtrust.model.scim.ScimGroup in project oxTrust by GluuFederation.

the class GroupWebService method updateGroup.

@Path("{id}")
@PUT
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response updateGroup(@HeaderParam("Authorization") String authorization, @PathParam("id") String id, ScimGroup group) throws Exception {
    Response authorizationResponse = processAuthorization(authorization);
    if (authorizationResponse != null) {
        return authorizationResponse;
    }
    try {
        GluuGroup gluuGroup = groupService.getGroupByInum(id);
        if (gluuGroup == null) {
            return getErrorResponse("Resource " + id + " not found", Response.Status.NOT_FOUND.getStatusCode());
        } else {
            // Validate if attempting to update displayName of a different id
            if (gluuGroup.getDisplayName() != null) {
                GluuGroup groupToFind = new GluuGroup();
                groupToFind.setDisplayName(group.getDisplayName());
                List<GluuGroup> foundGroups = groupService.findGroups(groupToFind, 2);
                if (foundGroups != null && foundGroups.size() > 0) {
                    for (GluuGroup foundGroup : foundGroups) {
                        if (foundGroup != null && !foundGroup.getInum().equalsIgnoreCase(gluuGroup.getInum())) {
                            throw new DuplicateEntryException("Cannot update displayName of a different id: " + group.getDisplayName());
                        }
                    }
                }
            }
        }
        GluuGroup newGluuGroup = copyUtils.copy(group, gluuGroup, true);
        if (group.getMembers().size() > 0) {
            serviceUtil.personMembersAdder(newGluuGroup, groupService.getDnForGroup(id));
        }
        // For custom script: update group
        if (externalScimService.isEnabled()) {
            externalScimService.executeScimUpdateGroupMethods(newGluuGroup);
        }
        groupService.updateGroup(newGluuGroup);
        log.debug(" group updated ");
        ScimGroup newGroup = copyUtils.copy(newGluuGroup, null);
        URI location = new URI("/Groups/" + id);
        return Response.ok(newGroup).location(location).build();
    } catch (EntryPersistenceException ex) {
        ex.printStackTrace();
        return getErrorResponse("Resource " + id + " not found", Response.Status.NOT_FOUND.getStatusCode());
    } catch (DuplicateEntryException ex) {
        log.error("Failed to update group", ex);
        ex.printStackTrace();
        return getErrorResponse(ex.getMessage(), Response.Status.BAD_REQUEST.getStatusCode());
    } catch (Exception ex) {
        log.error("Failed to update group", ex);
        ex.printStackTrace();
        return getErrorResponse(INTERNAL_SERVER_ERROR_MESSAGE, Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
    }
}
Also used : VirtualListViewResponse(org.xdi.ldap.model.VirtualListViewResponse) Response(javax.ws.rs.core.Response) EntryPersistenceException(org.gluu.site.ldap.persistence.exception.EntryPersistenceException) DuplicateEntryException(org.gluu.site.ldap.exception.DuplicateEntryException) ScimGroup(org.gluu.oxtrust.model.scim.ScimGroup) GluuGroup(org.gluu.oxtrust.model.GluuGroup) URI(java.net.URI) EntryPersistenceException(org.gluu.site.ldap.persistence.exception.EntryPersistenceException) DuplicateEntryException(org.gluu.site.ldap.exception.DuplicateEntryException) Path(javax.ws.rs.Path) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) PUT(javax.ws.rs.PUT)

Example 5 with ScimGroup

use of org.gluu.oxtrust.model.scim.ScimGroup in project oxTrust by GluuFederation.

the class GroupWebService method createGroup.

@POST
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response createGroup(@HeaderParam("Authorization") String authorization, ScimGroup group) throws Exception {
    Response authorizationResponse = processAuthorization(authorization);
    if (authorizationResponse != null) {
        return authorizationResponse;
    }
    // Return HTTP response with status code 201 Created
    log.debug(" copying gluuGroup ");
    GluuGroup gluuGroup = copyUtils.copy(group, null, false);
    if (gluuGroup == null) {
        return getErrorResponse("Failed to create group", Response.Status.BAD_REQUEST.getStatusCode());
    }
    try {
        log.debug(" generating inum ");
        String inum = groupService.generateInumForNewGroup();
        log.debug(" getting DN ");
        String dn = groupService.getDnForGroup(inum);
        log.debug(" getting iname ");
        String iname = groupService.generateInameForNewGroup(group.getDisplayName().replaceAll(" ", ""));
        log.debug(" setting dn ");
        gluuGroup.setDn(dn);
        log.debug(" setting inum ");
        gluuGroup.setInum(inum);
        log.debug(" setting iname ");
        gluuGroup.setIname(iname);
        log.info("group.getMembers().size() : " + group.getMembers().size());
        if (group.getMembers().size() > 0) {
            serviceUtil.personMembersAdder(gluuGroup, dn);
        }
        // For custom script: create group
        if (externalScimService.isEnabled()) {
            externalScimService.executeScimCreateGroupMethods(gluuGroup);
        }
        log.debug("adding new GluuGroup");
        groupService.addGroup(gluuGroup);
        ScimGroup newGroup = copyUtils.copy(gluuGroup, null);
        String uri = "/Groups/" + newGroup.getId();
        return Response.created(URI.create(uri)).entity(newGroup).build();
    } catch (DuplicateEntryException ex) {
        log.error("Failed to create group", ex);
        ex.printStackTrace();
        return getErrorResponse(ex.getMessage(), Response.Status.BAD_REQUEST.getStatusCode());
    } catch (Exception ex) {
        log.error("Failed to create group", ex);
        ex.printStackTrace();
        return getErrorResponse(INTERNAL_SERVER_ERROR_MESSAGE, Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
    }
}
Also used : VirtualListViewResponse(org.xdi.ldap.model.VirtualListViewResponse) Response(javax.ws.rs.core.Response) ScimGroup(org.gluu.oxtrust.model.scim.ScimGroup) DuplicateEntryException(org.gluu.site.ldap.exception.DuplicateEntryException) GluuGroup(org.gluu.oxtrust.model.GluuGroup) EntryPersistenceException(org.gluu.site.ldap.persistence.exception.EntryPersistenceException) DuplicateEntryException(org.gluu.site.ldap.exception.DuplicateEntryException) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces)

Aggregations

ScimGroup (org.gluu.oxtrust.model.scim.ScimGroup)7 GluuGroup (org.gluu.oxtrust.model.GluuGroup)6 Produces (javax.ws.rs.Produces)5 Response (javax.ws.rs.core.Response)5 DuplicateEntryException (org.gluu.site.ldap.exception.DuplicateEntryException)5 URI (java.net.URI)4 EntryPersistenceException (org.gluu.site.ldap.persistence.exception.EntryPersistenceException)4 VirtualListViewResponse (org.xdi.ldap.model.VirtualListViewResponse)4 ArrayList (java.util.ArrayList)3 Consumes (javax.ws.rs.Consumes)3 GluuCustomPerson (org.gluu.oxtrust.model.GluuCustomPerson)3 GET (javax.ws.rs.GET)2 POST (javax.ws.rs.POST)2 Path (javax.ws.rs.Path)2 IOException (java.io.IOException)1 URL (java.net.URL)1 SimpleDateFormat (java.text.SimpleDateFormat)1 HashSet (java.util.HashSet)1 DefaultValue (javax.ws.rs.DefaultValue)1 HeaderParam (javax.ws.rs.HeaderParam)1