Commit 5fe594dd authored by Dustin Jenkins's avatar Dustin Jenkins
Browse files

Merge branch 's1848' into ac2

parents a4e0d379 b79e900e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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..." />
+17 −9
Original line number Diff line number Diff line
@@ -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());
    }

    /**
+13 −26
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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)
@@ -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);
@@ -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);
            }
+11 −13
Original line number Diff line number Diff line
@@ -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;
@@ -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);
        }
    }

}
+11 −11
Original line number Diff line number Diff line
@@ -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;
@@ -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