/** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: IdRepoSampleGetSpecialIds.java,v 1.2 2008/06/25 05:41:14 qcheng Exp $ * */ package com.sun.identity.samples.clientsdk.idrepo; import java.io.*; import java.util.*; import com.iplanet.sso.SSOException; import com.sun.identity.idm.AMIdentity; import com.sun.identity.idm.AMIdentityRepository; import com.sun.identity.idm.IdType; import com.sun.identity.idm.IdSearchResults; import com.sun.identity.idm.IdRepoException; /** * This class * * * @author */ public class IdRepoSampleGetSpecialIds { IdRepoSampleUtils sampleUtils = null; AMIdentityRepository idRepo = null; public IdRepoSampleGetSpecialIds (AMIdentityRepository idrepo) { sampleUtils = new IdRepoSampleUtils(); idRepo = idrepo; } /* * The special AMIdentities are for internal use only. */ public void getSpecialIds () { try { IdSearchResults isr = null; Set isrSet = null; Map isrMap = null; /* * get special role identities */ isr = idRepo.getSpecialIdentities(IdType.ROLE); isrSet = isr.getSearchResults(); isrMap = isr.getResultAttributes(); processSpecialIdentity (isrMap, isrSet, "Special Roles"); /* * get special user identities */ sampleUtils.waitForReturn("Hit to get special users: "); isr = idRepo.getSpecialIdentities(IdType.USER); isrSet = isr.getSearchResults(); isrMap = isr.getResultAttributes(); processSpecialIdentity (isrMap, isrSet, "Special Users"); /* * get special group identities */ sampleUtils.waitForReturn("Hit to get special groups: "); isr = idRepo.getSpecialIdentities(IdType.GROUP); isrSet = isr.getSearchResults(); isrMap = isr.getResultAttributes(); processSpecialIdentity (isrMap, isrSet, "Special Groups"); /* * get special agent identities */ sampleUtils.waitForReturn("Hit to get special agents: "); isr = idRepo.getSpecialIdentities(IdType.AGENT); isrSet = isr.getSearchResults(); isrMap = isr.getResultAttributes(); processSpecialIdentity (isrMap, isrSet, "Special Agents"); /* * get special realm identities */ sampleUtils.waitForReturn("Hit to get special realms: "); isr = idRepo.getSpecialIdentities(IdType.REALM); isrSet = isr.getSearchResults(); isrMap = isr.getResultAttributes(); processSpecialIdentity (isrMap, isrSet, "Special Realms"); /* * get special Filtered Role identities */ sampleUtils.waitForReturn( "Hit to get special filtered roles: "); isr = idRepo.getSpecialIdentities(IdType.FILTEREDROLE); isrSet = isr.getSearchResults(); isrMap = isr.getResultAttributes(); processSpecialIdentity (isrMap, isrSet, "Special Filtered Roles"); } catch (IdRepoException ire) { System.err.println ("idRepoProcessing:IdRepoException: " + ire.getMessage()); } catch (SSOException ssoe) { System.err.println ("idRepoProcessing:SSOException: " + ssoe.getMessage()); } return; } /* * print the Map (from IdSearchResults.getResultAttributes()) and * the Set (from IdSearchResults.getSearchResults()) resulting from * the AMIdentityRepository.getSpecialIdentities(IdType.xxx) call. */ private void processSpecialIdentity (Map isrMap, Set isrSet, String title) { printMap (isrMap, title + " (" + isrMap.size() +")"); System.out.println(""); sampleUtils.waitForReturn( "Hit to continue display of " + title + ": "); if (!isrSet.isEmpty()) { System.out.println (title + ":"); AMIdentity am_id = null; for(Iterator it=isrSet.iterator(); it.hasNext();) { try { am_id = (AMIdentity)it.next(); System.out.println(" For '" + am_id.getName() + "':"); System.out.println( " realm: " + am_id.getRealm() + "\n type: " + am_id.getType() + "\n universalId: " + am_id.getUniversalId() + "\n active: " + am_id.isActive() + "\n exists: " + am_id.isExists() + "\n"); } catch (IdRepoException ire) { System.err.println ( "processSpecialIdentity:IdRepoException: " + ire.getMessage()); } catch (SSOException ssoe) { System.err.println ( "processSpecialIdentity:SSOException: " + ssoe.getMessage()); } } } else { System.out.println ("No " + title); } } /* * theMap: * AMIdentity, Map of: * String, Set of: * String */ private void printMap (Map theMap, String title) { if (theMap == null) { System.out.println ("Null Map of " + title); } else if (theMap.isEmpty()) { System.out.println ("Map of " + title + " is empty"); } else { Set keySet = theMap.keySet(); System.out.println (title); Object obj = null; Object val = null; AMIdentity ami = null; Map vMap = null; Set vSet = null; for (Iterator it=keySet.iterator(); it.hasNext(); ) { obj = it.next(); ami = (AMIdentity)obj; System.out.println (" " + ami.getName()); val = theMap.get(ami); if (val != null) { vMap = (Map)val; vSet = vMap.keySet(); System.out.println (" Attributes for " + ami.getName() + ":"); Object obj2 = null; Object obj3 = null; Object obj4 = null; Set o3Set = null; for (Iterator it2=vSet.iterator(); it2.hasNext(); ) { obj2 = it2.next(); System.out.println (" " + obj2); obj3 = vMap.get(obj2); o3Set = (Set)obj3; System.out.println (" Value(s) for " + obj2 + ":"); if (o3Set.isEmpty()) { System.out.println(" [NONE]"); } for (Iterator it3=o3Set.iterator(); it3.hasNext(); ) { obj4 = it3.next(); System.out.println(" " + obj4); } } } else { System.out.println("theMap.get(ami) rtns null"); } } } } }