Commit d14b38a6 authored by Jeff Burke's avatar Jeff Burke
Browse files

Merge branch 's1711' of ssh://mach16/srv/cadc/git/wopencadc into s1711

Conflicts:
	projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/GetGroupNamesActionTest.java
parents 9348bed4 37f8f497
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -231,11 +231,12 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
        }
        for (Group groupMember : groups)
        {
            if (!checkGroupExists(groupID))
            final String groupMemberID = groupMember.getID();
            if (!checkGroupExists(groupMemberID))
            {
                throw new GroupNotFoundException(groupID);
                throw new GroupNotFoundException(groupMemberID);
            }
            DN memberDN = getGroupDN(groupMember.getID());
            DN memberDN = getGroupDN(groupMemberID);
            members.add(memberDN.toNormalizedString());
        }
        if (!members.isEmpty())
@@ -480,14 +481,13 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
                throw new GroupNotFoundException(groupID);
            }
            
            if (searchEntry.getAttributeValueAsDN("owner") == null)
            DN groupOwner = searchEntry.getAttributeValueAsDN("owner");
            if (groupOwner == null)
            {
                //TODO assume user not allowed to read group
                throw new AccessControlException(groupID);
            }
            
            DN groupOwner = searchEntry.getAttributeValueAsDN("owner");
            
            User<X500Principal> owner;
            try
            {
+8 −9
Original line number Diff line number Diff line
@@ -77,7 +77,6 @@ import java.security.PrivilegedExceptionAction;
import java.util.List;

import javax.security.auth.Subject;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
@@ -143,56 +142,56 @@ public abstract class GroupsAction
        }
        catch (AccessControlException e)
        {
            log.debug(e);
            log.debug("Permission denied", e);
            String message = "Permission Denied";
            this.logInfo.setMessage(message);
            sendError(403, message);
        }
        catch (IllegalArgumentException e)
        {
            log.debug(e);
            log.debug("Illegal argument", e);
            String message = e.getMessage();
            this.logInfo.setMessage(message);
            sendError(400, message);
        }
        catch (MemberNotFoundException e)
        {
            log.debug(e);
            log.debug("Member Not Found", e);
            String message = "Member not found: " + e.getMessage();
            this.logInfo.setMessage(message);
            sendError(404, message);
        }
        catch (GroupNotFoundException e)
        {
            log.debug(e);
            log.debug("Group not found", e);
            String message = "Group not found: " + e.getMessage();
            this.logInfo.setMessage(message);
            sendError(404, message);
        }
        catch (UserNotFoundException e)
        {
            log.debug(e);
            log.debug("User Not Found", e);
            String message = "User not found: " + e.getMessage();
            this.logInfo.setMessage(message);
            sendError(404, message);
        }
        catch (MemberAlreadyExistsException e)
        {
            log.debug(e);
            log.debug("Member Already Exists", e);
            String message = "Member already exists: " + e.getMessage();
            this.logInfo.setMessage(message);
            sendError(409, message);
        }
        catch (GroupAlreadyExistsException e)
        {
            log.debug(e);
            log.debug("Group Already Exists", e);
            String message = "Group already exists: " + e.getMessage();
            this.logInfo.setMessage(message);
            sendError(409, message);
        }
        catch (UnsupportedOperationException e)
        {
            log.debug(e);
            log.debug("Unsupported Operation", e);
            this.logInfo.setMessage("Not yet implemented.");
            sendError(501);
        }
+12 −10
Original line number Diff line number Diff line
@@ -70,6 +70,8 @@ package ca.nrc.cadc.ac.server.web;

import ca.nrc.cadc.ac.server.GroupPersistence;
import ca.nrc.cadc.util.Log4jInit;
import ca.nrc.cadc.uws.server.SyncOutput;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.easymock.EasyMock;
@@ -122,6 +124,11 @@ public class GetGroupNamesActionTest
            mockWriter.write("\n");
            EasyMock.expectLastCall();

            final SyncOutput mockSyncOutput =
                    EasyMock.createMock(SyncOutput.class);

            mockSyncOutput.setHeader("Content-Type", "text/csv");

            final HttpServletResponse mockResponse = EasyMock.createMock(HttpServletResponse.class);
            mockResponse.setContentType("text/csv");
            EasyMock.expectLastCall();
@@ -133,16 +140,11 @@ public class GetGroupNamesActionTest

            GetGroupNamesAction action = new GetGroupNamesAction(mockLog)
            {
//                @Override
//                <T extends Principal> GroupPersistence<T> getGroupPersistence()
//                {
//                    return mockPersistence;
//                };
//
//                protected HttpServletResponse getHttpServletResponse()
//                {
//                    return mockResponse;
//                }
                @Override
                <T extends Principal> GroupPersistence<T> getGroupPersistence()
                {
                    return mockPersistence;
                };
            };

            action.run();
+10 −3
Original line number Diff line number Diff line
@@ -68,7 +68,10 @@
 */
package ca.nrc.cadc.ac.client;

import java.io.*;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
@@ -101,7 +104,11 @@ import ca.nrc.cadc.ac.Role;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.auth.AuthenticationUtil;
import ca.nrc.cadc.auth.SSLUtil;
import ca.nrc.cadc.net.*;
import ca.nrc.cadc.net.HttpDownload;
import ca.nrc.cadc.net.HttpPost;
import ca.nrc.cadc.net.HttpUpload;
import ca.nrc.cadc.net.InputStreamWrapper;
import ca.nrc.cadc.net.NetUtil;

import com.csvreader.CsvReader;

@@ -258,7 +265,7 @@ public class GMSClient
        Throwable error = transfer.getThrowable();
        if (error != null)
        {
            log.debug("getGroup throwable", error);
            log.debug("getGroup throwable (" + transfer.getResponseCode() + ")", error);
            // transfer returns a -1 code for anonymous access.
            if ((transfer.getResponseCode() == -1) || 
                (transfer.getResponseCode() == 401) ||