use of org.gluu.oxtrust.model.scim2.User in project oxTrust by GluuFederation.
the class Scim2UserService method createUser.
public User createUser(User user) throws Exception {
log.debug(" copying gluuperson ");
GluuCustomPerson gluuPerson = copyUtils2.copy(user, null, false);
if (gluuPerson == null) {
throw new Exception("Scim2UserService.createUser(): Failed to create user; GluuCustomPerson is null");
}
log.debug(" generating inum ");
// inumService.generateInums(Configuration.INUM_TYPE_PEOPLE_SLUG);
String inum = personService.generateInumForNewPerson();
// //personService.generateInumForNewPerson();
log.debug(" getting DN ");
String dn = personService.getDnForPerson(inum);
log.debug(" getting iname ");
String iname = personService.generateInameForNewPerson(user.getUserName());
log.debug(" setting dn ");
gluuPerson.setDn(dn);
log.debug(" setting inum ");
gluuPerson.setInum(inum);
log.debug(" setting iname ");
gluuPerson.setIname(iname);
log.debug(" setting commonName ");
gluuPerson.setCommonName(gluuPerson.getGivenName() + " " + gluuPerson.getSurname());
log.info("gluuPerson.getMemberOf().size() : " + gluuPerson.getMemberOf().size());
if (user.getGroups().size() > 0) {
log.info(" jumping to groupMembersAdder ");
log.info("gluuPerson.getDn() : " + gluuPerson.getDn());
serviceUtil.groupMembersAdder(gluuPerson, gluuPerson.getDn());
}
// As per spec, the SP must be the one to assign the meta attributes
log.info(" Setting meta: create user ");
// Date should be in UTC format
DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime().withZoneUTC();
Date dateCreated = DateTime.now().toDate();
String relativeLocation = "/scim/v2/Users/" + inum;
gluuPerson.setAttribute("oxTrustMetaCreated", dateTimeFormatter.print(dateCreated.getTime()));
gluuPerson.setAttribute("oxTrustMetaLastModified", dateTimeFormatter.print(dateCreated.getTime()));
gluuPerson.setAttribute("oxTrustMetaLocation", relativeLocation);
// Sync email, forward ("oxTrustEmail" -> "mail")
gluuPerson = serviceUtil.syncEmailForward(gluuPerson, true);
// For custom script: create user
if (externalScimService.isEnabled()) {
externalScimService.executeScimCreateUserMethods(gluuPerson);
}
log.debug("adding new GluuPerson");
personService.addPerson(gluuPerson);
User createdUser = copyUtils2.copy(gluuPerson, null);
return createdUser;
}
use of org.gluu.oxtrust.model.scim2.User in project oxTrust by GluuFederation.
the class UserSerializer method serialize.
@Override
public void serialize(User user, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
log.info(" serialize() ");
try {
jsonGenerator.writeStartObject();
ObjectMapper mapper = new ObjectMapper();
mapper.disable(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS);
JsonNode rootNode = mapper.convertValue(user, JsonNode.class);
Iterator<Map.Entry<String, JsonNode>> iterator = rootNode.getFields();
while (iterator.hasNext()) {
Map.Entry<String, JsonNode> rootNodeEntry = iterator.next();
jsonGenerator.writeFieldName(rootNodeEntry.getKey());
if (SchemaTypeMapping.getSchemaTypeInstance(rootNodeEntry.getKey()) instanceof UserExtensionSchema) {
serializeUserExtension(rootNodeEntry, mapper, user, jsonGenerator);
} else {
jsonGenerator.writeObject(rootNodeEntry.getValue());
}
}
jsonGenerator.writeEndObject();
} catch (Exception e) {
e.printStackTrace();
throw new IOException(INTERNAL_SERVER_ERROR_MESSAGE);
}
}
use of org.gluu.oxtrust.model.scim2.User in project oxTrust by GluuFederation.
the class Scim2UserService method addUserPatch.
private void addUserPatch(Operation operation, String id) throws Exception {
User user = operation.getValue();
GluuCustomPerson updatedGluuPerson = patchUtil.addPatch(user, validUsernameByInum(user, id));
log.info(" Setting meta: addUserPatch update user ");
setMeta(updatedGluuPerson);
}
Aggregations