import com.novell.java.security.Authenticator;
import com.novell.java.security.Identity;
import com.novell.java.security.IdentityScope;
import com.novell.java.security.KeyManagementException;
import com.novell.service.security.BinderyIdentity;
import com.novell.service.security.BinderyIdentityScope;
import com.novell.service.security.NdsIdentity;
import com.novell.service.security.NdsIdentityScope;
public class GetIdentities
{
static public void main(String args[])
{
try
{
Identity identities[];
IdentityScope scope = null;
if(args.length == 0)
scope = null;
else if(args[0].equalsIgnoreCase(NdsIdentityScope.ADMINISTRATIVE_DOMAIN_NAME))
scope = buildNdsIdentityScope(null,0,args);
else if(args[0].equalsIgnoreCase(BinderyIdentityScope.ADMINISTRATIVE_DOMAIN_NAME))
scope = buildBinderyIdentityScope(null,0,args);
else
{
System.out.println("Usage: GetIdentities [[NDS]-or-[BINDERY]]");
System.out.println("E.g.: GetIdentities");
System.out.println("E.g.: GetIdentities [NDS]");
System.out.println("E.g.: GetIdentities [BINDERY]");
System.exit(-1);
}
if(scope == null)
identities = Authenticator.getIdentities();
else
identities = Authenticator.getIdentities(scope);
if(identities != null)
{
System.out.println("Found "+identities.length+" identities:");
for(int i = 0; i < identities.length; i++)
System.out.println(printIdentity(identities[i]));
}
else
{
System.out.println("Found no identities.");
}
}
catch(java.lang.Throwable e)
{
if (e instanceof java.lang.ExceptionInInitializerError)
((java.lang.ExceptionInInitializerError)e).getException().printStackTrace();
e.printStackTrace();
}
finally
{
System.exit(0);
}
}
static IdentityScope buildNdsIdentityScope(IdentityScope scope, int offset, String args[])
throws KeyManagementException
{
if( args.length == 0)
return new NdsIdentityScope();
if(!(offset < args.length-1))
return new NdsIdentityScope(args[offset],scope);
return buildNdsIdentityScope(new NdsIdentityScope(args[offset],scope), ++offset, args);
}
static IdentityScope buildBinderyIdentityScope(IdentityScope scope, int offset, String args[])
throws KeyManagementException
{
if( args.length == 0)
return new BinderyIdentityScope();
if(!(offset < args.length-1))
return new BinderyIdentityScope(args[offset],scope);
return buildBinderyIdentityScope(new BinderyIdentityScope(args[offset],scope), ++offset, args);
}
static String printIdentity(Identity identity)
{
String name = identity.getName();
IdentityScope scope = identity.getScope();
if(scope != null)
name += "."+printIdentity(scope);
return name;
}
}