/* Uses the NPLoginModule to authenticate the user */ /* java -Djava.security.auth.login.config=NP.config * NPclient np * java -Djava.security.auth.login.config=NP.config * -Djava.security.policy=NPpolicy.txt * -Djava.security.manager * NPclient np */ import java.util.Set; import java.security.Principal; import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; import com.sun.security.auth.NTUserPrincipal; import javax.security.auth.login.FailedLoginException; public class NPclient { public static void main(String[] args) { LoginContext context = null; try { context = new LoginContext("NP", new NPCallbackHandler()); context.login(); Subject subject = context.getSubject(); System.out.println(subject); Set principals = subject.getPrincipals(NamePrincipal.class); Object[] p = principals.toArray(); boolean found = false; for (int i = 0; i < p.length; i++) if( ((Principal)p[i]).getName().equals(args[0])) found = true; if(found) System.out.println("login succeeded"); else throw new FailedLoginException("Login failed"); }catch(Exception e) { e.printStackTrace(); } } }