Skip to content
Snippets Groups Projects
Commit 8f4c7a38 authored by Dustin Jenkins's avatar Dustin Jenkins
Browse files

Merge branch 's1666' of /srv/cadc/git/wopencadc into s1666

parents d7f30f6f a10a124d
No related branches found
No related tags found
No related merge requests found
...@@ -132,17 +132,17 @@ ...@@ -132,17 +132,17 @@
</copy> </copy>
</target> </target>
<target name="test" depends="compile,compile-test,resources"> <!--<target name="test" depends="compile,compile-test,resources">-->
<echo message="Running test suite..." /> <!--<echo message="Running test suite..." />-->
<junit printsummary="yes" haltonfailure="yes" fork="yes"> <!--<junit printsummary="yes" haltonfailure="yes" fork="yes">-->
<classpath> <!--<classpath>-->
<pathelement path="${build}/class"/> <!--<pathelement path="${build}/class"/>-->
<pathelement path="${build}/test/class"/> <!--<pathelement path="${build}/test/class"/>-->
<pathelement path="${testingJars}"/> <!--<pathelement path="${testingJars}"/>-->
</classpath> <!--</classpath>-->
<test name="ca.nrc.cadc.ac.server.ldap.LdapGroupDAOTest" /> <!--<test name="ca.nrc.cadc.ac.server.ldap.LdapGroupDAOTest" />-->
<formatter type="plain" usefile="false" /> <!--<formatter type="plain" usefile="false" />-->
</junit> <!--</junit>-->
</target> <!--</target>-->
</project> </project>
...@@ -320,7 +320,7 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO ...@@ -320,7 +320,7 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
{ {
try try
{ {
Filter filter = Filter.createEqualityFilter("cn", "*"); Filter filter = Filter.createPresenceFilter("cn");
String [] attributes = new String[] {"cn", "nsaccountlock"}; String [] attributes = new String[] {"cn", "nsaccountlock"};
SearchRequest searchRequest = SearchRequest searchRequest =
...@@ -336,8 +336,8 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO ...@@ -336,8 +336,8 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
{ {
if (e.getResultCode() == ResultCode.NO_SUCH_OBJECT) if (e.getResultCode() == ResultCode.NO_SUCH_OBJECT)
{ {
logger.debug("Count not find groups root", e); logger.debug("Could not find groups root", e);
throw new IllegalStateException("Count not find groups root"); throw new IllegalStateException("Could not find groups root");
} }
} }
...@@ -345,7 +345,10 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO ...@@ -345,7 +345,10 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
List<String> groupNames = new ArrayList<String>(); List<String> groupNames = new ArrayList<String>();
for (SearchResultEntry next : searchResult.getSearchEntries()) for (SearchResultEntry next : searchResult.getSearchEntries())
{ {
groupNames.add(next.getAttributeValue("cn")); if (!next.hasAttribute("nsaccountlock"))
{
groupNames.add(next.getAttributeValue("cn"));
}
} }
return groupNames; return groupNames;
...@@ -608,7 +611,7 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO ...@@ -608,7 +611,7 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
for (Group gr : group.getGroupAdmins()) for (Group gr : group.getGroupAdmins())
{ {
DN grDN = getGroupDN(gr.getID()); DN grDN = getGroupDN(gr.getID());
newMembers.add(grDN.toNormalizedString()); newAdmins.add(grDN.toNormalizedString());
} }
mods.add(new Modification(ModificationType.REPLACE, "uniquemember", mods.add(new Modification(ModificationType.REPLACE, "uniquemember",
...@@ -783,9 +786,10 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO ...@@ -783,9 +786,10 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
} }
catch (GroupNotFoundException e) catch (GroupNotFoundException e)
{ {
throw new IllegalStateException( final String message = "BUG: group " + groupDN + " not found but " +
"BUG: group " + groupDN + " not found but " + "membership exists (" + userID + ")";
"membership exists (" + userID + ")"); logger.error(message);
//throw new IllegalStateException(message);
} }
} }
} }
......
...@@ -177,12 +177,24 @@ public class LdapGroupDAOTest ...@@ -177,12 +177,24 @@ public class LdapGroupDAOTest
expectGroup.getGroupMembers().remove(otherGroup); expectGroup.getGroupMembers().remove(otherGroup);
actualGroup = getGroupDAO().modifyGroup(expectGroup); actualGroup = getGroupDAO().modifyGroup(expectGroup);
assertGroupsEqual(expectGroup, actualGroup); assertGroupsEqual(expectGroup, actualGroup);
// delete the group
expectGroup.description = "Happy testing"; expectGroup.description = "Happy testing";
expectGroup.getUserMembers().add(daoTestUser2); expectGroup.getUserMembers().add(daoTestUser2);
expectGroup.getGroupMembers().add(otherGroup); expectGroup.getGroupMembers().add(otherGroup);
// userAdmins
expectGroup.getUserAdmins().add(daoTestUser3);
actualGroup = getGroupDAO().modifyGroup(expectGroup);
assertGroupsEqual(expectGroup, actualGroup);
// groupAdmins
Group adminGroup = new Group(getGroupID(), daoTestUser1);
adminGroup = getGroupDAO().addGroup(adminGroup);
expectGroup.getGroupAdmins().add(adminGroup);
actualGroup = getGroupDAO().modifyGroup(expectGroup);
assertGroupsEqual(expectGroup, actualGroup);
// delete the group
getGroupDAO().deleteGroup(expectGroup.getID()); getGroupDAO().deleteGroup(expectGroup.getID());
try try
{ {
...@@ -494,7 +506,7 @@ public class LdapGroupDAOTest ...@@ -494,7 +506,7 @@ public class LdapGroupDAOTest
} }
}); });
Subject.doAs(daoTestUser2Subject, new PrivilegedExceptionAction<Object>() Subject.doAs(daoTestUser1Subject, new PrivilegedExceptionAction<Object>()
{ {
public Object run() throws Exception public Object run() throws Exception
{ {
...@@ -856,12 +868,14 @@ public class LdapGroupDAOTest ...@@ -856,12 +868,14 @@ public class LdapGroupDAOTest
assertEquals(gr1.getID(), gr2.getID()); assertEquals(gr1.getID(), gr2.getID());
assertEquals(gr1.description, gr2.description); assertEquals(gr1.description, gr2.description);
assertEquals(gr1.getOwner(), gr2.getOwner()); assertEquals(gr1.getOwner(), gr2.getOwner());
assertEquals(gr1.getGroupMembers(), gr2.getGroupMembers()); assertEquals(gr1.getGroupMembers(), gr2.getGroupMembers());
assertEquals(gr1.getGroupMembers().size(), gr2.getGroupMembers().size()); assertEquals(gr1.getGroupMembers().size(), gr2.getGroupMembers().size());
for (Group gr : gr1.getGroupMembers()) for (Group gr : gr1.getGroupMembers())
{ {
assertTrue(gr2.getGroupMembers().contains(gr)); assertTrue(gr2.getGroupMembers().contains(gr));
} }
assertEquals(gr1.getUserMembers(), gr2.getUserMembers()); assertEquals(gr1.getUserMembers(), gr2.getUserMembers());
assertEquals(gr1.getUserMembers().size(), gr2.getUserMembers() assertEquals(gr1.getUserMembers().size(), gr2.getUserMembers()
.size()); .size());
...@@ -869,6 +883,22 @@ public class LdapGroupDAOTest ...@@ -869,6 +883,22 @@ public class LdapGroupDAOTest
{ {
assertTrue(gr2.getUserMembers().contains(user)); assertTrue(gr2.getUserMembers().contains(user));
} }
assertEquals(gr1.getGroupAdmins(), gr2.getGroupAdmins());
assertEquals(gr1.getGroupAdmins().size(), gr2.getGroupAdmins().size());
for (Group gr : gr1.getGroupAdmins())
{
assertTrue(gr2.getGroupAdmins().contains(gr));
}
assertEquals(gr1.getUserAdmins(), gr2.getUserAdmins());
assertEquals(gr1.getUserAdmins().size(), gr2.getUserAdmins()
.size());
for (User<?> user : gr1.getUserAdmins())
{
assertTrue(gr2.getUserAdmins().contains(user));
}
assertEquals(gr1.getProperties(), gr2.getProperties()); assertEquals(gr1.getProperties(), gr2.getProperties());
for (GroupProperty prop : gr1.getProperties()) for (GroupProperty prop : gr1.getProperties())
{ {
......
...@@ -78,6 +78,7 @@ import java.net.HttpURLConnection; ...@@ -78,6 +78,7 @@ import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.security.AccessControlContext; import java.security.AccessControlContext;
import java.security.AccessControlException; import java.security.AccessControlException;
import java.security.AccessController; import java.security.AccessController;
...@@ -235,7 +236,7 @@ public class GMSClient ...@@ -235,7 +236,7 @@ public class GMSClient
String retXML = transfer.getResponseBody(); String retXML = transfer.getResponseBody();
try try
{ {
log.debug("createGroup returned: " + groupXML); log.debug("createGroup returned: " + retXML);
return GroupReader.read(retXML); return GroupReader.read(retXML);
} }
catch (Exception bug) catch (Exception bug)
...@@ -313,15 +314,13 @@ public class GMSClient ...@@ -313,15 +314,13 @@ public class GMSClient
URL getGroupNamesURL = new URL(this.baseURL + "/groups"); URL getGroupNamesURL = new URL(this.baseURL + "/groups");
log.debug("getGroupNames request to " + getGroupNamesURL.toString()); log.debug("getGroupNames request to " + getGroupNamesURL.toString());
HttpURLConnection conn = HttpURLConnection conn = (HttpURLConnection) getGroupNamesURL.openConnection();
(HttpURLConnection) getGroupNamesURL.openConnection();
conn.setRequestMethod("GET"); conn.setRequestMethod("GET");
SSLSocketFactory sf = getSSLSocketFactory(); SSLSocketFactory sf = getSSLSocketFactory();
if ((sf != null) && ((conn instanceof HttpsURLConnection))) if ((sf != null) && ((conn instanceof HttpsURLConnection)))
{ {
((HttpsURLConnection) conn) ((HttpsURLConnection) conn).setSSLSocketFactory(sf);
.setSSLSocketFactory(sf);
} }
int responseCode = -1; int responseCode = -1;
try try
...@@ -332,11 +331,12 @@ public class GMSClient ...@@ -332,11 +331,12 @@ public class GMSClient
{ {
throw new AccessControlException(e.getMessage()); throw new AccessControlException(e.getMessage());
} }
log.debug("getGroupNames response " + responseCode);
if (responseCode != 200) if (responseCode != 200)
{ {
String errMessage = NetUtil.getErrorBody(conn); String errMessage = NetUtil.getErrorBody(conn);
log.debug("deleteGroup response " + responseCode + ": " + log.debug("getGroupNames response " + responseCode + ": " +
errMessage); errMessage);
if ((responseCode == 401) || (responseCode == 403) || if ((responseCode == 401) || (responseCode == 403) ||
...@@ -351,16 +351,19 @@ public class GMSClient ...@@ -351,16 +351,19 @@ public class GMSClient
throw new IOException("HttpResponse (" + responseCode + ") - " + errMessage); throw new IOException("HttpResponse (" + responseCode + ") - " + errMessage);
} }
log.error("Content-Length: " + conn.getHeaderField("Content-Length"));
log.error("Content-Type: " + conn.getHeaderField("Content-Type"));
try try
{ {
List<String> groupNames = new ArrayList<String>(); List<String> groupNames = new ArrayList<String>();
Reader ioReader = new InputStreamReader(conn.getInputStream()); CsvReader reader = new CsvReader(conn.getInputStream(), ',', Charset.forName("UTF-8"));
BufferedReader br = new BufferedReader(ioReader); if (reader.readRecord())
CsvReader reader = new CsvReader(br);
for (int i=0; i<reader.getColumnCount(); i++)
{ {
groupNames.add(reader.get(i)); for (int i = 0; i < reader.getColumnCount(); i++)
{
groupNames.add(reader.get(i));
}
} }
return groupNames; return groupNames;
...@@ -435,7 +438,7 @@ public class GMSClient ...@@ -435,7 +438,7 @@ public class GMSClient
String retXML = transfer.getResponseBody(); String retXML = transfer.getResponseBody();
try try
{ {
log.debug("updateGroup returned: " + groupXML); log.debug("updateGroup returned: " + retXML);
return GroupReader.read(retXML); return GroupReader.read(retXML);
} }
catch (Exception bug) catch (Exception bug)
......
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