Search in sources :

Example 26 with User

use of org.openstack4j.model.identity.v3.User in project openstack4j by ContainX.

the class KeystoneUserServiceTests method crud_User_Test.

/**
     * CRUD user tests
     *
     * @throws Exception
     */
public void crud_User_Test() throws Exception {
    // --create
    respondWith(JSON_USER_CREATE);
    User newUser = osv3().identity().users().create(USER_DOMAIN_ID, "foobar", "secret", "foobar@example.org", true);
    assertEquals(newUser.getName(), "foobar");
    assertEquals(newUser.getDomainId(), USER_DOMAIN_ID);
    assertEquals(newUser.getEmail(), "foobar@example.org");
    assertEquals(newUser.isEnabled(), true);
    assertNotNull(newUser.getId());
    // --read
    respondWith(JSON_USER_READ);
    User user = osv3().identity().users().getByName("foobar", USER_DOMAIN_ID);
    assertEquals(user.getId(), newUser.getId());
    assertEquals(user.getName(), "foobar");
    assertEquals(user.getEmail(), "foobar@example.org");
    assertEquals(user.isEnabled(), true);
    assertEquals(user.getDomainId(), USER_DOMAIN_ID);
    String crudUserId = user.getId();
    // --update
    respondWith(JSON_USER_UPDATE);
    User updatedUser = osv3().identity().users().update(KeystoneUser.builder().id(crudUserId).email("updatedFoobar@example.org").enabled(true).build());
    assertEquals(updatedUser.getEmail(), "updatedFoobar@example.org");
    assertEquals(updatedUser.getName(), "foobar");
    assertEquals(updatedUser.isEnabled(), true);
    assertEquals(updatedUser.getId(), crudUserId);
    assertEquals(updatedUser.getDomainId(), USER_DOMAIN_ID);
    // --delete
    respondWith(204);
    ActionResponse response_delete = osv3().identity().users().delete(crudUserId);
    assertTrue(response_delete.isSuccess());
}
Also used : KeystoneUser(org.openstack4j.openstack.identity.v3.domain.KeystoneUser) User(org.openstack4j.model.identity.v3.User) ActionResponse(org.openstack4j.model.common.ActionResponse)

Example 27 with User

use of org.openstack4j.model.identity.v3.User in project openstack4j by ContainX.

the class KeystoneUserServiceTests method getUser_byId_Test.

/**
     * get speciific user by user identifier
     *
     * @throws Exception
     */
public void getUser_byId_Test() throws Exception {
    respondWith(JSON_USER_GET_BYID);
    User user = osv3().identity().users().get(USER_ID);
    assertEquals(user.getId(), USER_ID);
    assertEquals(user.getName(), USER_NAME);
    assertEquals(user.getDomainId(), USER_DOMAIN_ID);
}
Also used : KeystoneUser(org.openstack4j.openstack.identity.v3.domain.KeystoneUser) User(org.openstack4j.model.identity.v3.User)

Example 28 with User

use of org.openstack4j.model.identity.v3.User in project openstack4j by ContainX.

the class KeystoneUserServiceTests method getUser_byName_byDomainId_Test.

/**
     * returns the user specified by name and domain.
     *
     * @throws Exception
     */
public void getUser_byName_byDomainId_Test() throws Exception {
    respondWith(JSON_USER_GET_BYNAME_BYDOMAINID);
    User user = osv3().identity().users().getByName(USER_NAME, USER_DOMAIN_ID);
    assertEquals(user.getName(), USER_NAME);
    assertEquals(user.getId(), USER_ID);
    assertEquals(user.getDomainId(), USER_DOMAIN_ID);
}
Also used : KeystoneUser(org.openstack4j.openstack.identity.v3.domain.KeystoneUser) User(org.openstack4j.model.identity.v3.User)

Example 29 with User

use of org.openstack4j.model.identity.v3.User in project oxTrust by GluuFederation.

the class UserCoreLoadingStrategy method createDummyUser.

private User createDummyUser() {
    User user = new User();
    org.gluu.oxtrust.model.scim2.Name name = new org.gluu.oxtrust.model.scim2.Name();
    name.setGivenName("");
    name.setMiddleName("");
    name.setFamilyName("");
    name.setHonorificPrefix("");
    name.setHonorificSuffix("");
    user.setName(name);
    user.setActive(false);
    user.setId("");
    user.setExternalId("");
    user.setUserName("");
    user.setPassword("");
    user.setDisplayName("");
    user.setNickName("");
    user.setProfileUrl("");
    user.setLocale("");
    user.setPreferredLanguage("");
    user.setTimezone("");
    user.setTitle("");
    List<GroupRef> groups = new ArrayList<GroupRef>();
    GroupRef groupRef = new GroupRef();
    groupRef.setOperation("");
    groupRef.setPrimary(false);
    groupRef.setValue("test");
    groupRef.setDisplay("");
    groupRef.setType(GroupRef.Type.DIRECT);
    groupRef.setReference("");
    groups.add(groupRef);
    user.setGroups(groups);
    List<Email> emails = new ArrayList<Email>();
    Email email = new Email();
    email.setOperation("");
    email.setPrimary(false);
    email.setValue("a@b.com");
    email.setDisplay("");
    email.setType(Email.Type.WORK);
    email.setReference("");
    emails.add(email);
    user.setEmails(emails);
    List<PhoneNumber> phoneNumbers = new ArrayList<PhoneNumber>();
    PhoneNumber phoneNumber = new PhoneNumber();
    phoneNumber.setOperation("");
    phoneNumber.setPrimary(false);
    phoneNumber.setValue("123-456-7890");
    phoneNumber.setDisplay("");
    phoneNumber.setType(PhoneNumber.Type.WORK);
    phoneNumber.setReference("");
    phoneNumbers.add(phoneNumber);
    user.setPhoneNumbers(phoneNumbers);
    List<Im> ims = new ArrayList<Im>();
    Im im = new Im();
    im.setOperation("");
    im.setPrimary(false);
    im.setValue("test");
    im.setDisplay("");
    im.setType(Im.Type.SKYPE);
    im.setReference("");
    ims.add(im);
    user.setIms(ims);
    List<Photo> photos = new ArrayList<Photo>();
    Photo photo = new Photo();
    photo.setOperation("");
    photo.setPrimary(false);
    photo.setValue("data:image/jpg;charset=utf-8;base64,dGVzdA==");
    photo.setDisplay("");
    photo.setType(Photo.Type.PHOTO);
    photo.setReference("");
    photos.add(photo);
    user.setPhotos(photos);
    List<Address> addresses = new ArrayList<Address>();
    Address address = new Address();
    address.setOperation("");
    address.setPrimary(false);
    address.setValue("test");
    address.setDisplay("");
    address.setType(Address.Type.WORK);
    address.setReference("");
    address.setStreetAddress("");
    address.setLocality("");
    address.setPostalCode("");
    address.setRegion("");
    address.setCountry("");
    address.setFormatted("");
    addresses.add(address);
    user.setAddresses(addresses);
    List<Entitlement> entitlements = new ArrayList<Entitlement>();
    Entitlement entitlement = new Entitlement();
    entitlement.setOperation("");
    entitlement.setPrimary(false);
    entitlement.setValue("test");
    entitlement.setDisplay("");
    entitlement.setType(new Entitlement.Type("test"));
    entitlement.setReference("");
    entitlements.add(entitlement);
    user.setEntitlements(entitlements);
    List<Role> roles = new ArrayList<Role>();
    Role role = new Role();
    role.setOperation("");
    role.setPrimary(false);
    role.setValue("test");
    role.setDisplay("");
    role.setType(new Role.Type("test"));
    role.setReference("");
    roles.add(role);
    user.setRoles(roles);
    List<X509Certificate> x509Certificates = new ArrayList<X509Certificate>();
    X509Certificate x509Certificate = new X509Certificate();
    x509Certificate.setOperation("");
    x509Certificate.setPrimary(false);
    x509Certificate.setValue("test");
    x509Certificate.setDisplay("");
    x509Certificate.setType(new X509Certificate.Type("test"));
    x509Certificate.setReference("");
    x509Certificates.add(x509Certificate);
    user.setX509Certificates(x509Certificates);
    return user;
}
Also used : User(org.gluu.oxtrust.model.scim2.User) Email(org.gluu.oxtrust.model.scim2.Email) Im(org.gluu.oxtrust.model.scim2.Im) Address(org.gluu.oxtrust.model.scim2.Address) ArrayList(java.util.ArrayList) Photo(org.gluu.oxtrust.model.scim2.Photo) X509Certificate(org.gluu.oxtrust.model.scim2.X509Certificate) Role(org.gluu.oxtrust.model.scim2.Role) PhoneNumber(org.gluu.oxtrust.model.scim2.PhoneNumber) GroupRef(org.gluu.oxtrust.model.scim2.GroupRef) Entitlement(org.gluu.oxtrust.model.scim2.Entitlement)

Example 30 with User

use of org.openstack4j.model.identity.v3.User in project oxTrust by GluuFederation.

the class UserExtensionsTest method testCreatePersonFromJsonString.

@Test
@Parameters({ "test.scim2.userext.create_json" })
public void testCreatePersonFromJsonString(final String createJson) throws Exception {
    System.out.println(" testCreatePersonFromJsonString() ");
    // Create custom attributes
    // String, not
    GluuAttribute scimCustomFirst = null;
    // multi-valued
    if (attributeService.getAttributeByName("scimCustomFirst") == null) {
        scimCustomFirst = createCustomAttribute(attributeService, schemaService, appConfiguration, "scimCustomFirst", "Custom First", "First custom attribute", GluuAttributeDataType.STRING, OxMultivalued.FALSE);
    }
    // Date, multi-valued
    GluuAttribute scimCustomSecond = null;
    if (attributeService.getAttributeByName("scimCustomSecond") == null) {
        scimCustomSecond = createCustomAttribute(attributeService, schemaService, appConfiguration, "scimCustomSecond", "Custom Second", "Second custom attribute", GluuAttributeDataType.DATE, OxMultivalued.TRUE);
    }
    // Numeric, not
    GluuAttribute scimCustomThird = null;
    // multi-valued
    if (attributeService.getAttributeByName("scimCustomThird") == null) {
        scimCustomThird = createCustomAttribute(attributeService, schemaService, appConfiguration, "scimCustomThird", "Custom Third", "Third custom attribute", GluuAttributeDataType.NUMERIC, OxMultivalued.FALSE);
    }
    // String CREATEJSON =
    // "{\"schemas\":[\"urn:ietf:params:scim:schemas:core:2.0:User\",\"urn:ietf:params:scim:schemas:extension:gluu:2.0:User\"],\"urn:ietf:params:scim:schemas:extension:gluu:2.0:User\":
    // {\"scimCustomFirst\":\"[1000,2000]\",\"scimCustomSecond\":[\"2016-02-23T15:35:22Z\"],\"scimCustomThird\":3000},\"externalId\":\"scimclient\",\"userName\":\"userjson.add.username\",\"name\":{\"givenName\":\"json\",\"familyName\":\"json\",\"middleName\":\"N/A\",\"honorificPrefix\":\"N/A\",\"honorificSuffix\":\"N/A\"},\"displayName\":\"json
    // json\",\"nickName\":\"json\",\"profileUrl\":\"http://www.gluu.org/\",\"emails\":[{\"value\":\"json@gluu.org\",\"type\":\"work\",\"primary\":\"true\"},{\"value\":\"json2@gluu.org\",\"type\":\"home\",\"primary\":\"false\"}],\"addresses\":[{\"type\":\"work\",\"streetAddress\":\"621
    // East 6th Street Suite
    // 200\",\"locality\":\"Austin\",\"region\":\"TX\",\"postalCode\":\"78701\",\"country\":\"US\",\"formatted\":\"621
    // East 6th Street Suite 200 Austin , TX 78701
    // US\",\"primary\":\"true\"}],\"phoneNumbers\":[{\"value\":\"646-345-2346\",\"type\":\"work\"}],\"ims\":[{\"value\":\"nynytest_user\",\"type\":\"Skype\"}],\"userType\":\"CEO\",\"title\":\"CEO\",\"preferredLanguage\":\"en-us\",\"locale\":\"en_US\",\"active\":\"true\",\"password\":\"secret\",\"roles\":[{\"value\":\"Owner\"}],\"entitlements\":[{\"value\":\"full
    // access\"}],\"x509Certificates\":[{\"value\":\"MIIDQzCCAqygAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAoMC2V4YW1wbGUuY29tMRQwEgYDVQQDDAtleGFtcGxlLmNvbTAeFw0xMTEwMjIwNjI0MzFaFw0xMjEwMDQwNjI0MzFa
    // MH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQKDAtleGFtcGxlLmNvbTEhMB8GA1UEAwwYTXMuIEJhcmJhcmEgSiBKZW5zZW4gSUlJMSIwIAYJKoZIhvcNAQkBFhNiamVuc2VuQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7Kr+Dcds/JQ5GwejJFcBIP682X3xpjis56AK02bc1FLgzdLI8auoR+cC9/Vrh5t66HkQIOdA4unHh0AaZ4xL5PhVbXIPMB5vAPKpzz5iPSi8xO8SL7I7SDhcBVJhqVqr3HgllEG6UClDdHO7nkLuwXq8HcISKkbT5WFTVfFZzidPl8HZ7DhXkZIRtJwBweq4bvm3hM1Os7UQH05ZS6cVDgweKNwdLLrT51ikSQG3DYrl+ft781UQRIqxgwqCfXEuDiinPh0kkvIi5jivVu1Z9QiwlYEdRbLJ4zJQBmDrSGTMYn4lRc2HgHO4DqB/bnMVorHB0CC6AV1QoFK4GPe1LwIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU8pD0U0vsZIsaA16lL8En8bx0F/gwHwYDVR0jBBgwFoAUdGeKitcaF7gnzsNwDx708kqaVt0wDQYJKoZIhvcNAQEFBQADgYEAA81SsFnOdYJtNg5Tcq+/ByEDrBgnusx0jloUhByPMEVkoMZ3J7j1ZgI8rAbOkNngX8+pKfTiDz1RC4+dx8oU6Za+4NJXUjlL5CvV6BEYb1+QAEJwitTVvxB/A67g42/vzgAtoRUeDov1+GFiBZ+GNF/cAYKcMtGcrs2i97ZkJMo=\"}],\"meta\":{\"created\":\"2010-01-23T04:56:22Z\",\"lastModified\":\"2011-05-13T04:42:34Z\",\"version\":\"aversion\",\"location\":\"http://localhost:8080/identity/seam/resource/restv1/Users/8c4b6c26-efaf-4840-bddf-c0146a8eb2a9\"}}";
    ObjectMapper mapper = new ObjectMapper();
    mapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
    SimpleModule simpleModule = new SimpleModule("SimpleModule", new Version(1, 0, 0, ""));
    simpleModule.addDeserializer(User.class, new UserDeserializer());
    mapper.registerModule(simpleModule);
    User user = mapper.readValue(createJson, User.class);
    String testUserName = user.getUserName() + " (" + System.currentTimeMillis() + ")";
    user.setUserName(testUserName);
    Extension extension = user.getExtension(Constants.USER_EXT_SCHEMA_ID);
    assertNotNull(extension, "(Deserialization) Custom extension not deserialized.");
    Extension.Field customFirstField = extension.getFields().get("scimCustomFirst");
    assertNotNull(customFirstField, "(Deserialization) \"scimCustomFirst\" field not deserialized.");
    assertEquals(customFirstField.getValue(), "[1000,2000]");
    System.out.println("##### (Deserialization) customFirstField.getValue() = " + customFirstField.getValue());
    Extension.Field customSecondField = extension.getFields().get("scimCustomSecond");
    assertNotNull(customSecondField, "(Deserialization) \"scimCustomSecond\" field not deserialized.");
    List<Date> dateList = Arrays.asList(mapper.readValue(customSecondField.getValue(), Date[].class));
    assertEquals(dateList.size(), 1);
    System.out.println("##### (Deserialization) dateList.get(0) = " + dateList.get(0));
    Extension.Field customThirdField = extension.getFields().get("scimCustomThird");
    assertNotNull(customThirdField, "(Deserialization) \"scimCustomThird\" field not deserialized.");
    assertEquals(new BigDecimal(customThirdField.getValue()), new BigDecimal(3000));
    System.out.println("##### (Deserialization) customThirdField.getValue() = " + customThirdField.getValue());
    // Create Person
    GluuCustomPerson gluuPerson = copyUtils2.copy(user, null, false);
    assertNotNull(gluuPerson, "gluuPerson is null!");
    System.out.println(">>>>> gluuPerson.getUid() = " + gluuPerson.getUid());
    String inum = personService.generateInumForNewPerson();
    String dn = personService.getDnForPerson(inum);
    String iname = personService.generateInameForNewPerson(user.getUserName());
    gluuPerson.setDn(dn);
    gluuPerson.setInum(inum);
    gluuPerson.setIname(iname);
    gluuPerson.setCommonName(gluuPerson.getGivenName() + " " + gluuPerson.getSurname());
    personService.addPerson(gluuPerson);
    // Retrieve Person
    GluuCustomPerson retrievedPerson = personService.getPersonByUid(gluuPerson.getUid());
    assertNotNull(retrievedPerson, "Failed to find person.");
    User newPerson = copyUtils2.copy(retrievedPerson, null);
    extension = newPerson.getExtension(Constants.USER_EXT_SCHEMA_ID);
    assertNotNull(extension, "(Persistence) Custom extension not persisted.");
    customFirstField = extension.getFields().get("scimCustomFirst");
    assertNotNull(customFirstField, "(Persistence) \"scimCustomFirst\" field not persisted.");
    assertEquals(customFirstField.getValue(), "[1000,2000]");
    System.out.println("##### (Persistence) customFirstField.getValue() = " + customFirstField.getValue());
    customSecondField = extension.getFields().get("scimCustomSecond");
    assertNotNull(customSecondField, "(Persistence) \"scimCustomSecond\" field not persisted.");
    dateList = Arrays.asList(mapper.readValue(customSecondField.getValue(), Date[].class));
    assertEquals(dateList.size(), 1);
    System.out.println("##### (Persistence) dateList.get(0) = " + dateList.get(0));
    customThirdField = extension.getFields().get("scimCustomThird");
    assertNotNull(customThirdField, "(Persistence) \"scimCustomThird\" field not persisted.");
    assertEquals(new BigDecimal(customThirdField.getValue()), new BigDecimal(3000));
    System.out.println("##### (Persistence) customThirdField.getValue() = " + customThirdField.getValue());
    // Remove Person
    memberService.removePerson(retrievedPerson);
// Remove custom attributes
// schemaService.removeAttributeTypeFromObjectClass(scimCustomFirst.getOrigin(),
// scimCustomFirst.getName());
// schemaService.removeStringAttribute(scimCustomFirst.getName());
// attributeService.removeAttribute(scimCustomFirst);
// schemaService.removeAttributeTypeFromObjectClass(scimCustomSecond.getOrigin(),
// scimCustomSecond.getName());
// schemaService.removeStringAttribute(scimCustomSecond.getName());
// attributeService.removeAttribute(scimCustomSecond);
// schemaService.removeAttributeTypeFromObjectClass(scimCustomThird.getOrigin(),
// scimCustomThird.getName());
// schemaService.removeStringAttribute(scimCustomThird.getName());
// attributeService.removeAttribute(scimCustomThird);
}
Also used : UserDeserializer(org.gluu.oxtrust.service.scim2.jackson.custom.UserDeserializer) User(org.gluu.oxtrust.model.scim2.User) Date(java.util.Date) BigDecimal(java.math.BigDecimal) GluuAttribute(org.xdi.model.GluuAttribute) Extension(org.gluu.oxtrust.model.scim2.Extension) GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) Version(org.codehaus.jackson.Version) ObjectMapper(org.codehaus.jackson.map.ObjectMapper) SimpleModule(org.codehaus.jackson.map.module.SimpleModule) Parameters(org.testng.annotations.Parameters) Test(org.testng.annotations.Test) BaseTest(org.gluu.oxtrust.action.test.BaseTest)

Aggregations

User (org.gluu.oxtrust.model.scim2.User)18 GluuCustomPerson (org.gluu.oxtrust.model.GluuCustomPerson)11 ScimPatchUser (org.gluu.oxtrust.model.scim2.ScimPatchUser)11 User (org.openstack4j.model.identity.v3.User)10 DuplicateEntryException (org.gluu.site.ldap.exception.DuplicateEntryException)9 EntryPersistenceException (org.gluu.site.ldap.persistence.exception.EntryPersistenceException)8 PersonRequiredFieldsException (org.gluu.oxtrust.exception.PersonRequiredFieldsException)7 Date (java.util.Date)6 SimpleUser (me.zhanghai.android.douya.network.api.info.apiv2.SimpleUser)6 User (me.zhanghai.android.douya.network.api.info.apiv2.User)6 ApiOperation (com.wordnik.swagger.annotations.ApiOperation)5 URI (java.net.URI)5 ArrayList (java.util.ArrayList)5 DefaultValue (javax.ws.rs.DefaultValue)5 HeaderParam (javax.ws.rs.HeaderParam)5 Produces (javax.ws.rs.Produces)5 Response (javax.ws.rs.core.Response)5 Extension (org.gluu.oxtrust.model.scim2.Extension)5 ListResponse (org.gluu.oxtrust.model.scim2.ListResponse)5 VirtualListViewResponse (org.xdi.ldap.model.VirtualListViewResponse)5