@Test
 public void testRoleExpansion() throws LoginException {
   LoginContext context =
       new LoginContext(
           "ExpandedLDAPLogin",
           new CallbackHandler() {
             public void handle(Callback[] callbacks)
                 throws IOException, UnsupportedCallbackException {
               for (int i = 0; i < callbacks.length; i++) {
                 if (callbacks[i] instanceof NameCallback) {
                   ((NameCallback) callbacks[i]).setName("first");
                 } else if (callbacks[i] instanceof PasswordCallback) {
                   ((PasswordCallback) callbacks[i]).setPassword("secret".toCharArray());
                 } else {
                   throw new UnsupportedCallbackException(callbacks[i]);
                 }
               }
             }
           });
   context.login();
   Subject subject = context.getSubject();
   boolean isAdmin = false;
   boolean isUser = false;
   for (Principal principal : subject.getPrincipals()) {
     if (principal instanceof GroupPrincipal) {
       GroupPrincipal groupPrincipal = (GroupPrincipal) principal;
       if (groupPrincipal.getName().equalsIgnoreCase("admins")) isAdmin = true;
       if (groupPrincipal.getName().equalsIgnoreCase("users")) isUser = true;
     }
   }
   // Should be in users by virtue of being in admins
   assertTrue(isAdmin && isUser);
   context.logout();
 }
Exemple #2
0
  public void testAddRejected() {
    final GroupPrincipal principal = new GroupPrincipal("group");
    final UsernamePrincipal user = new UsernamePrincipal("name");

    try {
      principal.addMember(user);
      fail("Exception not thrown");
    } catch (UnsupportedOperationException uso) {
      // PASS
    }
  }
Exemple #3
0
 public void testInequalityNull() {
   GroupPrincipal principal = new GroupPrincipal("string");
   assertFalse(principal.equals(null));
 }
Exemple #4
0
 public void testInequalityNonGroupPrincipal() {
   GroupPrincipal principal = new GroupPrincipal("string");
   assertFalse(principal.equals(new UsernamePrincipal("string")));
 }
Exemple #5
0
 public void testInequalityDifferentGroupPrincipals() {
   GroupPrincipal principal1 = new GroupPrincipal("string1");
   GroupPrincipal principal2 = new GroupPrincipal("string2");
   assertFalse(principal1.equals(principal2));
 }
Exemple #6
0
 public void testEqualityEqualName() {
   final GroupPrincipal principal1 = new GroupPrincipal(new String("string"));
   final GroupPrincipal principal2 = new GroupPrincipal(new String("string"));
   assertTrue(principal1.equals(principal2));
 }
Exemple #7
0
 public void testEqualitySameName() {
   final String string = "string";
   final GroupPrincipal principal1 = new GroupPrincipal(string);
   final GroupPrincipal principal2 = new GroupPrincipal(string);
   assertTrue(principal1.equals(principal2));
 }
Exemple #8
0
 public void testGetName() {
   final GroupPrincipal principal = new GroupPrincipal("group");
   assertEquals("group", principal.getName());
 }