EMC Developer Network

Principal Authentication Mode

December 2005

Software Environment

FeatureTested on
Operating SystemWindows 2000 Server SP4
CompilerSun JDK 1.4.2_08
RuntimeSun JRE 1.4.2_08
DFC5.3 SP1
Content Server5.3 SP1

Snippet


/*
 * Created on Dec 15, 2005
 *
 * EMC Documentum Developer Program 2005
 */
package com.documentum.devprog.snippets.session;

import com.documentum.fc.common.DfException;
import com.documentum.fc.common.IDfLoginInfo;

import com.documentum.fc.client.DfDefaultPrincipalSupport;
import com.documentum.fc.client.IDfClient;
import com.documentum.fc.client.IDfSession;
import com.documentum.fc.client.IDfSessionManager;

import com.documentum.com.DfClientX;
import com.documentum.com.IDfClientX;

public class PrincipalAuthentication
{
        
    public static void main(String[] args)
    {
        
        String username = "dmadmin";
        String password = "dmadmin";
        String repoName = "devprog53sp1";
        
        String principalName = "Documentum";
        
        IDfSessionManager sessMgr = null;
        IDfSession sess =null;
        try
        {
            IDfClientX clientX = new DfClientX();
           
            IDfLoginInfo li = clientX.getLoginInfo();
            li.setUser(username);
            li.setPassword(password);
            
            IDfClient localClient = clientX.getLocalClient();
            localClient.setPrincipalSupport(new DfDefaultPrincipalSupport(li));
            
            //create session manager and set principal
            sessMgr = localClient.newSessionManager();
            sessMgr.setPrincipalName(principalName);
            
            //Session is obtained for the principal - 'Documentum'
            //and not for user dmadmin
            sess = sessMgr.getSession(repoName);
            System.out.println("Got session: " + sess.getSessionId());
            System.out.println("Principal Mode: " + sess.getLoginInfo().getPrincipalMode());
            System.out.println("Username: " + sess.getLoginInfo().getUser());
            
            
            //use session and release it in finally clause.
            
        }
        catch(DfException dfe)
        {
            dfe.printStackTrace();
        }
        finally
        {
            if((sessMgr != null) && (sess != null))
            {
                sessMgr.release(sess);
            }
        }               
    }

}