Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAO.java +6 −6 Original line number Diff line number Diff line Loading @@ -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()) Loading Loading @@ -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 { Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/GroupsAction.java +8 −9 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/GetGroupNamesActionTest.java +12 −10 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading @@ -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(); Loading projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java +10 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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) || Loading Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAO.java +6 −6 Original line number Diff line number Diff line Loading @@ -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()) Loading Loading @@ -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 { Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/GroupsAction.java +8 −9 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading
projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/GetGroupNamesActionTest.java +12 −10 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading @@ -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(); Loading
projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java +10 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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) || Loading