diff --git a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java index 76a37a3bfa164180b272cda12e0fe406666439bf..73847151aa9cf05a3bc8ab6d55b6c0835838f956 100644 --- a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java +++ b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java @@ -73,7 +73,9 @@ import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; +import java.security.Principal; +import javax.management.remote.JMXPrincipal; import javax.security.auth.Subject; import org.apache.log4j.Level; @@ -163,6 +165,25 @@ public class UserClientTest } } + @Test + public void testSubjectWithUnsupportedPrincipal() throws URISyntaxException, MalformedURLException + { + Principal principal = new JMXPrincipal("APIName"); + try + { + // test subject augmentation given a subject with more than one principal + Subject subject = new Subject(); + subject.getPrincipals().add(principal); + this.createUserClient().augmentSubject(subject); + Assert.fail("Expecting an IllegalArgumentException."); + } + catch(IllegalArgumentException e) + { + String expected = "Subject has unsupported principal " + principal.getName(); + Assert.assertEquals(expected, e.getMessage()); + } + } + protected UserClient createUserClient() throws URISyntaxException, MalformedURLException { RegistryClient regClient = new RegistryClient();