diff --git a/cadcAccessControl-Identity/src/ca/nrc/cadc/auth/ACIdentityManager.java b/cadcAccessControl-Identity/src/ca/nrc/cadc/auth/ACIdentityManager.java index c32b2d5e585f10f07de8ab8c0e9432b97d7ace9b..64d1e61230fd8df1e1c2d2c2638b681a3edccbee 100644 --- a/cadcAccessControl-Identity/src/ca/nrc/cadc/auth/ACIdentityManager.java +++ b/cadcAccessControl-Identity/src/ca/nrc/cadc/auth/ACIdentityManager.java @@ -237,8 +237,12 @@ public class ACIdentityManager implements IdentityManager RegistryClient regClient = new RegistryClient(); LocalAuthority localAuth = new LocalAuthority(); URI serviceURI = localAuth.getServiceURI("gms"); - URL serviceURL = regClient.getServiceURL(serviceURI, Standards.GMS_01_URI, AuthMethod.ANON); - URL availURL = new URL(serviceURL.toExternalForm() + "/availability"); + URL serviceURL = regClient.getServiceURL(serviceURI, Standards.GMS_GROUPS_01, AuthMethod.ANON); + + // Hack to strip off the groups endpoint to get the base url of the service. + String serviceUrl = serviceURL.toExternalForm(); + int index = serviceUrl.lastIndexOf('/'); + URL availURL = new URL(serviceUrl.substring(0, index)+ "/availability"); return new CheckWebService(availURL.toExternalForm()); } catch (MalformedURLException e) diff --git a/cadcAccessControl-Identity/src/ca/nrc/cadc/auth/AuthenticatorImpl.java b/cadcAccessControl-Identity/src/ca/nrc/cadc/auth/AuthenticatorImpl.java index 74287adc817f9754e11a51b4b349ccf973e59cc3..11c3e6b1b802ee17c02027a93a259082e9f07ac0 100644 --- a/cadcAccessControl-Identity/src/ca/nrc/cadc/auth/AuthenticatorImpl.java +++ b/cadcAccessControl-Identity/src/ca/nrc/cadc/auth/AuthenticatorImpl.java @@ -75,8 +75,12 @@ public class AuthenticatorImpl implements Authenticator RegistryClient regClient = new RegistryClient(); LocalAuthority localAuth = new LocalAuthority(); URI serviceURI = localAuth.getServiceURI("gms"); - URL serviceURL = regClient.getServiceURL(serviceURI, Standards.GMS_01_URI, AuthMethod.ANON); - URL availURL = new URL(serviceURL.toExternalForm() + "/availability"); + URL serviceURL = regClient.getServiceURL(serviceURI, Standards.GMS_GROUPS_01, AuthMethod.ANON); + + // Hack to strip off the groups endpoint to get the base url of the service. + String serviceUrl = serviceURL.toExternalForm(); + int index = serviceUrl.lastIndexOf('/'); + URL availURL = new URL(serviceUrl.substring(0, index)+ "/availability"); return new CheckWebService(availURL.toExternalForm()); } catch (MalformedURLException e) diff --git a/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java b/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java index 85b629bc015eb762b498f4438427a1826da71ae8..e7f525b6896ce740f2d7b6bf87eec34b0b763e67 100755 --- a/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java +++ b/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java @@ -183,7 +183,7 @@ public class GMSClient implements TransferListener UserNotFoundException, WriterException, IOException { URL createGroupURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); log.debug("createGroupURL request to " + createGroupURL.toString()); // reset the state of the cache @@ -255,7 +255,7 @@ public class GMSClient implements TransferListener throws GroupNotFoundException, AccessControlException, IOException { URL groupsURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); URL getGroupURL = new URL(groupsURL.toExternalForm() + "/" + groupName); log.debug("getGroup request to " + getGroupURL.toString()); @@ -311,7 +311,7 @@ public class GMSClient implements TransferListener throws AccessControlException, IOException { URL getGroupNamesURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); log.debug("getGroupNames request to " + getGroupNamesURL.toString()); @@ -389,7 +389,7 @@ public class GMSClient implements TransferListener AccessControlException, WriterException, IOException { URL groupsURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); URL updateGroupURL = new URL(groupsURL.toExternalForm() + "/" + group.getID()); log.debug("updateGroup request to " + updateGroupURL.toString()); @@ -458,7 +458,7 @@ public class GMSClient implements TransferListener throws GroupNotFoundException, AccessControlException, IOException { URL groupsURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); URL deleteGroupURL = new URL(groupsURL.toExternalForm() + "/" + groupName); log.debug("deleteGroup request to " + deleteGroupURL.toString()); @@ -527,7 +527,7 @@ public class GMSClient implements TransferListener String path = targetGroupName + "/groupMembers/" + groupMemberName; URL groupsURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); URL addGroupMemberURL = new URL(groupsURL.toExternalForm() + "/" + path); log.debug("addGroupMember request to " + addGroupMemberURL.toString()); @@ -588,7 +588,7 @@ public class GMSClient implements TransferListener String userIDType = AuthenticationUtil.getPrincipalType(userID); String path = targetGroupName + "/userMembers/" + NetUtil.encode(userID.getName()) + "?idType=" + userIDType; URL groupsURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); URL addUserMemberURL = new URL(groupsURL.toExternalForm() + "/" + path); log.debug("addUserMember request to " + addUserMemberURL.toString()); @@ -645,7 +645,7 @@ public class GMSClient implements TransferListener String path = targetGroupName + "/groupMembers/" + groupMemberName; URL groupsURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); URL removeGroupMemberURL = new URL(groupsURL.toExternalForm() + "/" + path); log.debug("removeGroupMember request to " + removeGroupMemberURL.toString()); @@ -714,7 +714,7 @@ public class GMSClient implements TransferListener log.debug("removeUserMember: " + targetGroupName + " - " + userID.getName() + " type: " + userIDType); String path = targetGroupName + "/userMembers/" + NetUtil.encode(userID.getName()) + "?idType=" + userIDType; URL groupsURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT); URL removeUserMemberURL = new URL(groupsURL.toExternalForm() + "/" + path); log.debug("removeUserMember: " + removeUserMemberURL.toString()); @@ -826,7 +826,7 @@ public class GMSClient implements TransferListener searchGroupPath.append("&ROLE=").append(NetUtil.encode(roleString)); URL searchURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_SEARCH_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_SEARCH_01, AuthMethod.CERT); URL getMembershipsURL = new URL(searchURL.toExternalForm() + "/" + searchGroupPath.toString()); log.debug("getMemberships request to " + getMembershipsURL.toString()); @@ -937,7 +937,7 @@ public class GMSClient implements TransferListener searchGroupPath.append("&GROUPID=").append(NetUtil.encode(groupName)); URL searchURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.GMS_SEARCH_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.GMS_SEARCH_01, AuthMethod.CERT); URL getMembershipURL = new URL(searchURL.toExternalForm() + "/" + searchGroupPath.toString()); log.debug("getMembership request to " + getMembershipURL.toString()); diff --git a/cadcAccessControl/src/ca/nrc/cadc/ac/client/UserClient.java b/cadcAccessControl/src/ca/nrc/cadc/ac/client/UserClient.java index 7032fea1a3e0abc0df978723e492eda64854ff86..248f9cbcd077023f6606532a4c8b5ca72812408f 100644 --- a/cadcAccessControl/src/ca/nrc/cadc/ac/client/UserClient.java +++ b/cadcAccessControl/src/ca/nrc/cadc/ac/client/UserClient.java @@ -149,11 +149,11 @@ public class UserClient // augment subject calls are always https with client certs URL usersURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.UMS_USERS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.UMS_USERS_01, AuthMethod.CERT); URL getUserURL = new URL(usersURL.toExternalForm() + path); if (getUserURL == null) - throw new IllegalArgumentException("No service endpoint for uri " + Standards.UMS_USERS_01_URI); + throw new IllegalArgumentException("No service endpoint for uri " + Standards.UMS_USERS_01); log.debug("augmentSubject request to " + getUserURL.toString()); ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -189,7 +189,7 @@ public class UserClient public List<User> getDisplayUsers() throws IOException { URL usersURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.UMS_USERS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.UMS_USERS_01, AuthMethod.CERT); final List<User> webUsers = new ArrayList<User>(); HttpDownload httpDownload = new HttpDownload(usersURL, @@ -254,10 +254,10 @@ public class UserClient userWriter.write(user, userXML); URL createUserURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.UMS_REQS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.UMS_REQS_01, AuthMethod.CERT); if (createUserURL == null) - throw new IllegalArgumentException("No service endpoint for uri " + Standards.UMS_REQS_01_URI); + throw new IllegalArgumentException("No service endpoint for uri " + Standards.UMS_REQS_01); log.debug("createUser request to " + createUserURL.toString()); ByteArrayInputStream in = new ByteArrayInputStream(userXML.toString().getBytes()); @@ -318,10 +318,10 @@ public class UserClient String path = "/" + id + "?idType=" + AuthenticationUtil.getPrincipalType(principal); URL usersURL = getRegistryClient() - .getServiceURL(this.serviceID, Standards.UMS_USERS_01_URI, AuthMethod.CERT); + .getServiceURL(this.serviceID, Standards.UMS_USERS_01, AuthMethod.CERT); URL getUserURL = new URL(usersURL.toExternalForm() + path); if (getUserURL == null) - throw new IllegalArgumentException("No service endpoint for uri " + Standards.UMS_USERS_01_URI); + throw new IllegalArgumentException("No service endpoint for uri " + Standards.UMS_USERS_01); log.debug("getUser request to " + getUserURL.toString()); ByteArrayOutputStream out = new ByteArrayOutputStream(); diff --git a/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java b/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java index fa0b9038d5e50e158ce5fc28b84364c7aebc02f8..e8e9b659a9f72fd622b0953cb11af17c7128dfaa 100644 --- a/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java +++ b/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java @@ -116,7 +116,7 @@ public class GMSClientTest final URI serviceID = URI.create("ivo://mysite.com/users"); - expect(mockRegistryClient.getServiceURL(serviceID, Standards.UMS_USERS_01_URI, AuthMethod.CERT)) + expect(mockRegistryClient.getServiceURL(serviceID, Standards.UMS_USERS_01, AuthMethod.CERT)) .andReturn(new URL("http://mysite.com/users")); replay(mockRegistryClient); @@ -154,7 +154,7 @@ public class GMSClientTest final RegistryClient mockRegistryClient = createMock(RegistryClient.class); - expect(mockRegistryClient.getServiceURL(serviceID, Standards.GMS_GROUPS_01_URI, AuthMethod.CERT )) + expect(mockRegistryClient.getServiceURL(serviceID, Standards.GMS_GROUPS_01, AuthMethod.CERT )) .andReturn(new URL("http://mysite.com/users")); replay(mockRegistryClient);