Skip to content
Snippets Groups Projects
Commit 5377ac97 authored by Jeff Burke's avatar Jeff Burke
Browse files

Merge branch 's1890' of gimli2:/srv/cadc/git/ac into s1890

parents 609c75f3 1ea01067
No related branches found
No related tags found
No related merge requests found
Showing with 86 additions and 86 deletions
......@@ -71,7 +71,6 @@ package ca.nrc.cadc.ac.admin;
import java.io.PrintStream;
import java.security.AccessControlException;
import java.security.Principal;
import java.security.PrivilegedAction;
import ca.nrc.cadc.ac.server.UserPersistence;
......@@ -88,12 +87,12 @@ public abstract class AbstractCommand implements PrivilegedAction<Object>
protected PrintStream systemOut = System.out;
protected PrintStream systemErr = System.err;
private UserPersistence<Principal> userPersistence;
private UserPersistence userPersistence;
protected abstract void doRun()
throws AccessControlException, TransientException;
/**
* Set the system out.
* @param printStream The stream to write System.out to .
......@@ -102,7 +101,7 @@ public abstract class AbstractCommand implements PrivilegedAction<Object>
{
this.systemOut = printStream;
}
/**
* Set the system err.
* @param printStream The stream to write System.err to.
......@@ -111,36 +110,36 @@ public abstract class AbstractCommand implements PrivilegedAction<Object>
{
this.systemErr = printStream;
}
@Override
public Object run()
public Object run()
{
try
try
{
this.doRun();
}
catch (AccessControlException e)
}
catch (AccessControlException e)
{
this.systemErr.println("ERROR: " + e.getMessage());
e.printStackTrace(systemErr);
}
catch (TransientException e)
}
catch (TransientException e)
{
String message = "Internal Transient Error: " + e.getMessage();
this.systemErr.println("ERROR: " + message);
e.printStackTrace(systemErr);
}
return null;
}
protected void setUserPersistence(
final UserPersistence<Principal> userPersistence)
final UserPersistence userPersistence)
{
this.userPersistence = userPersistence;
}
public UserPersistence<Principal> getUserPersistence()
public UserPersistence getUserPersistence()
{
return userPersistence;
}
......
......@@ -70,11 +70,9 @@
package ca.nrc.cadc.ac.admin;
import java.security.AccessControlException;
import java.security.Principal;
import java.util.Date;
import java.util.IllegalFormatException;
import java.util.Properties;
import java.util.Set;
import javax.mail.Address;
import javax.mail.Message;
......@@ -86,7 +84,6 @@ import javax.security.auth.x500.X500Principal;
import org.apache.log4j.Logger;
import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.auth.HttpPrincipal;
......@@ -151,7 +148,7 @@ public class ApproveUser extends AbstractUserCommand
return;
}
User<Principal> user = null;
User user = null;
try
{
user = this.getUserPersistence().getUser(this.getPrincipal());
......@@ -176,7 +173,7 @@ public class ApproveUser extends AbstractUserCommand
}
private void emailUser(User<Principal> user)
private void emailUser(User user)
{
try
{
......@@ -202,12 +199,10 @@ public class ApproveUser extends AbstractUserCommand
return;
}
Set<PersonalDetails> pds = user.getDetails(PersonalDetails.class);
String recipient = null;
if (pds != null && !pds.isEmpty())
if (user.personalDetails != null)
{
PersonalDetails pd = pds.iterator().next();
recipient = pd.email;
recipient = user.personalDetails.email;
}
if (recipient == null)
{
......
......@@ -92,11 +92,11 @@ public class CommandRunner
{
private final static Logger LOGGER = Logger.getLogger(CommandRunner.class);
private final CmdLineParser commandLineParser;
private final UserPersistence<Principal> userPersistence;
private final UserPersistence userPersistence;
public CommandRunner(final CmdLineParser commandLineParser,
final UserPersistence<Principal> userPersistence)
final UserPersistence userPersistence)
{
this.commandLineParser = commandLineParser;
this.userPersistence = userPersistence;
......
......@@ -70,7 +70,6 @@
package ca.nrc.cadc.ac.admin;
import java.security.AccessControlException;
import java.security.Principal;
import java.util.Collection;
import org.apache.log4j.Logger;
......@@ -84,11 +83,11 @@ import ca.nrc.cadc.net.TransientException;
* @author yeunga
*
*/
public class ListActiveUsers extends AbstractListUsers
{
public class ListActiveUsers extends AbstractListUsers
{
private static final Logger log = Logger.getLogger(ListActiveUsers.class);
protected Collection<User<Principal>> getUsers()
protected Collection<User> getUsers()
throws AccessControlException, TransientException
{
return this.getUserPersistence().getUsers();
......
......@@ -70,7 +70,6 @@
package ca.nrc.cadc.ac.admin;
import java.security.AccessControlException;
import java.security.Principal;
import java.util.Collection;
import org.apache.log4j.Logger;
......@@ -80,15 +79,15 @@ import ca.nrc.cadc.net.TransientException;
/**
* This class provides a list of all active or pending users in the LDAP server.
* The users' nsaccountlocked attribute is not set.
* The users' nsaccountlocked attribute is not set.
* @author yeunga
*
*/
public class ListPendingUsers extends AbstractListUsers
{
public class ListPendingUsers extends AbstractListUsers
{
private static final Logger log = Logger.getLogger(ListPendingUsers.class);
protected Collection<User<Principal>> getUsers()
protected Collection<User> getUsers()
throws AccessControlException, TransientException
{
return this.getUserPersistence().getPendingUsers();
......
......@@ -70,7 +70,6 @@
package ca.nrc.cadc.ac.admin;
import java.io.PrintStream;
import java.security.Principal;
import java.security.cert.CertificateException;
import org.apache.log4j.Logger;
......@@ -151,7 +150,7 @@ public class Main
// Set the necessary JNDI system property for lookups.
System.setProperty("java.naming.factory.initial", ContextFactoryImpl.class.getName());
UserPersistence<Principal> userPersistence = new PluginFactory().createUserPersistence();
UserPersistence userPersistence = new PluginFactory().createUserPersistence();
final CommandRunner runner = new CommandRunner(parser, userPersistence);
runner.run();
......
......@@ -70,7 +70,6 @@
package ca.nrc.cadc.ac.admin;
import java.security.AccessControlException;
import java.security.Principal;
import org.apache.log4j.Logger;
......@@ -83,10 +82,10 @@ import ca.nrc.cadc.net.TransientException;
* @author yeunga
*
*/
public class ViewUser extends AbstractUserCommand
public class ViewUser extends AbstractUserCommand
{
private static final Logger log = Logger.getLogger(ViewUser.class);
/**
* Constructor
* @param userID Id of the user to provide details for
......@@ -96,22 +95,22 @@ public class ViewUser extends AbstractUserCommand
super(userID);
log.debug("view user: " + userID);
}
protected void execute()
throws AccessControlException, TransientException, UserNotFoundException
protected void execute()
throws AccessControlException, TransientException, UserNotFoundException
{
try
try
{
// Try the main tree first
log.debug("principal: " + this.getPrincipal());
User<Principal> user = this.getUserPersistence().getUser(this.getPrincipal());
User user = this.getUserPersistence().getUser(this.getPrincipal());
this.printUser(user);
}
catch (UserNotFoundException e)
}
catch (UserNotFoundException e)
{
// Not in the main tree, try the pending tree
User<Principal> user = this.getUserPersistence().getPendingUser(this.getPrincipal());
User user = this.getUserPersistence().getPendingUser(this.getPrincipal());
this.printUser(user);
}
}
}
}
......@@ -106,10 +106,12 @@ public class CommandRunnerTest
{
final CommandRunner testSubject =
new CommandRunner(mockParser, mockUserPersistence);
final List<User<Principal>> userData = new ArrayList<>();
final List<User> userData = new ArrayList<>();
final Principal p = new HttpPrincipal("TEST USER");
userData.add(new User<>(p));
User u = new User();
u.getIdentities().add(p);
userData.add(u);
expect(mockParser.getCommand()).andReturn(new ListActiveUsers());
......@@ -126,9 +128,11 @@ public class CommandRunnerTest
{
final CommandRunner testSubject =
new CommandRunner(mockParser, mockUserPersistence);
final List<User<HttpPrincipal>> userData = new ArrayList<>();
final List<User> userData = new ArrayList<>();
userData.add(new User<>(new HttpPrincipal("PENDING USER")));
User u = new User();
u.getIdentities().add(new HttpPrincipal("PENDING USER"));
userData.add(u);
expect(mockParser.getCommand()).andReturn(new ListPendingUsers());
......@@ -146,7 +150,8 @@ public class CommandRunnerTest
final CommandRunner testSubject =
new CommandRunner(mockParser, mockUserPersistence);
final HttpPrincipal principalData = new HttpPrincipal("TESTUSER");
final User<HttpPrincipal> userData = new User<>(principalData);
final User userData = new User();
userData.getIdentities().add(principalData);
expect(mockParser.getCommand()).andReturn(new ViewUser("TESTUSER"));
......@@ -165,7 +170,8 @@ public class CommandRunnerTest
final CommandRunner testSubject =
new CommandRunner(mockParser, mockUserPersistence);
final HttpPrincipal principalData = new HttpPrincipal("PENDINGUSER");
final User<HttpPrincipal> userData = new User<>(principalData);
final User userData = new User();
userData.getIdentities().add(principalData);
expect(mockParser.getCommand()).andReturn(new ApproveUser("PENDINGUSER", "CN=DN"));
......
......@@ -68,13 +68,29 @@
*/
package ca.nrc.cadc.ac.admin;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.security.Principal;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import javax.security.auth.Subject;
import javax.security.auth.x500.X500Principal;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.junit.BeforeClass;
import org.junit.Test;
import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.UserAlreadyExistsException;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.ac.UserRequest;
import ca.nrc.cadc.ac.admin.ContextFactoryImpl;
import ca.nrc.cadc.ac.admin.Main;
import ca.nrc.cadc.ac.server.ldap.LdapConfig;
import ca.nrc.cadc.ac.server.ldap.LdapUserPersistence;
import ca.nrc.cadc.auth.DNPrincipal;
......@@ -83,19 +99,6 @@ import ca.nrc.cadc.net.TransientException;
import ca.nrc.cadc.util.Log4jInit;
import ca.nrc.cadc.util.PropertiesReader;
import ca.nrc.cadc.util.StringUtil;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import javax.security.auth.Subject;
import javax.security.auth.x500.X500Principal;
import java.io.*;
import java.security.Principal;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
public class UserAdminTest
......@@ -222,7 +225,7 @@ public class UserAdminTest
{
String userID = "foo_" + System.currentTimeMillis();
String[] args = new String[] { "--approve=" + userID,
String[] args = new String[] { "--approve=" + userID,
"--dn=UID=" + userID + ",OU=Users,OU=ds,DC=testcanfar"};
doTest(args);
......@@ -302,16 +305,17 @@ public class UserAdminTest
String dn = "uid=" + username + "," + config.getUsersDN();
X500Principal x500Principal = new X500Principal(dn);
final User<Principal> expected = new User<Principal>(userID);
final User expected = new User();
expected.getIdentities().add(userID);
expected.getIdentities().add(userID);
expected.getIdentities().add(x500Principal);
PersonalDetails pd = new PersonalDetails("foo", "bar");
pd.email = username + "@canada.ca";
expected.details.add(pd);
pd.email = username + "@canada.ca";
expected.personalDetails = pd;
final UserRequest<Principal> userRequest =
new UserRequest<Principal>(expected, "123456".toCharArray());
final UserRequest userRequest =
new UserRequest(expected, "123456".toCharArray());
Subject subject = new Subject();
subject.getPrincipals().add(userID);
......@@ -325,7 +329,7 @@ public class UserAdminTest
{
try
{
final LdapUserPersistence<Principal> userDAO = getUserPersistence();
final LdapUserPersistence userDAO = getUserPersistence();
if (isPending)
{
userDAO.addPendingUser(userRequest);
......@@ -349,7 +353,7 @@ public class UserAdminTest
Subject.doAs(subject, action);
}
User<Principal> getUser(final String username, final boolean isPending,
User getUser(final String username, final boolean isPending,
final boolean expectedFound)
throws PrivilegedActionException
{
......@@ -359,15 +363,15 @@ public class UserAdminTest
subject.getPrincipals().add(userID);
subject.getPrincipals().add(getDNPrincipal(username, isPending));
PrivilegedExceptionAction<User<Principal>> action =
new PrivilegedExceptionAction<User<Principal>>()
PrivilegedExceptionAction<User> action =
new PrivilegedExceptionAction<User>()
{
public User<Principal> run()
public User run()
throws Exception
{
try
{
final LdapUserPersistence<Principal> userDAO = getUserPersistence();
final LdapUserPersistence userDAO = getUserPersistence();
if (isPending)
{
return userDAO.getPendingUser(userID);
......@@ -391,10 +395,10 @@ public class UserAdminTest
return Subject.doAs(subject, action);
}
<T extends Principal> LdapUserPersistence<T> getUserPersistence()
<T extends Principal> LdapUserPersistence getUserPersistence()
{
System.setProperty("java.naming.factory.initial", ContextFactoryImpl.class.getName());
return new LdapUserPersistence<T>();
return new LdapUserPersistence();
}
DNPrincipal getDNPrincipal(final String username, final boolean isPending)
......
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