import java.io.PrintStream; import java.util.HashMap; import java.util.Map; import com.hyperion.css.CSSAPIIF; import com.hyperion.css.CSSDirectoryManagementAPIIF; import com.hyperion.css.CSSException; import com.hyperion.css.CSSSystem; import com.hyperion.css.CSSUserProvisioningAPIIF; import com.hyperion.css.common.CSSGroupIF; import com.hyperion.css.common.CSSPrincipalIF; import com.hyperion.css.common.CSSRoleIF; import com.hyperion.css.common.CSSUserIF; public abstract class Sample { // Handle to Instance of CSS System protected CSSSystem system = null; // Handle to Instance of CSSAPI protected CSSAPIIF cssAPI = null; //Handle to Directory management API protected CSSDirectoryManagementAPIIF cssDMAPI; //Handle to User Provisioning API protected CSSUserProvisioningAPIIF cssUPAPI; //the identity of the entity performing the operation. protected CSSPrincipalIF principal = null; protected HashMap context; public static String PRODUCT = "HUB-9.5.0"; public Sample() throws Exception { initialize(); } /** * Initialize the CSS Framework */ private void initialize() throws Exception { System.out.println("Initializing CSS ..."); context = new HashMap(); // Get Instance of the CSS System. Specify the location of // the Shared Services Client log file. // CSS will be intialized from configuration stored in Registry. system = CSSSystem.getInstance(context, "C:/Hyperion/logs"); System.out.println("Initialized CSS."); // get Handle the CSS API Interface cssAPI = system.getCSSAPI(); cssDMAPI = cssAPI.getDirectoryManagementAPI(new HashMap()); cssUPAPI = cssAPI.getUserProvisioningAPI(new HashMap()); System.out.println("Getting the Principal ..."); principal = getPrincipal(); System.out.println("Got Principal.\n"); context = new HashMap(); } /** * Shuts down the CSS framework. */ public void shutdown() { try { system.shutdown(); } catch (Exception e) { e.printStackTrace(); } } private CSSPrincipalIF getPrincipal() throws Exception { String userName = "admin"; String password = "password"; CSSUserIF admin = null; String errMsg = "Authenticating user '" + userName + "' with password '" + password + "' failed. Use the correct credentials in sample code."; try { admin = authenticate(userName, password); } catch (CSSException csse) { System.out.println(errMsg); throw csse; } if (admin == null) { System.out.println(errMsg); throw new Exception(errMsg); } return admin.getPrincipal(); } protected HashMap getContext() { return new HashMap(); } protected CSSUserIF authenticate(String username, String password) throws CSSException { CSSUserIF user = null; System.out.println("Authenticating user: " + username); Map context = new HashMap(); user = cssAPI.authenticate(context, username, password); System.out.println("Got User: " + user); return user; } protected void dump(PrintStream out, String msg, String [] arr){ out.println(msg); for (int i = 0; i < arr.length; i++){ out.println(arr[i]); } } protected void dumpUsers(PrintStream out, String msg, CSSUserIF[] users){ out.println(msg); out.println(); for (int i=0 ; i "+ users[i].getLoginName()); out.println("User Email-->" + users[i].getEmailAddress()[0]); out.println("User Description-->" + users[i].getDescription()); out.println("User FN -->" + users[i].getFirstName()); out.println("User Identity-->" + users[i].getIdentity()); out.println(); } } protected void dumpGroups(PrintStream out, String msg, CSSGroupIF[] groups){ out.println(msg); out.println(); for (int i=0 ; i " + groups[i].getName()); out.println("Group Description-->" + groups[i].getDescription()); out.println("Group Identity-->" + groups[i].getIdentity()); out.println(); } } // print group names protected void dumpGroups(PrintStream out, String msg, String[] groups){ out.println(msg); out.println(); for (int i=0 ; i " + (group != null ? group.getName() : null)); } out.println(); } // print user names protected void dumpUsers(PrintStream out, String msg, String[] users){ out.println(msg); out.println(); for (int i=0 ; i " + (user != null ? user.getLoginName() : null)); } out.println(); } protected void dumpRoles(PrintStream out, String msg, CSSRoleIF[] roles){ out.println(msg); out.println(); for (int i=0 ; i " + roles[i].getName()); out.println("role Description-->" + roles[i].getDescription()); out.println("role Identity-->" + roles[i].getIdentity()); out.println(); } } protected abstract void cleanup(String []identities) throws CSSException; protected void printMsg(PrintStream out, String msg) { out.println(msg); } }