Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
......@@ -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
{
......
......@@ -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);
}
......
......@@ -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();
......
......@@ -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) ||
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment