Package com.sonatype.security.ldap

Source Code of com.sonatype.security.ldap.AbstractMockLdapConnectorTest

/*
* Sonatype Nexus (TM) Open Source Version
* Copyright (c) 2007-2014 Sonatype, Inc.
* All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
*
* This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
* which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
*
* Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
* of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
* Eclipse Foundation. All other trademarks are the property of their respective owners.
*/
package com.sonatype.security.ldap;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.SortedSet;
import java.util.TreeSet;

import org.sonatype.security.ldap.dao.LdapUser;
import org.sonatype.security.ldap.realms.LdapManager;
import org.sonatype.security.ldap.realms.connector.LdapConnector;

import org.apache.commons.io.IOUtils;
import org.codehaus.plexus.util.InterpolationFilterReader;

public abstract class AbstractMockLdapConnectorTest
    extends AbstractLdapConfigurationTest
{

  private EnterpriseLdapManager ldapManager = null;

  public void setUp()
      throws Exception
  {
    super.setUp();

    String filename = "ldap.xml";
    String resourcePath = this.getClass().getName().replace('.', '/');
    resourcePath += "-" + filename;

    if (ClassLoader.getSystemResource(resourcePath) == null) {
      resourcePath = "defaults/" + filename;
    }

    getConfHomeDir().mkdirs();
    Map<String, Object> interpolationMap = new HashMap<String, Object>();
    interpolationMap.put("default-ldap-port", "12345");

    try (InterpolationFilterReader reader = new InterpolationFilterReader(new InputStreamReader(
        ClassLoader.getSystemResourceAsStream(resourcePath)), interpolationMap);
         OutputStream out = new FileOutputStream(new File(getConfHomeDir(), "ldap.xml"));) {
      IOUtils.copy(reader, out);
    }

    this.ldapManager = (EnterpriseLdapManager) this.lookup(LdapManager.class);
    this.resetLdapConnectors();
  }

  protected void resetLdapConnectors() throws Exception {
    List<LdapConnector> connectors = this.ldapManager.getLdapConnectors();

    connectors.clear();
    connectors.addAll(this.getLdapConnectors());
  }

  protected abstract List<LdapConnector> getLdapConnectors();

  protected MockLdapConnector buildMainMockServer(String serverId) {
    SortedSet<String> groupIds = new TreeSet<String>();
    groupIds.add("alpha");
    groupIds.add("beta");
    groupIds.add("gamma");

    SortedSet<LdapUser> users = new TreeSet<LdapUser>();
    LdapUser rwalker = new LdapUser();
    rwalker.setDn("uid=rwalker,ou=people,o=sonatype");
    rwalker.setRealName("Robin E. Walker");
    rwalker.setEmail("rwalker@sonatype.com");
    rwalker.setMembership(new HashSet<String>());
    rwalker.getMembership().addAll(groupIds); // has all groups
    rwalker.setPassword("rwalker123");
    rwalker.setUsername("rwalker");
    users.add(rwalker);

    LdapUser ehearn = new LdapUser();
    ehearn.setDn("uid=ehearn,ou=people,o=sonatype");
    ehearn.setRealName("Eula Hearn");
    ehearn.setEmail("ehearn@sonatype.com");
    ehearn.setMembership(new HashSet<String>());
    ehearn.getMembership().add("alpha");
    ehearn.getMembership().add("gamma");
    ehearn.setPassword("ehearn123");
    ehearn.setUsername("ehearn");
    users.add(ehearn);

    LdapUser jgoodman = new LdapUser();
    jgoodman.setDn("uid=jgoodman,ou=people,o=sonatype");
    jgoodman.setRealName("Joseph M. Goodman");
    jgoodman.setEmail("jgoodman@sonatype.com");
    jgoodman.setMembership(new HashSet<String>());
    jgoodman.getMembership().add("alpha");
    jgoodman.getMembership().add("beta");
    jgoodman.setPassword("jgoodman123");
    jgoodman.setUsername("jgoodman");
    users.add(jgoodman);

    return new MockLdapConnector(serverId, users, groupIds);
  }

  protected MockLdapConnector buildBackupMockServer(String serverId) {
    SortedSet<String> groupIds = new TreeSet<String>();
    groupIds.add("alpha");
    groupIds.add("beta");

    SortedSet<LdapUser> users = new TreeSet<LdapUser>();
    LdapUser ehearn = new LdapUser();
    ehearn.setDn("uid=ehearn,ou=people,o=sonatype");
    ehearn.setRealName("Eula Hearn");
    ehearn.setEmail("ehearn@sonatype.com");
    ehearn.setMembership(new HashSet<String>());
    ehearn.getMembership().add("alpha");
    ehearn.setPassword("ehearn123");
    ehearn.setUsername("ehearn");
    users.add(ehearn);

    LdapUser jgoodman = new LdapUser();
    jgoodman.setDn("uid=jgoodman,ou=people,o=sonatype");
    jgoodman.setRealName("Joseph M. Goodman");
    jgoodman.setEmail("jgoodman@sonatype.com");
    jgoodman.setMembership(new HashSet<String>());
    jgoodman.getMembership().add("alpha");
    jgoodman.getMembership().add("beta");
    jgoodman.setPassword("jgoodman123");
    jgoodman.setUsername("jgoodman");
    users.add(jgoodman);

    return new MockLdapConnector(serverId, users, groupIds);
  }

  protected EnterpriseLdapManager getLdapManager() {
    return ldapManager;
  }

  protected void setLdapManager(EnterpriseLdapManager ldapManager) {
    this.ldapManager = ldapManager;
  }

}
TOP

Related Classes of com.sonatype.security.ldap.AbstractMockLdapConnectorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.