Loading projects/cadcAccessControl/build.xml +1 −1 Original line number Diff line number Diff line Loading @@ -115,7 +115,7 @@ <property name="junit" value="${ext.dev}/junit.jar" /> <property name="objenesis" value="${ext.dev}/objenesis.jar" /> <property name="testingJars" value="${build}/class:${jars}:${xerces}:${asm}:${cglib}:${easymock}:${junit}:${objenesis}" /> <property name="testingJars" value="${build}/class:${ext.dev}/jsonassert.jar:${jars}:${xerces}:${asm}:${cglib}:${easymock}:${junit}:${objenesis}" /> <target name="single-test" depends="compile,compile-test"> <echo message="Running test suite..." /> Loading projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java +17 −9 Original line number Diff line number Diff line Loading @@ -129,28 +129,36 @@ public class GMSClient implements TransferListener private SSLSocketFactory sslSocketFactory; private SSLSocketFactory mySocketFactory; // client needs to know which servcie it is bound to and lookup // endpoints using RegistryClient private URI serviceURI; private String baseURL; public GMSClient(URI serviceURI) /** * Slightly more complete constructor. Tests can override the * RegistryClient. * * @param serviceURI The service URI. * @param registryClient The Registry Client. */ public GMSClient(URI serviceURI, RegistryClient registryClient) { this.serviceURI = serviceURI; try { RegistryClient reg = new RegistryClient(); URL base = reg.getServiceURL(serviceURI, "https"); URL base = registryClient.getServiceURL(serviceURI, "https"); if (base == null) throw new IllegalArgumentException("service not found with https access: " + serviceURI); this.baseURL = base.toExternalForm(); log.debug("AC Service URI: " + this.baseURL); } catch(MalformedURLException ex) { throw new RuntimeException("BUG: failed to construct GMS base URL", ex); } finally { } } public GMSClient(URI serviceURI) { this(serviceURI, new RegistryClient()); } /** Loading projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClientMain.java +13 −26 Original line number Diff line number Diff line Loading @@ -72,7 +72,6 @@ package ca.nrc.cadc.ac.client; import ca.nrc.cadc.ac.Group; import ca.nrc.cadc.ac.User; import java.net.URI; import java.net.URL; import java.security.PrivilegedAction; import javax.security.auth.Subject; Loading @@ -82,7 +81,6 @@ import org.apache.log4j.Logger; import ca.nrc.cadc.auth.CertCmdArgUtil; import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.reg.client.RegistryClient; import ca.nrc.cadc.util.ArgumentMap; import ca.nrc.cadc.util.Log4jInit; import java.security.AccessControlContext; Loading Loading @@ -121,18 +119,7 @@ public class GMSClientMain implements PrivilegedAction<Object> private GMSClientMain() { RegistryClient regClient = new RegistryClient(); URL acURL = null; try { acURL = regClient.getServiceURL(new URI("ivo://cadc.nrc.ca/canfargms"), "https"); } catch (Exception e) { log.error("FAIL", e); } log.info("GMS service URL: " + acURL); client = new GMSClient(acURL.toString()); client = new GMSClient(URI.create("ivo://cadc.nrc.ca/canfargms")); } public static void main(String[] args) Loading Loading @@ -163,7 +150,7 @@ public class GMSClientMain implements PrivilegedAction<Object> Subject subject = CertCmdArgUtil.initSubject(argMap, true); Object response = null; final Object response; if (subject != null) response = Subject.doAs(subject, main); Loading Loading @@ -245,7 +232,7 @@ public class GMSClientMain implements PrivilegedAction<Object> Set<X500Principal> principals = subject.getPrincipals(X500Principal.class); X500Principal p = principals.iterator().next(); Group g = new Group(group, new User(p)); Group g = new Group(group, new User<X500Principal>(p)); g.getUserMembers().add(g.getOwner()); client.createGroup(g); } Loading projects/cadcAccessControl/src/ca/nrc/cadc/ac/json/JsonGroupWriter.java +11 −13 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import ca.nrc.cadc.ac.xml.GroupWriter; import ca.nrc.cadc.xml.JsonOutputter; import org.jdom2.Document; import org.jdom2.Element; import org.json.JSONException; import java.io.IOException; import java.io.Writer; Loading @@ -92,30 +93,27 @@ public class JsonGroupWriter extends GroupWriter * @throws WriterException */ @Override public void write(Group group, Writer writer) throws IOException, WriterException public void write(Group group, Writer writer) throws IOException { if (group == null) { throw new WriterException("null group"); } Element children = getElement(group); Element groupElement = new Element("group"); groupElement.addContent(children); Element groupElement = getElement(group, true); Document document = new Document(); document.setRootElement(groupElement); JsonOutputter jsonOutputter = new JsonOutputter(); jsonOutputter.getListElementNames().add("properties"); jsonOutputter.getListElementNames().add("userMembers"); jsonOutputter.getListElementNames().add("groupMembers"); jsonOutputter.getListElementNames().add("userAdmins"); jsonOutputter.getListElementNames().add("groupAdmins"); jsonOutputter.getListElementNames().add("identities"); jsonOutputter.getListElementNames().add("details"); try { jsonOutputter.output(document, writer); } catch (JSONException e) { throw new IOException(e); } } } projects/cadcAccessControl/src/ca/nrc/cadc/ac/json/JsonUserListWriter.java +11 −11 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import ca.nrc.cadc.ac.xml.UserListWriter; import ca.nrc.cadc.xml.JsonOutputter; import org.jdom2.Document; import org.jdom2.Element; import org.json.JSONException; import java.io.IOException; import java.io.Writer; Loading @@ -91,31 +92,30 @@ public class JsonUserListWriter extends UserListWriter * @param users Users to write. * @param writer Writer to write to. * @throws IOException if the writer fails to write. * @throws WriterException */ @Override public <T extends Principal> void write(Collection<User<T>> users, Writer writer) throws IOException, WriterException throws IOException { if (users == null) { throw new WriterException("null users"); } Element usersElement = new Element("users"); for (User<? extends Principal> user : users) { Element userElement = new Element(("user")); userElement.addContent(getElement(user)); } Element usersElement = getElement(users); Document document = new Document(); document.setRootElement(usersElement); JsonOutputter jsonOutputter = new JsonOutputter(); jsonOutputter.getListElementNames().add("identities"); jsonOutputter.getListElementNames().add("details"); try { jsonOutputter.output(document, writer); } catch (JSONException e) { throw new IOException(e); } } } Loading
projects/cadcAccessControl/build.xml +1 −1 Original line number Diff line number Diff line Loading @@ -115,7 +115,7 @@ <property name="junit" value="${ext.dev}/junit.jar" /> <property name="objenesis" value="${ext.dev}/objenesis.jar" /> <property name="testingJars" value="${build}/class:${jars}:${xerces}:${asm}:${cglib}:${easymock}:${junit}:${objenesis}" /> <property name="testingJars" value="${build}/class:${ext.dev}/jsonassert.jar:${jars}:${xerces}:${asm}:${cglib}:${easymock}:${junit}:${objenesis}" /> <target name="single-test" depends="compile,compile-test"> <echo message="Running test suite..." /> Loading
projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java +17 −9 Original line number Diff line number Diff line Loading @@ -129,28 +129,36 @@ public class GMSClient implements TransferListener private SSLSocketFactory sslSocketFactory; private SSLSocketFactory mySocketFactory; // client needs to know which servcie it is bound to and lookup // endpoints using RegistryClient private URI serviceURI; private String baseURL; public GMSClient(URI serviceURI) /** * Slightly more complete constructor. Tests can override the * RegistryClient. * * @param serviceURI The service URI. * @param registryClient The Registry Client. */ public GMSClient(URI serviceURI, RegistryClient registryClient) { this.serviceURI = serviceURI; try { RegistryClient reg = new RegistryClient(); URL base = reg.getServiceURL(serviceURI, "https"); URL base = registryClient.getServiceURL(serviceURI, "https"); if (base == null) throw new IllegalArgumentException("service not found with https access: " + serviceURI); this.baseURL = base.toExternalForm(); log.debug("AC Service URI: " + this.baseURL); } catch(MalformedURLException ex) { throw new RuntimeException("BUG: failed to construct GMS base URL", ex); } finally { } } public GMSClient(URI serviceURI) { this(serviceURI, new RegistryClient()); } /** Loading
projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClientMain.java +13 −26 Original line number Diff line number Diff line Loading @@ -72,7 +72,6 @@ package ca.nrc.cadc.ac.client; import ca.nrc.cadc.ac.Group; import ca.nrc.cadc.ac.User; import java.net.URI; import java.net.URL; import java.security.PrivilegedAction; import javax.security.auth.Subject; Loading @@ -82,7 +81,6 @@ import org.apache.log4j.Logger; import ca.nrc.cadc.auth.CertCmdArgUtil; import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.reg.client.RegistryClient; import ca.nrc.cadc.util.ArgumentMap; import ca.nrc.cadc.util.Log4jInit; import java.security.AccessControlContext; Loading Loading @@ -121,18 +119,7 @@ public class GMSClientMain implements PrivilegedAction<Object> private GMSClientMain() { RegistryClient regClient = new RegistryClient(); URL acURL = null; try { acURL = regClient.getServiceURL(new URI("ivo://cadc.nrc.ca/canfargms"), "https"); } catch (Exception e) { log.error("FAIL", e); } log.info("GMS service URL: " + acURL); client = new GMSClient(acURL.toString()); client = new GMSClient(URI.create("ivo://cadc.nrc.ca/canfargms")); } public static void main(String[] args) Loading Loading @@ -163,7 +150,7 @@ public class GMSClientMain implements PrivilegedAction<Object> Subject subject = CertCmdArgUtil.initSubject(argMap, true); Object response = null; final Object response; if (subject != null) response = Subject.doAs(subject, main); Loading Loading @@ -245,7 +232,7 @@ public class GMSClientMain implements PrivilegedAction<Object> Set<X500Principal> principals = subject.getPrincipals(X500Principal.class); X500Principal p = principals.iterator().next(); Group g = new Group(group, new User(p)); Group g = new Group(group, new User<X500Principal>(p)); g.getUserMembers().add(g.getOwner()); client.createGroup(g); } Loading
projects/cadcAccessControl/src/ca/nrc/cadc/ac/json/JsonGroupWriter.java +11 −13 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import ca.nrc.cadc.ac.xml.GroupWriter; import ca.nrc.cadc.xml.JsonOutputter; import org.jdom2.Document; import org.jdom2.Element; import org.json.JSONException; import java.io.IOException; import java.io.Writer; Loading @@ -92,30 +93,27 @@ public class JsonGroupWriter extends GroupWriter * @throws WriterException */ @Override public void write(Group group, Writer writer) throws IOException, WriterException public void write(Group group, Writer writer) throws IOException { if (group == null) { throw new WriterException("null group"); } Element children = getElement(group); Element groupElement = new Element("group"); groupElement.addContent(children); Element groupElement = getElement(group, true); Document document = new Document(); document.setRootElement(groupElement); JsonOutputter jsonOutputter = new JsonOutputter(); jsonOutputter.getListElementNames().add("properties"); jsonOutputter.getListElementNames().add("userMembers"); jsonOutputter.getListElementNames().add("groupMembers"); jsonOutputter.getListElementNames().add("userAdmins"); jsonOutputter.getListElementNames().add("groupAdmins"); jsonOutputter.getListElementNames().add("identities"); jsonOutputter.getListElementNames().add("details"); try { jsonOutputter.output(document, writer); } catch (JSONException e) { throw new IOException(e); } } }
projects/cadcAccessControl/src/ca/nrc/cadc/ac/json/JsonUserListWriter.java +11 −11 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import ca.nrc.cadc.ac.xml.UserListWriter; import ca.nrc.cadc.xml.JsonOutputter; import org.jdom2.Document; import org.jdom2.Element; import org.json.JSONException; import java.io.IOException; import java.io.Writer; Loading @@ -91,31 +92,30 @@ public class JsonUserListWriter extends UserListWriter * @param users Users to write. * @param writer Writer to write to. * @throws IOException if the writer fails to write. * @throws WriterException */ @Override public <T extends Principal> void write(Collection<User<T>> users, Writer writer) throws IOException, WriterException throws IOException { if (users == null) { throw new WriterException("null users"); } Element usersElement = new Element("users"); for (User<? extends Principal> user : users) { Element userElement = new Element(("user")); userElement.addContent(getElement(user)); } Element usersElement = getElement(users); Document document = new Document(); document.setRootElement(usersElement); JsonOutputter jsonOutputter = new JsonOutputter(); jsonOutputter.getListElementNames().add("identities"); jsonOutputter.getListElementNames().add("details"); try { jsonOutputter.output(document, writer); } catch (JSONException e) { throw new IOException(e); } } }