From e3d981bcfd4dc2921850d3afc44fd4d57fdd6038 Mon Sep 17 00:00:00 2001
From: Patrick Dowler <patrick.dowler@nrc-cnrc.gc.ca>
Date: Thu, 1 Dec 2016 07:57:51 -0800
Subject: [PATCH] fix GroupURI to check that scheme is ivo

---
 cadc-access-control/build.gradle                              | 2 +-
 .../src/main/java/ca/nrc/cadc/ac/GroupURI.java                | 4 ++--
 .../src/test/java/ca/nrc/cadc/ac/GroupURITest.java            | 3 +++
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/cadc-access-control/build.gradle b/cadc-access-control/build.gradle
index ee3e1a0c..476dbf53 100644
--- a/cadc-access-control/build.gradle
+++ b/cadc-access-control/build.gradle
@@ -15,7 +15,7 @@ sourceCompatibility = 1.7
 
 group = 'org.opencadc'
 
-version = '1.1.3'
+version = '1.1.4'
 
 mainClassName = 'ca.nrc.cadc.ac.client.Main'
 
diff --git a/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java b/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java
index 68a87acd..fb7cf926 100644
--- a/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java
+++ b/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java
@@ -99,9 +99,9 @@ public class GroupURI
         }
 
         // Ensure the scheme is correct
-        if (uri.getScheme() == null)
+        if (uri.getScheme() == null || !"ivo".equals(uri.getScheme()))
         {
-            throw new IllegalArgumentException("GroupURI scheme is required.");
+            throw new IllegalArgumentException("GroupURI scheme must be 'ivo'.");
         }
 
         if (uri.getAuthority() == null)
diff --git a/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java b/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java
index db202c74..93f74030 100644
--- a/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java
+++ b/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java
@@ -37,6 +37,9 @@ public class GroupURITest
         {
             // no scheme
             assertIllegalArgument("example.org/gms?gname", "scheme");
+            
+            // wrong scheme
+            assertIllegalArgument("gms://example.org/gms?gname", "scheme");
 
             // no authority
             assertIllegalArgument("ivo://gms?gname", "authority");
-- 
GitLab