package org.cagrid.dorian.federation;
import java.security.cert.X509Certificate;
import java.util.List;
import junit.framework.TestCase;
import org.cagrid.dorian.common.CommonUtils;
import org.cagrid.dorian.common.SAMLConstants;
import org.cagrid.dorian.model.exceptions.InvalidUserException;
import org.cagrid.dorian.model.federation.GridUser;
import org.cagrid.dorian.model.federation.GridUserFilter;
import org.cagrid.dorian.model.federation.GridUserRecord;
import org.cagrid.dorian.model.federation.GridUserSearchCriteria;
import org.cagrid.dorian.model.federation.GridUserStatus;
import org.cagrid.dorian.model.federation.SAMLAttributeDescriptor;
import org.cagrid.dorian.model.federation.SAMLAuthenticationMethod;
import org.cagrid.dorian.model.federation.TrustedIdP;
import org.cagrid.dorian.model.federation.TrustedIdPStatus;
import org.cagrid.dorian.service.PropertyManager;
import org.cagrid.dorian.service.ca.CertificateAuthority;
import org.cagrid.dorian.service.federation.AutoApprovalPolicy;
import org.cagrid.dorian.service.federation.FederationDefaults;
import org.cagrid.dorian.service.federation.IdentityAssignmentPolicy;
import org.cagrid.dorian.service.federation.IdentityFederationProperties;
import org.cagrid.dorian.service.federation.Publisher;
import org.cagrid.dorian.service.federation.TrustedIdPManager;
import org.cagrid.dorian.service.federation.UserManager;
import org.cagrid.gaards.dorian.test.CA;
import org.cagrid.gaards.dorian.test.Credential;
import org.cagrid.gaards.dorian.test.Utils;
import org.cagrid.gaards.pki.CertUtil;
import org.cagrid.tools.database.Database;
/**
* @author <A href="mailto:langella@bmi.osu.edu">Stephen Langella </A>
* @author <A href="mailto:oster@bmi.osu.edu">Scott Oster </A>
* @author <A href="mailto:hastings@bmi.osu.edu">Shannon Hastings </A>
* @version $Id: ArgumentManagerTable.java,v 1.2 2004/10/15 16:35:16 langella
* Exp $
*/
public class TestUserManager extends TestCase implements Publisher {
private static final int INIT_USER = 1;
private static final String DEFAULT_IDP_NAME = "Dorian IdP";
private Database db;
private CertificateAuthority ca;
private CA memoryCA;
private PropertyManager props;
public void testSingleUserIdPNameBasedIdentitfiers() {
try {
checkSingleUser(getUserManagerNameBasedIdentities());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
public void testSingleUserIdPIdBasedIdentitfiers() {
try {
checkSingleUser(getUserManagerIdBasedIdentities());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
public void testMultipleUsersIdPNameBasedIdentitfiers() {
try {
checkMultipleUsers(getUserManagerNameBasedIdentities());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
public void testMultipleUsersIdPIdBasedIdentitfiers() {
try {
checkMultipleUsers(getUserManagerIdBasedIdentities());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
public void checkSingleUser(UserManager um) {
try {
// Test adding user
GridUser user = new GridUser();
user.setIdPId(INIT_USER + 1);
user.setUID("user");
user.setFirstName("John");
user.setLastName("Doe");
user.setEmail("user@user.com");
user = um.addUser(getIdp(user), user);
String expectedGridIdentity = CommonUtils.subjectToIdentity(UserManager.getUserSubject(um.getIdentityAssignmentPolicy(), ca.getCACertificate().getSubjectDN().getName(), getIdp(user),
user.getUID()));
assertNotNull(user.getGridId());
assertNotNull(user.getUserStatus());
assertEquals(GridUserStatus.PENDING, user.getUserStatus());
assertEquals(expectedGridIdentity, user.getGridId());
assertEquals(user, um.getUser(user.getIdPId(), user.getUID()));
assertEquals(user, um.getUser(user.getGridId()));
GridUserRecord userRecord = um.getUserRecord(user.getGridId());
assertEquals(user.getGridId(), userRecord.getIdentity());
assertEquals(user.getFirstName(), userRecord.getFirstName());
assertEquals(user.getLastName(), userRecord.getLastName());
assertEquals(user.getEmail(), userRecord.getEmail());
// Test Querying for users
GridUserFilter f1 = new GridUserFilter();
GridUser[] l1 = um.getUsers(f1);
assertEquals(1 + INIT_USER, l1.length);
GridUser u3 = um.getUser(user.getGridId());
u3.setUserStatus(GridUserStatus.ACTIVE);
um.updateUser(u3);
assertEquals(u3, um.getUser(u3.getGridId()));
user = u3;
List<GridUserRecord> s1 = um.getUsers(toSearchCriteria(f1));
assertEquals(1 + INIT_USER, s1.size());
// Test querying by uid
GridUserFilter f2 = new GridUserFilter();
f2.setUID("nobody");
GridUser[] l2 = um.getUsers(f2);
assertEquals(0, l2.length);
f2.setUID("use");
l2 = um.getUsers(f2);
assertEquals(1, l2.length);
assertEquals(user, l2[0]);
// Test querying by IdP_Id
GridUserFilter f3 = new GridUserFilter();
f3.setIdPId(Long.MAX_VALUE);
GridUser[] l3 = um.getUsers(f3);
assertEquals(0, l3.length);
f3.setIdPId(user.getIdPId());
l3 = um.getUsers(f3);
assertEquals(1, l3.length);
assertEquals(user, l3[0]);
// Test querying by GID
GridUserFilter f4 = new GridUserFilter();
f4.setGridId("nobody");
GridUser[] l4 = um.getUsers(f4);
assertEquals(0, l4.length);
List<GridUserRecord> s4 = um.getUsers(toSearchCriteria(f4));
assertEquals(0, s4.size());
f4.setGridId(user.getGridId());
l4 = um.getUsers(f4);
assertEquals(1, l4.length);
assertEquals(user, l4[0]);
s4 = um.getUsers(toSearchCriteria(f4));
assertEquals(1, s4.size());
assertEquals(userRecord, s4.get(0));
// Test querying by Email
GridUserFilter f5 = new GridUserFilter();
f5.setEmail("nobody");
GridUser[] l5 = um.getUsers(f5);
assertEquals(0, l5.length);
List<GridUserRecord> s5 = um.getUsers(toSearchCriteria(f5));
assertEquals(0, s5.size());
f5.setEmail(user.getEmail());
l5 = um.getUsers(f5);
assertEquals(1, l5.length);
assertEquals(user, l5[0]);
s5 = um.getUsers(toSearchCriteria(f5));
assertEquals(1, s5.size());
assertEquals(userRecord, s5.get(0));
// Test querying by Status
GridUserFilter f7 = new GridUserFilter();
f7.setUserStatus(GridUserStatus.SUSPENDED);
GridUser[] l7 = um.getUsers(f7);
assertEquals(0, l7.length);
f7.setUserStatus(user.getUserStatus());
l7 = um.getUsers(f7);
assertEquals(1 + INIT_USER, l7.length);
// Test querying by First Name
GridUserFilter f8 = new GridUserFilter();
f8.setFirstName("nobody");
GridUser[] l8 = um.getUsers(f8);
assertEquals(0, l8.length);
List<GridUserRecord> s8 = um.getUsers(toSearchCriteria(f8));
assertEquals(0, s8.size());
f8.setFirstName(user.getFirstName());
l8 = um.getUsers(f8);
assertEquals(1, l8.length);
assertEquals(user, l8[0]);
s8 = um.getUsers(toSearchCriteria(f8));
assertEquals(1, s8.size());
assertEquals(userRecord, s8.get(0));
// Test querying by Last Name
GridUserFilter f9 = new GridUserFilter();
f9.setLastName("nobody");
GridUser[] l9 = um.getUsers(f9);
assertEquals(0, l9.length);
List<GridUserRecord> s9 = um.getUsers(toSearchCriteria(f9));
assertEquals(0, s9.size());
f9.setLastName(user.getLastName());
l9 = um.getUsers(f9);
assertEquals(1, l9.length);
assertEquals(user, l9[0]);
s9 = um.getUsers(toSearchCriteria(f9));
assertEquals(1, s9.size());
assertEquals(userRecord, s9.get(0));
// Test All
GridUserFilter all = new GridUserFilter();
all.setIdPId(user.getIdPId());
all.setUID(user.getUID());
all.setGridId(user.getGridId());
all.setFirstName(user.getFirstName());
all.setLastName(user.getLastName());
all.setEmail(user.getEmail());
all.setUserStatus(user.getUserStatus());
GridUser[] allList = um.getUsers(all);
assertEquals(1, allList.length);
assertEquals(user, allList[0]);
List<GridUserRecord> sAll = um.getUsers(toSearchCriteria(all));
assertEquals(1, sAll.size());
assertEquals(userRecord, sAll.get(0));
// Test Update
GridUser u1 = um.getUser(user.getGridId());
u1.setFirstName("newfirst");
u1.setLastName("newlast");
u1.setEmail("newemail@example.com");
um.updateUser(u1);
assertEquals(u1, um.getUser(u1.getGridId()));
GridUser u4 = um.getUser(user.getGridId());
u4.setUserStatus(GridUserStatus.SUSPENDED);
u4.setEmail("newemail2@example.com");
um.updateUser(u4);
assertEquals(u4, um.getUser(u4.getGridId()));
GridUser u5 = um.getUser(user.getGridId());
u5.setGridId("changed grid id");
try {
um.updateUser(u5);
fail("Should not be able to change a user's grid identity.");
} catch (InvalidUserException e) {
if (!gov.nih.nci.cagrid.common.Utils.getExceptionMessage(e).equals(UserManager.CANNOT_UPDATE_GRID_IDENTITY_ERROR)) {
fail("Should not be able to change a user's grid identity.");
}
}
;
um.removeUser(u5);
assertEquals(INIT_USER, um.getUsers(new GridUserFilter()).length);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void checkMultipleUsers(UserManager um) {
try {
String prefix = "user";
String firstNamePrefix = "John";
String lastNamePrefix = "Doe";
int userCount = 9;
for (int i = 0; i < userCount; i++) {
// Test adding user
long idpId = (i % 3) + 1 + INIT_USER;
long idpCount = (i / 3) + 1;
String uname = prefix + i;
String firstName = firstNamePrefix + i;
String lastName = lastNamePrefix + i;
GridUser user = new GridUser();
user.setIdPId(idpId);
user.setUID(uname);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setEmail(uname + "@user.com");
user = um.addUser(getIdp(user), user);
String expectedGridIdentity = CommonUtils.subjectToIdentity(UserManager.getUserSubject(um.getIdentityAssignmentPolicy(), ca.getCACertificate().getSubjectDN().getName(), getIdp(user),
user.getUID()));
assertNotNull(user.getGridId());
assertNotNull(user.getUserStatus());
assertEquals(expectedGridIdentity, user.getGridId());
assertEquals(user, um.getUser(user.getIdPId(), user.getUID()));
assertEquals(user, um.getUser(user.getGridId()));
GridUserRecord userRecord = um.getUserRecord(user.getGridId());
assertEquals(user.getGridId(), userRecord.getIdentity());
assertEquals(user.getFirstName(), userRecord.getFirstName());
assertEquals(user.getLastName(), userRecord.getLastName());
assertEquals(user.getEmail(), userRecord.getEmail());
// Test Querying for users
GridUserFilter f1 = new GridUserFilter();
GridUser[] l1 = um.getUsers(f1);
assertEquals((i + 1 + INIT_USER), l1.length);
GridUser u3 = um.getUser(user.getGridId());
u3.setUserStatus(GridUserStatus.ACTIVE);
um.updateUser(u3);
assertEquals(u3, um.getUser(u3.getGridId()));
user = u3;
List<GridUserRecord> s1 = um.getUsers(toSearchCriteria(f1));
assertEquals((i + 1 + INIT_USER), s1.size());
// Test querying by uid
GridUserFilter f2 = new GridUserFilter();
f2.setUID("nobody");
GridUser[] l2 = um.getUsers(f2);
assertEquals(0, l2.length);
f2.setUID("use");
l2 = um.getUsers(f2);
assertEquals((i + 1), l2.length);
f2.setUID(uname);
l2 = um.getUsers(f2);
assertEquals(1, l2.length);
assertEquals(user, l2[0]);
// Test querying by IdP_Id
GridUserFilter f3 = new GridUserFilter();
f3.setIdPId(Long.MAX_VALUE);
GridUser[] l3 = um.getUsers(f3);
assertEquals(0, l3.length);
f3.setIdPId(user.getIdPId());
l3 = um.getUsers(f3);
assertEquals(idpCount, l3.length);
// Test querying by GID
GridUserFilter f4 = new GridUserFilter();
f4.setGridId("nobody");
GridUser[] l4 = um.getUsers(f4);
assertEquals(0, l4.length);
List<GridUserRecord> s4 = um.getUsers(toSearchCriteria(f4));
assertEquals(0, s4.size());
String temp = user.getGridId();
int index = temp.lastIndexOf("/");
temp = temp.substring(0, index);
f4.setGridId(temp);
l4 = um.getUsers(f4);
assertEquals(idpCount, l4.length);
s4 = um.getUsers(toSearchCriteria(f4));
assertEquals(idpCount, s4.size());
f4.setGridId(user.getGridId());
l4 = um.getUsers(f4);
assertEquals(1, l4.length);
assertEquals(user, l4[0]);
s4 = um.getUsers(toSearchCriteria(f4));
assertEquals(1, s4.size());
assertEquals(userRecord, s4.get(0));
// Test querying by Email
GridUserFilter f5 = new GridUserFilter();
f5.setEmail("nobody");
GridUser[] l5 = um.getUsers(f5);
assertEquals(0, l5.length);
List<GridUserRecord> s5 = um.getUsers(toSearchCriteria(f5));
assertEquals(0, s5.size());
f5.setEmail(user.getEmail());
l5 = um.getUsers(f5);
assertEquals(1, l5.length);
assertEquals(user, l5[0]);
s5 = um.getUsers(toSearchCriteria(f5));
assertEquals(1, s5.size());
assertEquals(userRecord, s5.get(0));
// Test querying by Status
GridUserFilter f7 = new GridUserFilter();
f7.setUserStatus(GridUserStatus.SUSPENDED);
GridUser[] l7 = um.getUsers(f7);
assertEquals(0, l7.length);
f7.setUserStatus(user.getUserStatus());
l7 = um.getUsers(f7);
assertEquals((i + 1 + INIT_USER), l7.length);
// Test querying by First Name
GridUserFilter f8 = new GridUserFilter();
f8.setFirstName("nobody");
GridUser[] l8 = um.getUsers(f8);
assertEquals(0, l8.length);
List<GridUserRecord> s8 = um.getUsers(toSearchCriteria(f8));
assertEquals(0, s8.size());
f8.setFirstName(firstNamePrefix);
l8 = um.getUsers(f8);
assertEquals((i + 1), l8.length);
s8 = um.getUsers(toSearchCriteria(f8));
assertEquals((i + 1), s8.size());
f8.setFirstName(user.getFirstName());
l8 = um.getUsers(f8);
assertEquals(1, l8.length);
assertEquals(user, l8[0]);
s8 = um.getUsers(toSearchCriteria(f8));
assertEquals(1, s8.size());
assertEquals(userRecord, s8.get(0));
// Test querying by Last Name
GridUserFilter f9 = new GridUserFilter();
f9.setLastName("nobody");
GridUser[] l9 = um.getUsers(f9);
assertEquals(0, l9.length);
List<GridUserRecord> s9 = um.getUsers(toSearchCriteria(f9));
assertEquals(0, s9.size());
f9.setLastName(lastNamePrefix);
l9 = um.getUsers(f9);
assertEquals((i + 1), l9.length);
s9 = um.getUsers(toSearchCriteria(f9));
assertEquals((i + 1), s9.size());
f9.setLastName(user.getLastName());
l9 = um.getUsers(f9);
assertEquals(1, l9.length);
assertEquals(user, l9[0]);
s9 = um.getUsers(toSearchCriteria(f9));
assertEquals(1, s9.size());
assertEquals(userRecord, s9.get(0));
// Test All
GridUserFilter all = new GridUserFilter();
all.setIdPId(user.getIdPId());
all.setUID(user.getUID());
all.setGridId(user.getGridId());
all.setFirstName(user.getFirstName());
all.setLastName(user.getLastName());
all.setEmail(user.getEmail());
all.setUserStatus(user.getUserStatus());
GridUser[] lall = um.getUsers(all);
assertEquals(1, lall.length);
assertEquals(user, lall[0]);
List<GridUserRecord> sall = um.getUsers(toSearchCriteria(all));
assertEquals(1, sall.size());
assertEquals(userRecord, sall.get(0));
// Test Update
GridUser u1 = um.getUser(user.getGridId());
u1.setEmail("newemail@example.com");
um.updateUser(u1);
assertEquals(u1, um.getUser(u1.getGridId()));
u3.setUserStatus(GridUserStatus.SUSPENDED);
um.updateUser(u3);
assertEquals(u3, um.getUser(u3.getGridId()));
GridUser u4 = um.getUser(user.getGridId());
u4.setUserStatus(GridUserStatus.ACTIVE);
u4.setEmail("newemail2@example.com");
um.updateUser(u4);
assertEquals(u4, um.getUser(u4.getGridId()));
GridUser u5 = um.getUser(user.getGridId());
u5.setGridId("changed grid id" + i);
try {
um.updateUser(u5);
fail("Should not be able to change a user's grid identity.");
} catch (InvalidUserException e) {
if (!gov.nih.nci.cagrid.common.Utils.getExceptionMessage(e).equals(UserManager.CANNOT_UPDATE_GRID_IDENTITY_ERROR)) {
fail("Should not be able to change a user's grid identity.");
}
}
}
// um.removeUser(u5);
GridUser[] list = um.getUsers(new GridUserFilter());
assertEquals(userCount + INIT_USER, list.length);
int count = userCount;
for (int i = 0; i < list.length; i++) {
count = count - 1;
um.removeUser(list[i]);
assertEquals(count + INIT_USER, um.getUsers(new GridUserFilter()).length);
}
assertEquals(0, um.getUsers(new GridUserFilter()).length);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testUpdateRejectedUserInvalidStatus() {
UserManager um = null;
try {
um = getUserManagerNameBasedIdentities();
GridUser user = new GridUser();
user.setIdPId(INIT_USER + 1);
user.setUID("user");
user.setFirstName("John");
user.setLastName("Doe");
user.setEmail("user@user.com");
user = um.addUser(getIdp(user), user);
String expectedGridIdentity = CommonUtils.subjectToIdentity(UserManager.getUserSubject(um.getIdentityAssignmentPolicy(), ca.getCACertificate().getSubjectDN().getName(), getIdp(user),
user.getUID()));
assertNotNull(user.getGridId());
assertNotNull(user.getUserStatus());
assertEquals(GridUserStatus.PENDING, user.getUserStatus());
assertEquals(expectedGridIdentity, user.getGridId());
assertEquals(user, um.getUser(user.getIdPId(), user.getUID()));
assertEquals(user, um.getUser(user.getGridId()));
user.setUserStatus(GridUserStatus.REJECTED);
um.updateUser(user);
GridUser u1 = um.getUser(user.getGridId());
assertEquals(user.getUserStatus(), u1.getUserStatus());
user.setUserStatus(GridUserStatus.ACTIVE);
try {
um.updateUser(user);
fail("Should not be able to change the status of a user to an invalid status.");
} catch (InvalidUserException e) {
}
user.setUserStatus(GridUserStatus.SUSPENDED);
try {
um.updateUser(user);
fail("Should not be able to change the status of a user to an invalid status.");
} catch (InvalidUserException e) {
}
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
if (um != null) {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public void testUpdateActiveUserInvalidStatus() {
UserManager um = null;
try {
um = getUserManagerNameBasedIdentities();
GridUser user = new GridUser();
user.setIdPId(INIT_USER + 1);
user.setUID("user");
user.setFirstName("John");
user.setLastName("Doe");
user.setEmail("user@user.com");
user = um.addUser(getIdp(user), user);
String expectedGridIdentity = CommonUtils.subjectToIdentity(UserManager.getUserSubject(um.getIdentityAssignmentPolicy(), ca.getCACertificate().getSubjectDN().getName(), getIdp(user),
user.getUID()));
assertNotNull(user.getGridId());
assertNotNull(user.getUserStatus());
assertEquals(GridUserStatus.PENDING, user.getUserStatus());
assertEquals(expectedGridIdentity, user.getGridId());
assertEquals(user, um.getUser(user.getIdPId(), user.getUID()));
assertEquals(user, um.getUser(user.getGridId()));
user.setUserStatus(GridUserStatus.ACTIVE);
um.updateUser(user);
GridUser u1 = um.getUser(user.getGridId());
assertEquals(user.getUserStatus(), u1.getUserStatus());
user.setUserStatus(GridUserStatus.REJECTED);
try {
um.updateUser(user);
fail("Should not be able to change the status of a user to an invalid status.");
} catch (InvalidUserException e) {
}
user.setUserStatus(GridUserStatus.PENDING);
try {
um.updateUser(user);
fail("Should not be able to change the status of a user to an invalid status.");
} catch (InvalidUserException e) {
}
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
if (um != null) {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
private IdentityFederationProperties getConf(String policy) throws Exception {
IdentityFederationProperties conf = Utils.getIdentityFederationProperties();
conf.setIdentityAssignmentPolicy(policy);
return conf;
}
private FederationDefaults getDefaults() throws Exception {
TrustedIdP idp = new TrustedIdP();
idp.setName("Initial IdP");
idp.setDisplayName(idp.getName());
SAMLAttributeDescriptor uid = new SAMLAttributeDescriptor();
uid.setNamespaceURI(SAMLConstants.UID_ATTRIBUTE_NAMESPACE);
uid.setName(SAMLConstants.UID_ATTRIBUTE);
idp.setUserIdAttributeDescriptor(uid);
SAMLAttributeDescriptor firstName = new SAMLAttributeDescriptor();
firstName.setNamespaceURI(SAMLConstants.FIRST_NAME_ATTRIBUTE_NAMESPACE);
firstName.setName(SAMLConstants.FIRST_NAME_ATTRIBUTE);
idp.setFirstNameAttributeDescriptor(firstName);
SAMLAttributeDescriptor lastName = new SAMLAttributeDescriptor();
lastName.setNamespaceURI(SAMLConstants.LAST_NAME_ATTRIBUTE_NAMESPACE);
lastName.setName(SAMLConstants.LAST_NAME_ATTRIBUTE);
idp.setLastNameAttributeDescriptor(lastName);
SAMLAttributeDescriptor email = new SAMLAttributeDescriptor();
email.setNamespaceURI(SAMLConstants.EMAIL_ATTRIBUTE_NAMESPACE);
email.setName(SAMLConstants.EMAIL_ATTRIBUTE);
idp.setEmailAttributeDescriptor(email);
idp.getAuthenticationMethod().add(SAMLAuthenticationMethod.URN_OASIS_NAMES_TC_SAML_1_0_AM_PASSWORD);
idp.setUserPolicyClass(AutoApprovalPolicy.class.getName());
String subject = Utils.CA_SUBJECT_PREFIX + ",CN=" + idp.getName();
Credential cred = memoryCA.createIdentityCertificate(idp.getName());
X509Certificate cert = cred.getCertificate();
assertNotNull(cert);
assertEquals(cert.getSubjectDN().getName(), subject);
idp.setIdPCertificate(CertUtil.writeCertificate(cert));
idp.setStatus(TrustedIdPStatus.ACTIVE);
GridUser usr = new GridUser();
usr.setUID("inital_admin");
usr.setFirstName("Mr");
usr.setLastName("Admin");
usr.setEmail("inital_admin@test.com");
usr.setUserStatus(GridUserStatus.ACTIVE);
return new FederationDefaults(idp, usr);
}
protected void setUp() throws Exception {
super.setUp();
try {
db = Utils.getDB();
assertEquals(0, db.getUsedConnectionCount());
ca = Utils.getCA();
memoryCA = new CA(Utils.getCASubject());
props = new PropertyManager(db);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
public UserManager getUserManagerNameBasedIdentities() throws Exception {
IdentityFederationProperties conf = getConf(IdentityAssignmentPolicy.NAME);
TrustedIdPManager tm = new TrustedIdPManager(conf, db);
UserManager um = new UserManager(db, conf, props, ca, tm, this, getDefaults());
um.clearDatabase();
return um;
}
public UserManager getUserManagerIdBasedIdentities() throws Exception {
IdentityFederationProperties conf = getConf(IdentityAssignmentPolicy.ID);
TrustedIdPManager tm = new TrustedIdPManager(conf, db);
UserManager um = new UserManager(db, conf, props, ca, tm, this, getDefaults());
um.clearDatabase();
return um;
}
protected void tearDown() throws Exception {
super.setUp();
try {
assertEquals(0, db.getUsedConnectionCount());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
public void publishCRL() {
}
private GridUserSearchCriteria toSearchCriteria(GridUserFilter filter) {
if (filter != null) {
GridUserSearchCriteria c = new GridUserSearchCriteria();
c.setIdentity(filter.getGridId());
c.setFirstName(filter.getFirstName());
c.setLastName(filter.getLastName());
c.setEmail(filter.getEmail());
return c;
} else {
return null;
}
}
private TrustedIdP getIdp(GridUser usr) {
TrustedIdP idp = new TrustedIdP();
idp.setId(usr.getIdPId());
idp.setName(DEFAULT_IDP_NAME + usr.getIdPId());
return idp;
}
}