diff --git a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java index 9b7ff193ade683d269a2b912121b4af987d8d70a..3025fb37678ac4fc3d0f464e6b320f9ced4ebcaf 100644 --- a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java +++ b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java @@ -140,20 +140,21 @@ public class GMSClientTest try { Subject subject = new Subject(); - final HttpPrincipal userID = new HttpPrincipal("test"); - subject.getPrincipals().add(userID); + final HttpPrincipal test1UserID = new HttpPrincipal("test"); + subject.getPrincipals().add(test1UserID); + + RegistryClient regClient = new RegistryClient(); + URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI), + "https"); + final GMSClient client = new GMSClient(baseURL.toString()); Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { @Override public Object run() throws Exception { - RegistryClient regClient = new RegistryClient(); - URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI), - "https"); - GMSClient client = new GMSClient(baseURL.toString()); - List<Group> initial = client.getCachedGroups(userID, Role.MEMBER); + List<Group> initial = client.getCachedGroups(test1UserID, Role.MEMBER); Assert.assertNull("Cache should be null", initial); List<Group> expected = new ArrayList<Group>(); @@ -162,31 +163,65 @@ public class GMSClientTest expected.add(group1); expected.add(group2); - client.setCachedGroups(userID, expected, Role.MEMBER); + client.setCachedGroups(test1UserID, expected, Role.MEMBER); - List<Group> actual = client.getCachedGroups(userID, Role.MEMBER); + List<Group> actual = client.getCachedGroups(test1UserID, Role.MEMBER); Assert.assertEquals("Wrong cached groups", expected, actual); // check against another role - actual = client.getCachedGroups(userID, Role.OWNER); + actual = client.getCachedGroups(test1UserID, Role.OWNER); Assert.assertNull("Cache should be null", actual); // check against another userid - final HttpPrincipal userID2 = new HttpPrincipal("test2"); - actual = client.getCachedGroups(userID2, Role.MEMBER); + final HttpPrincipal anotherUserID = new HttpPrincipal("anotheruser"); + actual = client.getCachedGroups(anotherUserID, Role.MEMBER); Assert.assertNull("Cache should be null", actual); return null; } }); + + subject = new Subject(); + final HttpPrincipal test2UserID = new HttpPrincipal("test2"); + subject.getPrincipals().add(test2UserID); + + // do the same but as a different user + Subject.doAs(subject, new PrivilegedExceptionAction<Object>() + { + @Override + public Object run() throws Exception + { + + List<Group> initial = client.getCachedGroups(test2UserID, Role.MEMBER); + Assert.assertNull("Cache should be null", initial); + + List<Group> expected = new ArrayList<Group>(); + Group group1 = new Group("1"); + Group group2 = new Group("2"); + expected.add(group1); + expected.add(group2); + + client.setCachedGroups(test2UserID, expected, Role.MEMBER); + + List<Group> actual = client.getCachedGroups(test2UserID, Role.MEMBER); + Assert.assertEquals("Wrong cached groups", expected, actual); + + // check against another role + actual = client.getCachedGroups(test2UserID, Role.OWNER); + Assert.assertNull("Cache should be null", actual); + + // check against another userid + final HttpPrincipal anotherUserID = new HttpPrincipal("anotheruser"); + actual = client.getCachedGroups(anotherUserID, Role.MEMBER); + Assert.assertNull("Cache should be null", actual); + + return null; + } + }); // do the same without a subject - RegistryClient regClient = new RegistryClient(); - URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI), - "https"); - GMSClient client = new GMSClient(baseURL.toString()); - List<Group> initial = client.getCachedGroups(userID, Role.MEMBER); + List<Group> initial = client.getCachedGroups(test1UserID, Role.MEMBER); Assert.assertNull("Cache should be null", initial); List<Group> newgroups = new ArrayList<Group>(); @@ -195,9 +230,9 @@ public class GMSClientTest newgroups.add(group1); newgroups.add(group2); - client.setCachedGroups(userID, newgroups, Role.MEMBER); + client.setCachedGroups(test1UserID, newgroups, Role.MEMBER); - List<Group> actual = client.getCachedGroups(userID, Role.MEMBER); + List<Group> actual = client.getCachedGroups(test1UserID, Role.MEMBER); Assert.assertNull("Cache should still be null", actual); } catch (Throwable t)