Logging in

Use the login(DataObject) method and LoginControl to authenticate a user.

About this task

Use the LoginAccount data object or explicit sub-type to authenticate a user. Use the optional LoginControl to retrieve the properties of the entity being authenticated.
Note: If the user does not belong to the default realm, then the realm name needs to be set in the context using the realm key. When logging in through the WebSphere Administrative Console, username@realmName needs to be used.

This example shows how to authenticate using a PersonAccount object with a principalName and password.

To authenticate a using a PersonAccount object with a principalName and password, add this sample code to your application code and replace the variables with the actual values that you want to use for this request:
try {
    DataObject root = SDOHelper.createRootDataObject(); 
    DataObject paccount = SDOHelper.createEntityDataObject(root, null, DO_PERSON_ACCOUNT);
    paccount.set(PROP_PRINCIPAL_NAME, "bob"); 
    paccount.set(Service.PROP_PASSWORD, 
                 com.ibm.websphere.wim.util.PasswordUtil.getByteArrayPassword("mypassword"));
    DataObject loginCtrl = SDOHelper.createControlDataObject(root, null, DO_LOGIN_CONTROL);
    loginCtrl.getList(PROP_SEARCH_BASES).add("cn=users,dc=yourco,dc=com"); 
    loginCtrl.getList(PROP_PROPERTIES).add("uid"); 
    loginCtrl.getList(PROP_PROPERTIES).add("cn"); 
    root = service.login(root);
} catch (WIMException e) {
    e.printStackTrace();
}

Sample input and output data graphs

For this particular example the input data graph is:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:sdo="commonj.sdo"
               xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:Root>
<wim:entities xsi:type="wim:PersonAccount">
   <wim:principalName>bob</wim:principalName>
   <wim:password>KioqKg==</wim:password>
</wim:entities>
<wim:controls xsi:type="wim:LoginControl">
  <wim:searchBases>cn=users,dc=yourco,dc=com</wim:searchBases>
    <wim:properties>cn</wim:properties>
    <wim:properties>uid</wim:properties>
</wim:controls>
</wim:Root>
</sdo:datagraph>
The resulting output data graph is:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:sdo="commonj.sdo"
               xmlns:wim="http://www.ibm.com/websphere/wim">
  <changeSummary/>
  <Root>
<entities xsi:type="PersonAccount">
        <identifier uniqueId="f0cf975b-eca8-4331-8a70-6b90556f4f65"
                    uniqueName="accountName=bob,cn=users,dc=yourco,dc=com">
          <cn>bob W</cn>
          <uid>bob</uid>
    </entities>
 </Root>
</sdo:datagraph>


Terms of use | Feedback