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.NdsIdentity;
import com.novell.service.security.NdsIdentityScope;
import com.novell.service.security.BinderyIdentity;
import com.novell.service.security.BinderyIdentityScope;
public class ModifyTokens
{
static public void main(String args[])
{
if(args.length < 3)
{
System.out.println("Usage: ModifyTokens [NDS]-or-[BINDERY] domain name");
System.out.println("E.g.: ModifyTokens [NDS] MyTree MyOrgContext MyGroupContext Me");
System.out.println("E.g.: ModifyTokens [BINDERY] MyServer Me");
System.exit(-1);
}
try
{
Identity identity = null;
if(args[0].equalsIgnoreCase(NdsIdentityScope.ADMINISTRATIVE_DOMAIN_NAME))
identity = buildNdsIdentity(null,0,args);
else if(args[0].equalsIgnoreCase(BinderyIdentityScope.ADMINISTRATIVE_DOMAIN_NAME))
identity = buildBinderyIdentity(null,0,args);
else
{
System.out.println("You must specify either [NDS] or [BINDERY] as the first scope.");
System.exit(-1);
}
Authenticator.modifyTokens(identity);
}
catch(java.lang.Throwable e)
{
if (e instanceof java.lang.ExceptionInInitializerError)
((java.lang.ExceptionInInitializerError)e).getException().printStackTrace();
e.printStackTrace();
}
finally
{
System.exit(0);
}
}
static Identity buildNdsIdentity(IdentityScope scope, int offset, String args[])
throws KeyManagementException
{
if( args.length == 0)
return new NdsIdentity("");
if(!(offset < args.length-1))
return new NdsIdentity(args[offset],scope);
return buildNdsIdentity(new NdsIdentityScope(args[offset],scope), ++offset, args);
}
static Identity buildBinderyIdentity(IdentityScope scope, int offset, String args[])
throws KeyManagementException
{
if( args.length == 0)
return new BinderyIdentity("");
if(!(offset < args.length-1))
return new BinderyIdentity(args[offset],scope);
return buildBinderyIdentity(new BinderyIdentityScope(args[offset],scope), ++offset, args);
}
}