/* * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0 * (the "License"). You may not use this work except in compliance with the License, which is * available at www.apache.org/licenses/LICENSE-2.0 * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied, as more fully set forth in the License. * * See the NOTICE file distributed with this work for information regarding copyright ownership. */ package alluxio.security; import org.junit.Assert; import org.junit.Test; import java.util.Set; import javax.security.auth.Subject; /** * Unit test for {@link User}. */ public final class UserTest { /** * This test verifies whether the {@link User} could be used in Java security * framework. */ @Test public void usedInSecurityContext() { // Add new users into Subject. Subject subject = new Subject(); subject.getPrincipals().add(new User("realUser")); subject.getPrincipals().add(new User("proxyUser")); // Fetch added users. Set<User> users = subject.getPrincipals(User.class); // Verification. Assert.assertEquals(2, users.size()); // Test equals. Assert.assertTrue(users.contains(new User("realUser"))); Assert.assertFalse(users.contains(new User("noExistingUser"))); } /** * This test verifies that full realm format is valid as {@link User} name. */ @Test public void realmAsUserName() { // Add new users into Subject. Subject subject = new Subject(); subject.getPrincipals().add(new User("admin/admin@EXAMPLE.com")); subject.getPrincipals().add(new User("admin/mbox.example.com@EXAMPLE.com")); subject.getPrincipals().add(new User("imap/mbox.example.com@EXAMPLE.COM")); // Fetch added users. Set<User> users = subject.getPrincipals(User.class); Assert.assertEquals(3, users.size()); // Add similar user name without domain name. subject.getPrincipals().add(new User("admin")); subject.getPrincipals().add(new User("imap")); users = subject.getPrincipals(User.class); Assert.assertEquals(5, users.size()); } }