Hi All,

I need to store User Custom variables like firstName, MiddleName, and Last Name 
and using following code:


SyncopeClientFactoryBean clientFactory = new SyncopeClientFactoryBean().
             setAddress("http://localhost:8080/syncope/rest";).
             setDomain("Master").
             setContentType(SyncopeClientFactoryBean.ContentType.XML).
             setUseCompression(true);
SyncopeClient client = clientFactory.create("admin", "password");
UserService userService = client.getService(UserService.class);

UserTO userTo = new UserTO();
                  userTo.setUsername(username);
userTo.setPassword(password);
userTo.setCreationDate(new Date());
userTo.setCreator("admin");
userTo.setRealm("/");

userTo.getPlainAttrs().add(new 
AttrTO.Builder().schema("email").value(email).build());
userTo.getPlainAttrs().add(new 
AttrTO.Builder().schema("firstName").value(firstName).build());
userTo.getPlainAttrs().add(new 
AttrTO.Builder().schema("middleName").value(middleName).build());
userTo.getPlainAttrs().add(new 
AttrTO.Builder().schema("lastName").value(lastName).build());
Response userResponse = userService.create(userTo,true);
System.out.println(userResponse.getStatus());

After Successful creation of user,  authenticated using email, with following 
code:

 client = clientFactory.
               setDomain("Master").create(email, password);


Pair<Map<String, Set<String>>, UserTO> self = client.self();

       Object auth = self.getKey();
       UserTO selfUserTO = (UserTO)self.getValue();

System.out.println(selfUserTO);

First Question: selfUserTO is not retrieving firstName, middleName, and 
LastName from Plain Attributes.  What are changes needed to be done for storing 
these plain attributes values?
Second Question: I am able to save email address and also able to retrieve 
(authenticate) using the email address. If I have created two users with the 
same email address, the system is not able to log in using this email address. 
Because the email address is not unique across all users.  How to make email 
address unique across all users.

 plainAttrs=[org.apache.syncope.common.lib.to.AttrTO@6f8f9349[
  schemaInfo=org.apache.syncope.common.lib.to.PlainSchemaTO@75c9e76b[
  type=String
  mandatoryCondition=false
  multivalue=false
  uniqueConstraint=false
  readonly=false
  conversionPattern=<null>
  
validatorClass=org.apache.syncope.core.persistence.jpa.attrvalue.validation.EmailAddressValidator
  enumerationValues=<null>
  enumerationKeys=<null>
  secretKey=<null>
  cipherAlgorithm=<null>
  mimeType=<null>
  key=email
  anyTypeClass=BaseUser
]
  schema=email
  values=[abc...@hotmail.com]
]]

Your help in this regard greatly appreciated.
Thanks

Ravi


<http://www.ooftish.com>

Reply via email to