diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ec376bb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.idea
+target
\ No newline at end of file
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..bf82ff0
Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..70e554c
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar
diff --git a/DEVNOTES.adoc b/DEVNOTES.adoc
new file mode 100644
index 0000000..e972ee9
--- /dev/null
+++ b/DEVNOTES.adoc
@@ -0,0 +1,14 @@
+= Developer Notes
+
+* When building, there will be warnings about `Bundle edu.internet2.middleware.grouper.plugins:grouper-authentication-plugin:bundle:0.0.1-SNAPSHOT : Classes found in the wrong directory`. This can be safely ignored
+
+* During tests, there will be log messages like
++
+----
+2023-12-01T10:30:12,364: [main] WARN ConfigUtils.checkConfig(93) - [] - you are using the config key `external.authentication.saml.keyStoreAlias`; this should be changed to `external.authentication.saml.keystoreAlias`
+2023-12-01T10:30:12,368: [main] WARN ConfigUtils.checkConfig(93) - [] - you are using the config key `external.authentication.saml.keyStoreType`; this should be changed to `external.authentication.saml.keystoreType`
+----
++
+These can usually be safely ignored.
++
+* SPIs will not work properly if the jar is built with inline; this should be considered if this configuration is changed. Some of the included libraries/frameworks depend on this, notably opensaml.
\ No newline at end of file
diff --git a/README.adoc b/README.adoc
new file mode 100644
index 0000000..f5e05f7
--- /dev/null
+++ b/README.adoc
@@ -0,0 +1,86 @@
+= Grouper External Authentication Plugin
+
+Grouper plugin that provides configurable authentication. Features include
+
+* Authentication for UI, without requiring a separate process or container
+* Supports SAML2, OIDC, and CAS
+
+== Usage
+
+=== Grouper Version 4.x
+
+NOTE: For a fully integrated sample configuration, see the docker-compose setup in the `src/test/docker` folder of the Git
+repository. The environment includes sample Grouper configurations for SAML2, OIDC, or CAS, along with a Shibboleth IDP
+that can authenticate Grouper using any of these methods.
+
+. Add plugin to Grouper image (latest versions can be downloaded from https://github.internet2.edu/internet2/grouper-ext-auth/releases[])
++
+[source, dockerfile]
+----
+COPY grouper-authentication-plugin.jar /opt/grouper/plugins
+----
+
+. Enable Plugins
++
+In `grouper.properties`, add properties
++
+[source, properties]
+----
+grouper.osgi.enable = true
+grouper.osgi.jar.dir = /opt/grouper/plugins
+grouper.osgi.framework.boot.delegation=org.osgi.*,javax.*,org.apache.commons.logging,edu.internet2.middleware.grouperClient.*,edu.internet2.middleware.grouper.*,org.w3c.*,org.xml.*,sun.*
+
+grouperOsgiPlugin.0.jarName = grouper-authentication-plugin.jar
+----
++
+`grouper.osgi.jar.dir` should point to the directory you copied the file to in your image build file
++
+`grouperOsgiPlugin.0.jarName` should be the name of the file you copied in
+
+. Configure UI
++
+In `grouper-ui.properties, add properties appropriate for desired authentication. Note that only one can be used.
++
+Most of the configuration for the underlying authentication library is exposed to the Grouper configuration. Any field in the Java classes can be directly set using the field name or a setter used by using a related property (setting `attribute=value` will call `setAttribute(value)` )
+
+.. SAML2
++
+For SAML2, for example:
++
+[source,properties]
+----
+external.authentication.provider = saml
+external.authentication.saml.identityProviderEntityId = https://idp.unicon.local/idp/shibboleth
+external.authentication.saml.serviceProviderEntityId = http://localhost:8080/grouper
+external.authentication.saml.serviceProviderMetadataPath = file:/opt/grouper/sp-metadata.xml
+external.authentication.saml.identityProviderMetadataPath = file:/opt/grouper/idp-metadata.xml
+external.authentication.saml.keystorePath = file:/opt/grouper/here.key
+external.authentication.saml.keystorePassword = testme
+external.authentication.saml.privateKeyPassword = testme
+external.authentication.saml.attributeAsId = urn:oid:0.9.2342.19200300.100.1.1
+----
++
+For more information and more options, see https://www.pac4j.org/5.7.x/docs/clients/saml.html[] and https://github.com/pac4j/pac4j/blob/5.7.x/pac4j-saml/src/main/java/org/pac4j/saml/config/SAML2Configuration.java[]
+
+.. OIDC
++
+For OIDC, for example:
++
+[source,properties]
+----
+external.authentication.provider = oidc
+external.authentication.oidc.clientId = *****
+external.authentication.oidc.discoveryURI = https://unicon.okta.com/.well-known/openid-configuration
+external.authentication.oidc.secret = *****
+external.authentication.oidc.claimAsUsername = preferred_username
+----
++
+For more information and more options, see https://www.pac4j.org/5.7.x/docs/clients/openid-connect.html[] and https://github.com/pac4j/pac4j/blob/5.7.x/pac4j-oidc/src/main/java/org/pac4j/oidc/config/OidcConfiguration.java[]
+
+=== Version 5.x+
+
+TODO
+
+== More Information
+
+If assistance is needed (e.g., bugs, errors, configuration samples), feel free to open a ticket in the github repository or ask on the Slack channel
diff --git a/README.md b/README.md
deleted file mode 100644
index 56ae56c..0000000
--- a/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# grouper-ext-auth
\ No newline at end of file
diff --git a/mvnw b/mvnw
new file mode 100644
index 0000000..b7f0646
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,287 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Apache Maven Wrapper startup batch script, version 3.1.1
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /usr/local/etc/mavenrc ] ; then
+ . /usr/local/etc/mavenrc
+ fi
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+ # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+ if [ -z "$JAVA_HOME" ]; then
+ if [ -x "/usr/libexec/java_home" ]; then
+ JAVA_HOME="`/usr/libexec/java_home`"; export JAVA_HOME
+ else
+ JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
+ fi
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`\\unset -f command; \\command -v java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+ if [ -z "$1" ]
+ then
+ echo "Path not specified to find_maven_basedir"
+ return 1
+ fi
+
+ basedir="$1"
+ wdir="$1"
+ while [ "$wdir" != '/' ] ; do
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+ if [ -d "${wdir}" ]; then
+ wdir=`cd "$wdir/.."; pwd`
+ fi
+ # end of workaround
+ done
+ printf '%s' "$(cd "$basedir"; pwd)"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+BASE_DIR=$(find_maven_basedir "$(dirname $0)")
+if [ -z "$BASE_DIR" ]; then
+ exit 1;
+fi
+
+MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
+if [ "$MVNW_VERBOSE" = true ]; then
+ echo $MAVEN_PROJECTBASEDIR
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Found .mvn/wrapper/maven-wrapper.jar"
+ fi
+else
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+ fi
+ if [ -n "$MVNW_REPOURL" ]; then
+ wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
+ else
+ wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
+ fi
+ while IFS="=" read key value; do
+ case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;;
+ esac
+ done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Downloading from: $wrapperUrl"
+ fi
+ wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+ if $cygwin; then
+ wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+ fi
+
+ if command -v wget > /dev/null; then
+ QUIET="--quiet"
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Found wget ... using wget"
+ QUIET=""
+ fi
+ if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+ wget $QUIET "$wrapperUrl" -O "$wrapperJarPath"
+ else
+ wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath"
+ fi
+ [ $? -eq 0 ] || rm -f "$wrapperJarPath"
+ elif command -v curl > /dev/null; then
+ QUIET="--silent"
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Found curl ... using curl"
+ QUIET=""
+ fi
+ if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+ curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L
+ else
+ curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L
+ fi
+ [ $? -eq 0 ] || rm -f "$wrapperJarPath"
+ else
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Falling back to using Java to download"
+ fi
+ javaSource="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+ javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class"
+ # For Cygwin, switch paths to Windows format before running javac
+ if $cygwin; then
+ javaSource=`cygpath --path --windows "$javaSource"`
+ javaClass=`cygpath --path --windows "$javaClass"`
+ fi
+ if [ -e "$javaSource" ]; then
+ if [ ! -e "$javaClass" ]; then
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo " - Compiling MavenWrapperDownloader.java ..."
+ fi
+ # Compiling the Java class
+ ("$JAVA_HOME/bin/javac" "$javaSource")
+ fi
+ if [ -e "$javaClass" ]; then
+ # Running the downloader
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo " - Running MavenWrapperDownloader.java ..."
+ fi
+ ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+ fi
+ fi
+ fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+ MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ $MAVEN_DEBUG_OPTS \
+ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+ "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 0000000..474c9d6
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,187 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Apache Maven Wrapper startup batch script, version 3.1.1
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
+
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+ IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Found %WRAPPER_JAR%
+ )
+) else (
+ if not "%MVNW_REPOURL%" == "" (
+ SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
+ )
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Couldn't find %WRAPPER_JAR%, downloading it ...
+ echo Downloading from: %WRAPPER_URL%
+ )
+
+ powershell -Command "&{"^
+ "$webclient = new-object System.Net.WebClient;"^
+ "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+ "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+ "}"^
+ "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^
+ "}"
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Finished downloading %WRAPPER_JAR%
+ )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% ^
+ %JVM_CONFIG_MAVEN_PROPS% ^
+ %MAVEN_OPTS% ^
+ %MAVEN_DEBUG_OPTS% ^
+ -classpath %WRAPPER_JAR% ^
+ "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
+ %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
+
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
+
+cmd /C exit /B %ERROR_CODE%
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..7222f7e
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,221 @@
+
+
+
+
+
+ 4.0.0
+
+ Grouper Authentication Plugin
+ Authentication Library Plugin
+ edu.internet2.middleware.grouper.plugins
+ grouper-authentication-plugin
+ 0.0.1-SNAPSHOT
+ bundle
+
+
+ 17
+ 17
+ UTF-8
+ 5.7.2
+ 7.1.0
+ 4.7.0
+
+
+
+
+ edu.internet2.middleware.grouper
+ grouperClient
+ ${grouper.version}
+ provided
+
+
+ edu.internet2.middleware.grouper
+ grouper
+ ${grouper.version}
+ provided
+
+
+ edu.internet2.middleware.grouper
+ grouper-ui
+ ${grouper.version}
+ test
+
+
+ org.apache.commons
+ commons-lang3
+
+
+ org.pac4j
+ pac4j-core
+ ${pac4j.version}
+
+
+ org.pac4j
+ pac4j-cas-clientv4
+ ${pac4j.version}
+
+
+ org.pac4j
+ javaee-pac4j
+ ${javaee-pac4j.version}
+
+
+ org.pac4j
+ pac4j-saml-opensamlv5
+ ${pac4j.version}
+
+
+ org.slf4j
+ jcl-over-slf4j
+
+
+ org.springframework
+ spring-jcl
+
+
+ xml-apis
+ xml-apis
+
+
+ xerces
+ xercesImpl
+
+
+
+
+ org.pac4j
+ pac4j-oidc
+ ${pac4j.version}
+
+
+
+
+ com.nimbusds
+ oauth2-oidc-sdk
+ 10.1
+
+
+
+ org.osgi
+ osgi.core
+ 8.0.0
+ provided
+
+
+
+ org.apache.tomcat
+ tomcat-catalina
+ 8.5.60
+ provided
+
+
+ commons-logging
+ commons-logging
+ provided
+
+
+ edu.internet2.middleware.grouper
+ grouper
+ ${grouper.version}
+ test-jar
+ test
+
+
+ junit
+ junit
+ test
+
+
+ org.mockito
+ mockito-inline
+ 4.7.0
+ test
+
+
+
+
+
+
+ edu.internet2.middleware.grouper
+ grouper
+ 2.6.15
+ pom
+ import
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.11.0
+
+
+ -Xlint:unchecked
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.3.0
+
+
+ true
+
+ ${project.name}
+ ${project.organization.name}
+ ${project.artifactId}
+ ${project.version}
+ ${project.url}
+ ${maven.build.timestamp}
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 5.1.9
+ true
+
+
+ ${project.groupId}.${project.artifactId}
+ ${project.artifactId}-bundle
+ ${project.version}
+ edu.internet2.middleware.grouper.authentication.plugin.GrouperAuthentication
+
+ !*
+ edu.internet2.middleware.grouper.authentication.plugin.*
+ *;scope=compile|runtime;inline=false
+ true
+
+ !javax.ejb.*
+
+
+
+
+
+
+
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/ConfigUtils.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/ConfigUtils.java
new file mode 100644
index 0000000..fb8c310
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/ConfigUtils.java
@@ -0,0 +1,201 @@
+package edu.internet2.middleware.grouper.authentication.plugin;
+
+import edu.internet2.middleware.grouperClient.config.ConfigPropertiesCascadeBase;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.pac4j.core.client.config.BaseClientConfiguration;
+import org.springframework.core.io.DefaultResourceLoader;
+import org.springframework.core.io.ResourceLoader;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.time.Period;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.List;
+
+public class ConfigUtils {
+ private static final Map PROPERTY_RENAMES = new HashMap<>();
+ static {
+ PROPERTY_RENAMES.put("external.authentication.saml.keyStoreAlias", "external.authentication.saml.keystoreAlias");
+ PROPERTY_RENAMES.put("external.authentication.saml.keyStoreType", "external.authentication.saml.keystoreType");
+ }
+
+ private final static ResourceLoader resourceLoader = new DefaultResourceLoader();
+
+ private final static BundleContext bundleContext = FrameworkUtil.getBundle(GrouperAuthentication.class).getBundleContext();
+
+ private final static Log LOG = GrouperAuthentication.getLogFactory().getInstance(ConfigUtils.class);
+
+ public static ConfigPropertiesCascadeBase getBestGrouperConfiguration() {
+ if (isGrouperUi()) {
+ return getConfigPropertiesCascadeBase("ui");
+ } else if (isGrouperWs()) {
+ return getConfigPropertiesCascadeBase("ws");
+ } else if (isGrouperDaemon()) {
+ return getConfigPropertiesCascadeBase("daemon");
+ } else {
+ throw new RuntimeException("no appropriate configuration found");
+ }
+ }
+
+ public static ConfigPropertiesCascadeBase getConfigPropertiesCascadeBase(String type) {
+ try {
+ List> serviceReferenceList = (List>) bundleContext.getServiceReferences(ConfigPropertiesCascadeBase.class, "(type=" + type + ")");
+ ServiceReference> serviceReference = serviceReferenceList.get(0);
+ return (ConfigPropertiesCascadeBase) bundleContext.getService(serviceReference);
+ } catch (InvalidSyntaxException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public static void setProperties(BaseClientConfiguration configuration, String authMechanism) {
+ checkConfig();
+ ConfigPropertiesCascadeBase grouperConfig = getBestGrouperConfiguration();
+
+ Class> clazz = configuration.getClass();
+ for (String name : grouperConfig.propertyNames()
+ .stream()
+ .filter( p -> p.startsWith("external.authentication." + authMechanism))
+ .toList()) {
+ // map name to realname if needed (e.g., changing case)
+ String realName = ConfigUtils.propertyNameRename(name);
+ String fieldName = realName.substring(name.lastIndexOf('.') + 1);
+ try {
+ Method method = getSetter(clazz, getMethodNameFromFieldName(fieldName));
+ method.invoke(configuration, getProperty(grouperConfig, method.getParameterTypes()[0], name));
+ } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException |
+ ClassNotFoundException e) {
+ throw new RuntimeException("could not set " + fieldName, e);
+ }
+ }
+ }
+
+ /**
+ * method to check configuration from various states
+ */
+ private static void checkConfig() {
+ ConfigPropertiesCascadeBase grouperConfig = getBestGrouperConfiguration();
+
+ // check renames
+ for (Map.Entry rename: PROPERTY_RENAMES.entrySet()) {
+ if (grouperConfig.containsKey(rename.getKey())) {
+ LOG.warn("you are using the config key `" + rename.getKey() + "`; this should be changed to `" + rename.getValue() + "`");
+ }
+ }
+ }
+
+ /**
+ * method to rewrite property names in the case of deprecation, etc
+ *
+ * @param propertyName
+ * @return
+ */
+ private static String propertyNameRename(String propertyName) {
+ return PROPERTY_RENAMES.getOrDefault(propertyName, propertyName);
+ }
+
+ private static String getMethodNameFromFieldName(String fieldName) {
+ return "set" + StringUtils.capitalize(fieldName);
+ }
+
+ private static Field getField(Class clazz, String name) throws NoSuchFieldException {
+ try {
+ return clazz.getDeclaredField(name);
+ } catch (NoSuchFieldException e) {
+ if (clazz.equals(Object.class)) {
+ throw new NoSuchFieldException(name);
+ }
+ return getField(clazz.getSuperclass(), name);
+ }
+ }
+
+ private static Method getSetter(Class clazz, String name) throws NoSuchMethodException {
+ //TODO: this is dangerous. currently there are no overloaded methods, but there could be in the future. need to decide best way to handle this (parameter type precedence?)
+ return Arrays.stream(clazz.getMethods())
+ .filter(m -> m.getName().equals(name))
+ .findFirst()
+ .orElseThrow(NoSuchMethodException::new);
+ }
+
+ private static Object getProperty(ConfigPropertiesCascadeBase configPropertiesCascadeBase, Type type, String propName) throws ClassNotFoundException {
+ if (Enum.class.isAssignableFrom((Class>) type)) {
+ // there are a few properties that are enums (e.g., CAS protocol)
+ // TODO: can this be checked?
+ @SuppressWarnings("unchecked")
+ Enum> e = Enum.valueOf((Class) type, configPropertiesCascadeBase.propertyValueString(propName));
+ return e;
+ } else {
+ switch (type.getTypeName()) {
+ case "java.lang.String": {
+ return configPropertiesCascadeBase.propertyValueString(propName);
+ }
+ case "int":
+ case "java.lang.Integer": {
+ return configPropertiesCascadeBase.propertyValueInt(propName);
+ }
+ case "long":
+ case "java.lang.Long": {
+ return Long.parseLong(configPropertiesCascadeBase.propertyValueString(propName));
+ }
+ case "double":
+ case "java.lang.Double": {
+ return Double.parseDouble(configPropertiesCascadeBase.propertyValueString(propName));
+ }
+ case "boolean":
+ case "java.lang.Boolean": {
+ return configPropertiesCascadeBase.propertyValueBoolean(propName);
+ }
+ case "java.util.List":
+ case "java.util.Collection": {
+ return Arrays.asList(configPropertiesCascadeBase.propertyValueString(propName).split(","));
+ }
+ case "java.util.Set": {
+ //TODO: hopefully string is all that is needed, but might need to revisit
+ Set set = new HashSet<>();
+ Collections.addAll(set, configPropertiesCascadeBase.propertyValueString(propName).split(","));
+ return set;
+ }
+ case "java.util.Map": {
+ Map map = new HashMap<>();
+ for (String pairs : configPropertiesCascadeBase.propertyValueString(propName).split(",")) {
+ String[] keyValue = pairs.split("=");
+ map.put(keyValue[0].trim(), keyValue[1].trim());
+ }
+ return map;
+ }
+ case "java.time.Period": {
+ return Period.parse(configPropertiesCascadeBase.propertyValueString(propName));
+ }
+ case "org.springframework.core.io.WritableResource":
+ case "org.springframework.core.io.Resource": {
+ return resourceLoader.getResource(configPropertiesCascadeBase.propertyValueString(propName));
+ }
+ default:
+ throw new IllegalStateException("Unexpected type: " + type.getTypeName());
+ }
+ }
+ }
+
+ public static boolean isGrouperUi() {
+ return getConfigPropertiesCascadeBase("hibernate").propertyValueBoolean("grouper.is.ui", false);
+ }
+
+ public static boolean isGrouperWs() {
+ return getConfigPropertiesCascadeBase("hibernate").propertyValueBoolean("grouper.is.ws", false);
+ }
+
+ public static boolean isGrouperDaemon() {
+ return getConfigPropertiesCascadeBase("hibernate").propertyValueBoolean("grouper.is.daemon", false);
+ }
+}
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/ExternalAuthenticationServletContainerInitializer.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/ExternalAuthenticationServletContainerInitializer.java
new file mode 100644
index 0000000..0cc0538
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/ExternalAuthenticationServletContainerInitializer.java
@@ -0,0 +1,27 @@
+package edu.internet2.middleware.grouper.authentication.plugin;
+
+import edu.internet2.middleware.grouper.authentication.plugin.filter.CallbackFilterDecorator;
+import edu.internet2.middleware.grouper.authentication.plugin.filter.SecurityFilterDecorator;
+import org.apache.commons.logging.Log;
+
+import javax.servlet.FilterRegistration;
+import javax.servlet.ServletContainerInitializer;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import java.util.Set;
+
+public class ExternalAuthenticationServletContainerInitializer implements ServletContainerInitializer {
+ private static final Log log = GrouperAuthentication.getLogFactory().getInstance(ExternalAuthenticationServletContainerInitializer.class);
+
+ @Override
+ public void onStartup(Set> c, ServletContext ctx) throws ServletException {
+ log.info("Initializing plugin security filters for external authentication");
+ CallbackFilterDecorator callbackFilterDecorator = new CallbackFilterDecorator();
+ FilterRegistration.Dynamic callbackFilter = ctx.addFilter("callbackFilter", callbackFilterDecorator);
+ callbackFilter.addMappingForUrlPatterns(null, false, "/*");
+
+ SecurityFilterDecorator securityFilterDecorator = new SecurityFilterDecorator();
+ FilterRegistration.Dynamic securityFilter = ctx.addFilter("securityFilter", securityFilterDecorator);
+ securityFilter.addMappingForUrlPatterns(null, false, "/*");
+ }
+}
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/GrouperAuthentication.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/GrouperAuthentication.java
new file mode 100644
index 0000000..df1f58e
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/GrouperAuthentication.java
@@ -0,0 +1,56 @@
+package edu.internet2.middleware.grouper.authentication.plugin;
+
+import org.apache.commons.logging.LogFactory;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+import javax.servlet.ServletContainerInitializer;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+
+public class GrouperAuthentication implements BundleActivator {
+ private Map referenceMap = new HashMap<>();
+ private final Map> registrationMap = new HashMap<>();
+
+ private static final LogFactory LOG_FACTORY;
+ static {
+ try {
+ BundleContext bundleContext = FrameworkUtil.getBundle(GrouperAuthentication.class).getBundleContext();
+ //TODO: figure out why this is weird
+ // TODO: check if this can be checked
+ @SuppressWarnings("unchecked")
+ ServiceReference logfactoryReference = (ServiceReference) bundleContext.getAllServiceReferences("org.apache.commons.logging.LogFactory", null)[0];
+ bundleContext.getServiceReference("org.apache.commons.logging.LogFactory");
+ if (bundleContext.getService(logfactoryReference) != null) {
+ LOG_FACTORY = bundleContext.getService(logfactoryReference);
+ } else {
+ LOG_FACTORY = LogFactory.getFactory();
+ }
+ } catch (InvalidSyntaxException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public static LogFactory getLogFactory() {
+ return LOG_FACTORY;
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ ExternalAuthenticationServletContainerInitializer externalAuthenticationServletContainerInitializer = new ExternalAuthenticationServletContainerInitializer();
+ ServiceRegistration easciRegistration = context.registerService(ServletContainerInitializer.class, externalAuthenticationServletContainerInitializer, new Hashtable<>());
+ registrationMap.put(ExternalAuthenticationServletContainerInitializer.class.getCanonicalName(), easciRegistration);
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ for (ServiceRegistration registration : registrationMap.values()) {
+ registration.unregister();
+ }
+ }
+}
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/Pac4jConfigFactory.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/Pac4jConfigFactory.java
new file mode 100644
index 0000000..1d119a8
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/Pac4jConfigFactory.java
@@ -0,0 +1,73 @@
+package edu.internet2.middleware.grouper.authentication.plugin;
+
+import edu.internet2.middleware.grouper.authentication.plugin.config.ClientProvider;
+import edu.internet2.middleware.grouper.authentication.plugin.config.ClientProviders;
+import edu.internet2.middleware.grouperClient.config.ConfigPropertiesCascadeBase;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.pac4j.core.client.Client;
+import org.pac4j.core.client.Clients;
+import org.pac4j.core.config.Config;
+import org.pac4j.core.config.ConfigFactory;
+import org.pac4j.core.matching.matcher.PathMatcher;
+
+import java.lang.reflect.InvocationTargetException;
+
+public class Pac4jConfigFactory implements ConfigFactory {
+ private static final Log LOGGER = GrouperAuthentication.getLogFactory().getInstance(Pac4jConfigFactory.class);
+
+ @Override
+ public Config build(Object... parameters) {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
+
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getBestGrouperConfiguration();
+
+ String provider;
+ if (grouperConfig.containsKey("external.authentication.mechanism")) {
+ LOGGER.warn("you're using the deprecated key `external.authentication.mechanism`; please update to `external.authentication.provider`");
+ provider = grouperConfig.propertyValueString("external.authentication.mechanism");
+ } else {
+ provider = grouperConfig.propertyValueString("external.authentication.provider");
+ }
+ Client client = getClient(provider);
+
+ String callbackUrl = grouperConfig.propertyValueString("external.authentication.grouperContextUrl")
+ + grouperConfig.propertyValueString("external.authentication.callbackUrl", "/callback");
+ final Clients clients = new Clients(callbackUrl, client);
+
+ final Config config = new Config(clients);
+
+ PathMatcher pathMatcher = new PathMatcher();
+
+ for (String exclusion : grouperConfig.propertyValueString("external.authentication.exclusions", "/status").split(",")) {
+ pathMatcher.excludeBranch(StringUtils.trim(exclusion));
+ }
+
+ config.addMatcher("securityExclusions", pathMatcher);
+ return config;
+ } catch (IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e) {
+ throw new RuntimeException("problem configuring pac4j", e);
+ } finally {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+ }
+
+ //TODO: can this be checked
+ @SuppressWarnings("unchecked")
+ private static Client getClient(String provider) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
+ Class extends ClientProvider> providerClass;
+ //TODO: might be a better way of doing this
+ try {
+ providerClass = ClientProviders.fromString(provider).getProviderClass();
+ } catch (IllegalArgumentException e) {
+ try {
+ providerClass = (Class extends ClientProvider>) Class.forName(provider);
+ } catch (ClassNotFoundException classNotFoundException) {
+ throw new RuntimeException(classNotFoundException);
+ }
+ }
+ return providerClass.getDeclaredConstructor().newInstance().getClient();
+ }
+}
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/CasClientProvider.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/CasClientProvider.java
new file mode 100644
index 0000000..1a04a91
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/CasClientProvider.java
@@ -0,0 +1,24 @@
+package edu.internet2.middleware.grouper.authentication.plugin.config;
+
+import edu.internet2.middleware.grouper.authentication.plugin.ConfigUtils;
+import org.pac4j.cas.client.CasClient;
+import org.pac4j.cas.config.CasConfiguration;
+import org.pac4j.core.client.Client;
+
+public class CasClientProvider implements ClientProvider {
+ @Override
+ public boolean supports(String type) {
+ return "cas".equals(type);
+ }
+
+ @Override
+ public Client getClient() {
+ final CasConfiguration configuration = new CasConfiguration();
+
+ ConfigUtils.setProperties(configuration, "cas");
+ CasClient client = new CasClient(configuration);
+ //TODO: make configurable
+ client.setName("client");
+ return client;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/ClientProvider.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/ClientProvider.java
new file mode 100644
index 0000000..d14f756
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/ClientProvider.java
@@ -0,0 +1,8 @@
+package edu.internet2.middleware.grouper.authentication.plugin.config;
+
+import org.pac4j.core.client.Client;
+
+public interface ClientProvider {
+ boolean supports(String type);
+ Client getClient();
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/ClientProviders.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/ClientProviders.java
new file mode 100644
index 0000000..c107ba7
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/ClientProviders.java
@@ -0,0 +1,23 @@
+package edu.internet2.middleware.grouper.authentication.plugin.config;
+
+import java.util.Locale;
+
+public enum ClientProviders {
+ CAS (CasClientProvider.class),
+ OIDC (OidcClientProvider.class),
+ SAML (SAML2ClientProvider.class);
+
+ private final Class extends ClientProvider> providerClass;
+
+ ClientProviders(Class extends ClientProvider> clazz) {
+ this.providerClass = clazz;
+ }
+
+ public Class extends ClientProvider> getProviderClass() {
+ return this.providerClass;
+ }
+
+ public static ClientProviders fromString(String name) {
+ return ClientProviders.valueOf(name.toUpperCase(Locale.ENGLISH));
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/OidcClientProvider.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/OidcClientProvider.java
new file mode 100644
index 0000000..fea1eb8
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/OidcClientProvider.java
@@ -0,0 +1,55 @@
+package edu.internet2.middleware.grouper.authentication.plugin.config;
+
+import edu.internet2.middleware.grouper.authentication.plugin.ConfigUtils;
+import edu.internet2.middleware.grouper.authentication.plugin.GrouperAuthentication;
+import edu.internet2.middleware.grouper.authentication.plugin.oidc.client.ClaimAsUsernameOidcClient;
+import edu.internet2.middleware.grouper.authentication.plugin.oidc.config.ClaimAsUsernameOidcConfiguration;
+import org.apache.commons.logging.Log;
+import org.pac4j.core.client.Client;
+import org.pac4j.oidc.client.OidcClient;
+import org.pac4j.oidc.config.OidcConfiguration;
+
+import java.lang.reflect.InvocationTargetException;
+
+public class OidcClientProvider implements ClientProvider {
+ private static final Log LOGGER = GrouperAuthentication.getLogFactory().getInstance(OidcClientProvider.class);
+
+ @Override
+ public boolean supports(String type) {
+ return "oidc".equals(type);
+ }
+
+ @Override
+ public Client getClient() {
+ OidcClient client;
+ String implementation = ConfigUtils.getBestGrouperConfiguration().propertyValueString("external.authentication.mechanism.oidc.clientImplementation");
+ if (implementation != null && !implementation.isEmpty()) {
+ try {
+ OidcConfiguration configuration = (OidcConfiguration) Class.forName(implementation).getDeclaredConstructor().newInstance();
+ client = new OidcClient(configuration);
+ } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | NoSuchMethodException |
+ InvocationTargetException e) {
+ //TODO: check whether this is actually a good idea and/or approapriate. there are a few cases that might need to be handled differently (e.g., wrong classname)
+ LOGGER.warn("problem loading pac4j client implementation; using a default", e);
+ client = getClaimAsUsernameOidcClient();
+ }
+ } else {
+ client = getClaimAsUsernameOidcClient();
+ }
+ ConfigUtils.setProperties(client.getConfiguration(), "oidc");
+
+ //TODO: make configurable
+ client.setName("client");
+ return client;
+ }
+
+ private static ClaimAsUsernameOidcClient getClaimAsUsernameOidcClient() {
+ ClaimAsUsernameOidcConfiguration configuration = new ClaimAsUsernameOidcConfiguration();
+ String claimAsUsername = ConfigUtils.getBestGrouperConfiguration().propertyValueString("external.authentication.oidc.claimAsUsername");
+ if (claimAsUsername != null) {
+ configuration.setClaimAsUsername(claimAsUsername);
+ }
+ ClaimAsUsernameOidcClient client = new ClaimAsUsernameOidcClient(configuration);
+ return client;
+ }
+}
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/SAML2ClientProvider.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/SAML2ClientProvider.java
new file mode 100644
index 0000000..c76c62d
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/config/SAML2ClientProvider.java
@@ -0,0 +1,24 @@
+package edu.internet2.middleware.grouper.authentication.plugin.config;
+
+import edu.internet2.middleware.grouper.authentication.plugin.ConfigUtils;
+import org.pac4j.core.client.Client;
+import org.pac4j.saml.client.SAML2Client;
+import org.pac4j.saml.config.SAML2Configuration;
+
+public class SAML2ClientProvider implements ClientProvider {
+ @Override
+ public boolean supports(String type) {
+ return "saml".equals(type);
+ }
+
+ @Override
+ public Client getClient() {
+ final SAML2Configuration configuration = new SAML2Configuration();
+ ConfigUtils.setProperties(configuration, "saml");
+ SAML2Client client = new SAML2Client(configuration);
+
+ //TODO: make configurable
+ client.setName("client");
+ return client;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/CallbackFilterDecorator.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/CallbackFilterDecorator.java
new file mode 100644
index 0000000..838265a
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/CallbackFilterDecorator.java
@@ -0,0 +1,62 @@
+package edu.internet2.middleware.grouper.authentication.plugin.filter;
+
+import edu.internet2.middleware.grouper.authentication.plugin.ConfigUtils;
+import edu.internet2.middleware.grouper.cfg.GrouperHibernateConfig;
+import org.pac4j.jee.filter.CallbackFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Timer;
+import java.util.TimerTask;
+
+public class CallbackFilterDecorator extends CallbackFilter implements Reinitializable {
+ private Timer timer = new Timer();
+
+ private static boolean isCallbackUrlCalled(HttpServletRequest request) {
+ return getRequestPathInContext(request).matches(ConfigUtils.getBestGrouperConfiguration().propertyValueString("external.authentication.callbackUrl", "/callback"));
+ }
+
+ private static String getRequestPathInContext(HttpServletRequest request) {
+ return request.getRequestURI().replaceFirst(request.getServletContext().getContextPath(), "");
+ }
+
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+ super.init(filterConfig);
+ this.initDecorator();
+ TimerTask timerTask = new ReinitializingTimer(this);
+ int period = ConfigUtils.getBestGrouperConfiguration().propertyValueInt("external.authentication.config.reload.milliseconds", 60 * 1000);
+ this.timer.schedule(timerTask, period, period);
+ }
+
+ public void initDecorator() {
+ this.setDefaultUrl(ConfigUtils.getBestGrouperConfiguration().propertyValueString("external.authentication.defaultUrl", "/"));
+ this.setRenewSession(true);
+ }
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+ if (FilterDecoratorUtils.isExternalAuthenticationEnabled() && isCallbackUrlCalled((HttpServletRequest) request)) {
+ super.doFilter(request, response, chain);
+ } else {
+ chain.doFilter(request, response);
+ }
+ }
+
+ @Override
+ protected void internalFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
+ super.internalFilter(request, response, chain);
+ } finally {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+ }
+}
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/FilterDecoratorUtils.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/FilterDecoratorUtils.java
new file mode 100644
index 0000000..55db5e3
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/FilterDecoratorUtils.java
@@ -0,0 +1,10 @@
+package edu.internet2.middleware.grouper.authentication.plugin.filter;
+
+import edu.internet2.middleware.grouper.authentication.plugin.ConfigUtils;
+
+public class FilterDecoratorUtils {
+ protected static boolean isExternalAuthenticationEnabled() {
+ return ConfigUtils.getBestGrouperConfiguration().propertyValueBoolean("grouper.is.extAuth.enabled", false);
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/Reinitializable.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/Reinitializable.java
new file mode 100644
index 0000000..60e8d2c
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/Reinitializable.java
@@ -0,0 +1,5 @@
+package edu.internet2.middleware.grouper.authentication.plugin.filter;
+
+public interface Reinitializable {
+ void initDecorator();
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/ReinitializingTimer.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/ReinitializingTimer.java
new file mode 100644
index 0000000..a7d0cc6
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/ReinitializingTimer.java
@@ -0,0 +1,39 @@
+package edu.internet2.middleware.grouper.authentication.plugin.filter;
+
+import edu.internet2.middleware.grouper.authentication.plugin.ConfigUtils;
+import edu.internet2.middleware.grouper.authentication.plugin.ExternalAuthenticationServletContainerInitializer;
+import edu.internet2.middleware.grouper.authentication.plugin.GrouperAuthentication;
+import org.apache.commons.logging.Log;
+
+import java.util.Map;
+import java.util.TimerTask;
+import java.util.regex.Pattern;
+
+public class ReinitializingTimer extends TimerTask {
+ private static final Log LOGGER = GrouperAuthentication.getLogFactory().getInstance(ExternalAuthenticationServletContainerInitializer.class);
+
+ private Map config;
+ private final Reinitializable initTarget;
+
+ public ReinitializingTimer(Reinitializable initTarget) {
+ this.initTarget = initTarget;
+ config = ConfigUtils.getBestGrouperConfiguration().propertiesMap(Pattern.compile("^external\\.authentication\\.([^.]+)$"));
+ }
+
+ protected static boolean areEqual(Map first, Map second) {
+ if (first.size() != second.size()) {
+ return false;
+ }
+ return first.entrySet().stream().allMatch(e -> e.getValue().equals(second.get(e.getKey())));
+ }
+
+ @Override
+ public void run() {
+ Map curConfig = ConfigUtils.getBestGrouperConfiguration().propertiesMap(Pattern.compile("^external\\.authentication\\.([^.]+)$"));
+ if (!areEqual(config, curConfig)) {
+ config = curConfig;
+ initTarget.initDecorator();
+ LOGGER.info("Pac4j External Authentication configuration reloaded");
+ }
+ }
+}
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/SecurityFilterDecorator.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/SecurityFilterDecorator.java
new file mode 100644
index 0000000..6f88fea
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/filter/SecurityFilterDecorator.java
@@ -0,0 +1,48 @@
+package edu.internet2.middleware.grouper.authentication.plugin.filter;
+
+import edu.internet2.middleware.grouper.authentication.plugin.ConfigUtils;
+import edu.internet2.middleware.grouper.authentication.plugin.Pac4jConfigFactory;
+import org.pac4j.core.authorization.authorizer.DefaultAuthorizers;
+import org.pac4j.core.config.ConfigBuilder;
+import org.pac4j.core.util.Pac4jConstants;
+import org.pac4j.jee.filter.SecurityFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import java.io.IOException;
+import java.util.Timer;
+import java.util.TimerTask;
+
+public class SecurityFilterDecorator extends SecurityFilter implements Reinitializable {
+ private Timer timer = new Timer();
+
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+ super.init(filterConfig);
+ this.initDecorator();
+ TimerTask timerTask = new ReinitializingTimer(this);
+ int period = ConfigUtils.getBestGrouperConfiguration().propertyValueInt("external.authentication.config.reload.milliseconds", 60 * 1000);
+ this.timer.schedule(timerTask, period, period);
+ }
+
+ public void initDecorator() {
+ if (ConfigUtils.isGrouperUi() && FilterDecoratorUtils.isExternalAuthenticationEnabled()) {
+ this.setSharedConfig(new Pac4jConfigFactory().build());
+ this.setClients("client");
+ this.setMatchers(String.join(Pac4jConstants.ELEMENT_SEPARATOR, "securityExclusions"));
+ this.setAuthorizers(DefaultAuthorizers.NONE);
+ }
+ }
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+ if (ConfigUtils.isGrouperUi() && FilterDecoratorUtils.isExternalAuthenticationEnabled()) {
+ super.doFilter(request, response, chain);
+ } else {
+ chain.doFilter(request, response);
+ }
+ }
+}
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/client/ClaimAsUsernameOidcClient.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/client/ClaimAsUsernameOidcClient.java
new file mode 100644
index 0000000..9f20d9d
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/client/ClaimAsUsernameOidcClient.java
@@ -0,0 +1,18 @@
+package edu.internet2.middleware.grouper.authentication.plugin.oidc.client;
+
+import edu.internet2.middleware.grouper.authentication.plugin.oidc.config.ClaimAsUsernameOidcConfiguration;
+import edu.internet2.middleware.grouper.authentication.plugin.oidc.profile.ClaimAsUsernameProfileCreator;
+import org.pac4j.oidc.client.OidcClient;
+
+public class ClaimAsUsernameOidcClient extends OidcClient {
+ public ClaimAsUsernameOidcClient(final ClaimAsUsernameOidcConfiguration claimAsUsernameOidcConfiguration) {
+ super(claimAsUsernameOidcConfiguration);
+ }
+
+ @Override
+ public void init() {
+ this.defaultProfileCreator(new ClaimAsUsernameProfileCreator(this.getConfiguration(), this));
+
+ super.init();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/config/ClaimAsUsernameOidcConfiguration.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/config/ClaimAsUsernameOidcConfiguration.java
new file mode 100644
index 0000000..e20e2cf
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/config/ClaimAsUsernameOidcConfiguration.java
@@ -0,0 +1,15 @@
+package edu.internet2.middleware.grouper.authentication.plugin.oidc.config;
+
+import org.pac4j.oidc.config.OidcConfiguration;
+
+public class ClaimAsUsernameOidcConfiguration extends OidcConfiguration {
+ private String claimAsUsername;
+
+ public String getClaimAsUsername() {
+ return claimAsUsername;
+ }
+
+ public void setClaimAsUsername(String claimAsUsername) {
+ this.claimAsUsername = claimAsUsername;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfile.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfile.java
new file mode 100644
index 0000000..fa2dfa9
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfile.java
@@ -0,0 +1,16 @@
+package edu.internet2.middleware.grouper.authentication.plugin.oidc.profile;
+
+import org.pac4j.oidc.profile.OidcProfile;
+
+public class ClaimAsUsernameProfile extends OidcProfile {
+ private final String claimAsUsername;
+
+ public ClaimAsUsernameProfile(final String claimAsUsername) {
+ this.claimAsUsername = claimAsUsername;
+ }
+
+ @Override
+ public String getUsername() {
+ return this.getAttribute(this.claimAsUsername).toString();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfileCreator.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfileCreator.java
new file mode 100644
index 0000000..2ad5cf7
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfileCreator.java
@@ -0,0 +1,22 @@
+package edu.internet2.middleware.grouper.authentication.plugin.oidc.profile;
+
+import edu.internet2.middleware.grouper.authentication.plugin.oidc.config.ClaimAsUsernameOidcConfiguration;
+import org.pac4j.core.util.CommonHelper;
+import org.pac4j.oidc.client.OidcClient;
+import org.pac4j.oidc.config.OidcConfiguration;
+import org.pac4j.oidc.profile.creator.OidcProfileCreator;
+
+public class ClaimAsUsernameProfileCreator extends OidcProfileCreator {
+ public ClaimAsUsernameProfileCreator(OidcConfiguration configuration, OidcClient client) {
+ super(configuration, client);
+ }
+
+ @Override
+ protected void internalInit(boolean forceReinit) {
+ CommonHelper.assertNotNull("claimAsUsername", ((ClaimAsUsernameOidcConfiguration)this.configuration).getClaimAsUsername());
+
+ defaultProfileDefinition(new ClaimAsUsernameProfileDefinition(((ClaimAsUsernameOidcConfiguration)this.configuration).getClaimAsUsername()));
+
+ super.internalInit(forceReinit);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfileDefinition.java b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfileDefinition.java
new file mode 100644
index 0000000..0bb5260
--- /dev/null
+++ b/src/main/java/edu/internet2/middleware/grouper/authentication/plugin/oidc/profile/ClaimAsUsernameProfileDefinition.java
@@ -0,0 +1,10 @@
+package edu.internet2.middleware.grouper.authentication.plugin.oidc.profile;
+
+import org.pac4j.oidc.profile.OidcProfileDefinition;
+
+public class ClaimAsUsernameProfileDefinition extends OidcProfileDefinition {
+ public ClaimAsUsernameProfileDefinition(final String claimAsUsername) {
+ super();
+ setProfileFactory(x -> new ClaimAsUsernameProfile(claimAsUsername));
+ }
+}
\ No newline at end of file
diff --git a/src/test/docker/.env b/src/test/docker/.env
new file mode 100644
index 0000000..8af2476
--- /dev/null
+++ b/src/test/docker/.env
@@ -0,0 +1 @@
+COMPOSE_PROJECT_NAME=grouper-ext-auth
\ No newline at end of file
diff --git a/src/test/docker/README.adoc b/src/test/docker/README.adoc
new file mode 100644
index 0000000..7250ea3
--- /dev/null
+++ b/src/test/docker/README.adoc
@@ -0,0 +1,5 @@
+= Integration example
+
+This directory contains sample configuration for integrating Grouper external authentication. Integration is provided primarily through the Shibboleth IdP.
+
+*!!!WARNING!!!* This is a full integration example that should be able to be run with minimal effort. As such, there are private keys included that should be replaced if used in any way outside of testing.
\ No newline at end of file
diff --git a/src/test/docker/directory/001_eduperson.ldif b/src/test/docker/directory/001_eduperson.ldif
new file mode 100644
index 0000000..8afb75d
--- /dev/null
+++ b/src/test/docker/directory/001_eduperson.ldif
@@ -0,0 +1,85 @@
+dn: cn=eduperson,cn=schema,cn=config
+objectClass: olcSchemaConfig
+cn: eduperson
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.1
+ NAME 'eduPersonAffiliation'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.7
+ NAME 'eduPersonEntitlement'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY caseExactMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.2
+ NAME 'eduPersonNickName'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY caseIgnoreMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.3
+ NAME 'eduPersonOrgDN'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY distinguishedNameMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.4
+ NAME 'eduPersonOrgUnitDN'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY distinguishedNameMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.5
+ NAME 'eduPersonPrimaryAffiliation'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY caseIgnoreMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.8
+ NAME 'eduPersonPrimaryOrgUnitDN'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY distinguishedNameMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.6
+ NAME 'eduPersonPrincipalName'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY caseIgnoreMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.12
+ NAME 'eduPersonPrincipalNamePrior'
+ DESC 'eduPersonPrincipalNamePrior per Internet2'
+ EQUALITY caseIgnoreMatch
+ SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.9
+ NAME 'eduPersonScopedAffiliation'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY caseIgnoreMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.10
+ NAME 'eduPersonTargetedID'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY caseExactMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.11
+ NAME 'eduPersonAssurance'
+ DESC 'eduPerson per Internet2 and EDUCAUSE'
+ EQUALITY caseExactMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.13
+ NAME 'eduPersonUniqueId'
+ DESC 'eduPersonUniqueId per Internet2'
+ EQUALITY caseIgnoreMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: ( 1.3.6.1.4.1.5923.1.1.1.16
+ NAME 'eduPersonOrcid'
+ DESC 'ORCID researcher identifiers belonging to the principal'
+ EQUALITY caseIgnoreMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcObjectClasses: ( 1.3.6.1.4.1.5923.1.1.2
+ NAME 'eduPerson'
+ AUXILIARY
+ MAY (
+ eduPersonAffiliation $ eduPersonNickname $ eduPersonOrgDN $
+ eduPersonOrgUnitDN $ eduPersonPrimaryAffiliation $
+ eduPersonPrincipalName $ eduPersonEntitlement $ eduPersonPrimaryOrgUnitDN $
+ eduPersonScopedAffiliation $ eduPersonTargetedID $ eduPersonAssurance $
+ eduPersonPrincipalNamePrior $ eduPersonUniqueId $ eduPersonOrcid )
+ )
diff --git a/src/test/docker/directory/999_users.ldif b/src/test/docker/directory/999_users.ldif
new file mode 100644
index 0000000..21e923e
--- /dev/null
+++ b/src/test/docker/directory/999_users.ldif
@@ -0,0 +1,15529 @@
+dn: ou=People,dc=unicon,dc=local
+objectClass: organizationalUnit
+ou: People
+description: People
+
+dn: ou=Groups,dc=unicon,dc=local
+objectClass: organizationalUnit
+ou: Groups
+description: Groups
+
+dn: ou=Grouper, ou=Groups,dc=unicon,dc=local
+objectClass: organizationalUnit
+ou: Grouper
+description: Grouper Groups
+
+dn: uid=GrouperSystem,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+givenName: Grouper
+uid: GrouperSystem
+sn: System
+cn: Grouper System
+userPassword: password
+
+dn: uid=jsmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+givenName: Joe
+uid: jsmith
+sn: Smith
+cn: John Smith
+userPassword: password
+
+dn: uid=banderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+givenName: Bob
+uid: banderson
+sn: Anderson
+cn: Bob Anderson
+userPassword: password
+
+dn: uid=kwhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Karl
+cn: Karl White
+uid: kwhite
+mail: kwhite@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=whenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: William
+cn: William Henderson
+uid: whenderson
+mail: whenderson@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=ddavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: David
+cn: David Davis
+uid: ddavis
+mail: ddavis@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=cmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Colin
+cn: Colin Morrison
+uid: cmorrison
+mail: cmorrison@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: faculty
+
+dn: uid=danderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Donna
+cn: Donna Anderson
+uid: danderson
+mail: danderson@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=amorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Ann
+cn: Ann Morrison
+uid: amorrison
+mail: amorrison@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=wprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: William
+cn: William Price
+uid: wprice
+mail: wprice@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Marie
+cn: Marie Roberts
+uid: mroberts
+mail: mroberts@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=kjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Kiersten
+cn: Kiersten Johnson
+uid: kjohnson
+mail: kjohnson@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: James
+cn: James Brown
+uid: jbrown
+mail: jbrown@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=agasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Ann
+cn: Ann Gasper
+uid: agasper
+mail: agasper@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=jscott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Jennifer
+cn: Jennifer Scott
+uid: jscott
+mail: jscott@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=bbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Betty
+cn: Betty Butler
+uid: bbutler
+mail: bbutler@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=tmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Thomas
+cn: Thomas Morrison
+uid: tmorrison
+mail: tmorrison@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=jbrown14,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Jennifer
+cn: Jennifer Brown
+uid: jbrown14
+mail: jbrown14@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: staff
+
+dn: uid=gjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Greg
+cn: Greg Johnson
+uid: gjohnson
+mail: gjohnson@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=rmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Robert
+cn: Robert Martinez
+uid: rmartinez
+mail: rmartinez@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=jlewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Jo
+cn: Jo Lewis
+uid: jlewis
+mail: jlewis@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=mgasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Mary
+cn: Mary Gasper
+uid: mgasper
+mail: mgasper@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Karoline
+cn: Karoline Vales
+uid: kvales
+mail: kvales@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=tgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Thomas
+cn: Thomas Grady
+uid: tgrady
+mail: tgrady@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=kmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Kiersten
+cn: Kiersten Morrison
+uid: kmorrison
+mail: kmorrison@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=dgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: David
+cn: David Grady
+uid: dgrady
+mail: dgrady@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Mary
+cn: Mary Thompson
+uid: mthompson
+mail: mthompson@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=bgasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Bill
+cn: Bill Gasper
+uid: bgasper
+mail: bgasper@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=dlopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: David
+cn: David Lopez
+uid: dlopez
+mail: dlopez@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=hwhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Heather
+cn: Heather White
+uid: hwhite
+mail: hwhite@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=ddavis27,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Donna
+cn: Donna Davis
+uid: ddavis27
+mail: ddavis27@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=bgasper28,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Bill
+cn: Bill Gasper
+uid: bgasper28
+mail: bgasper28@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Jennifer
+cn: Jennifer Johnson
+uid: jjohnson
+mail: jjohnson@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=amorrison30,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Ann
+cn: Ann Morrison
+uid: amorrison30
+mail: amorrison30@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=kmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Karl
+cn: Karl Martinez
+uid: kmartinez
+mail: kmartinez@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=ahenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Ann
+cn: Ann Henderson
+uid: ahenderson
+mail: ahenderson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=avales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Ann
+cn: Ann Vales
+uid: avales
+mail: avales@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=ggonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Greg
+cn: Greg Gonazles
+uid: ggonazles
+mail: ggonazles@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Blake
+cn: Blake Doe
+uid: bdoe
+mail: bdoe@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=plangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Paul
+cn: Paul Langenberg
+uid: plangenberg
+mail: plangenberg@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=gvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Greg
+cn: Greg Vales
+uid: gvales
+mail: gvales@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=nhenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Nancy
+cn: Nancy Henderson
+uid: nhenderson
+mail: nhenderson@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=wthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: William
+cn: William Thompson
+uid: wthompson
+mail: wthompson@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=kvales40,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Karl
+cn: Karl Vales
+uid: kvales40
+mail: kvales40@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=blee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Bill
+cn: Bill Lee
+uid: blee
+mail: blee@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=mlee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Marie
+cn: Marie Lee
+uid: mlee
+mail: mlee@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=kclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Kiersten
+cn: Kiersten Clark
+uid: kclark
+mail: kclark@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=wscott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: William
+cn: William Scott
+uid: wscott
+mail: wscott@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Donna
+cn: Donna Butler
+uid: dbutler
+mail: dbutler@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=awhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Ann
+cn: Ann White
+uid: awhite
+mail: awhite@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=hdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Heather
+cn: Heather Doe
+uid: hdoe
+mail: hdoe@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=dlangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: David
+cn: David Langenberg
+uid: dlangenberg
+mail: dlangenberg@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=ethompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Eric
+cn: Eric Thompson
+uid: ethompson
+mail: ethompson@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jbrown50,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Jennifer
+cn: Jennifer Brown
+uid: jbrown50
+mail: jbrown50@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=mgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Michael
+cn: Michael Gonazles
+uid: mgonazles
+mail: mgonazles@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=gbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Greg
+cn: Greg Butler
+uid: gbutler
+mail: gbutler@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=mvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Mark
+cn: Mark Vales
+uid: mvales
+mail: mvales@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=mlewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Michael
+cn: Michael Lewis
+uid: mlewis
+mail: mlewis@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=hvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Heather
+cn: Heather Vales
+uid: hvales
+mail: hvales@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jscott56,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Jo
+cn: Jo Scott
+uid: jscott56
+mail: jscott56@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=sdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Sarah
+cn: Sarah Doe
+uid: sdoe
+mail: sdoe@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=svales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Sarah
+cn: Sarah Vales
+uid: svales
+mail: svales@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=hmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Heather
+cn: Heather Morrison
+uid: hmorrison
+mail: hmorrison@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=jlopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Jennifer
+cn: Jennifer Lopez
+uid: jlopez
+mail: jlopez@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=dlangenberg61,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Donna
+cn: Donna Langenberg
+uid: dlangenberg61
+mail: dlangenberg61@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=bgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Betty
+cn: Betty Grady
+uid: bgrady
+mail: bgrady@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Jennifer
+cn: Jennifer Morrison
+uid: jmorrison
+mail: jmorrison@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=wvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: William
+cn: William Vales
+uid: wvales
+mail: wvales@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=mmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Mark
+cn: Mark Martinez
+uid: mmartinez
+mail: mmartinez@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Jennifer
+cn: Jennifer Martinez
+uid: jmartinez
+mail: jmartinez@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=mgasper67,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Mary
+cn: Mary Gasper
+uid: mgasper67
+mail: mgasper67@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=dpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: David
+cn: David Peterson
+uid: dpeterson
+mail: dpeterson@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=eprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Erik
+cn: Erik Price
+uid: eprice
+mail: eprice@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jgasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: James
+cn: James Gasper
+uid: jgasper
+mail: jgasper@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=jclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Jennifer
+cn: Jennifer Clark
+uid: jclark
+mail: jclark@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=bpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Betty
+cn: Betty Peterson
+uid: bpeterson
+mail: bpeterson@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=wsmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: William
+cn: William Smith
+uid: wsmith
+mail: wsmith@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=lwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Lisa
+cn: Lisa Williams
+uid: lwilliams
+mail: lwilliams@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dgrady76,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: David
+cn: David Grady
+uid: dgrady76
+mail: dgrady76@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jmartinez77,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Jo
+cn: Jo Martinez
+uid: jmartinez77
+mail: jmartinez77@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=dlewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Donna
+cn: Donna Lewis
+uid: dlewis
+mail: dlewis@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=wscott79,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: William
+cn: William Scott
+uid: wscott79
+mail: wscott79@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=ddoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Donna
+cn: Donna Doe
+uid: ddoe
+mail: ddoe@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=gmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Greg
+cn: Greg Morrison
+uid: gmorrison
+mail: gmorrison@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=khenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Kim
+cn: Kim Henderson
+uid: khenderson
+mail: khenderson@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=kpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Karoline
+cn: Karoline Peterson
+uid: kpeterson
+mail: kpeterson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=eprice84,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Erik
+cn: Erik Price
+uid: eprice84
+mail: eprice84@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=hsmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Heather
+cn: Heather Smith
+uid: hsmith
+mail: hsmith@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=dwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Donna
+cn: Donna Williams
+uid: dwilliams
+mail: dwilliams@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=klopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Karl
+cn: Karl Lopez
+uid: klopez
+mail: klopez@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=wjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: William
+cn: William Johnson
+uid: wjohnson
+mail: wjohnson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=wbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: William
+cn: William Brown
+uid: wbrown
+mail: wbrown@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=hbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Heather
+cn: Heather Brown
+uid: hbrown
+mail: hbrown@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Kim
+cn: Kim Roberts
+uid: kroberts
+mail: kroberts@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Donna
+cn: Donna Walters
+uid: dwalters
+mail: dwalters@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=nlee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Nancy
+cn: Nancy Lee
+uid: nlee
+mail: nlee@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=sgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Sarah
+cn: Sarah Gonazles
+uid: sgonazles
+mail: sgonazles@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=handerson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Heather
+cn: Heather Anderson
+uid: handerson
+mail: handerson@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=danderson96,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: David
+cn: David Anderson
+uid: danderson96
+mail: danderson96@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=dgrady97,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: David
+cn: David Grady
+uid: dgrady97
+mail: dgrady97@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: James
+cn: James Grady
+uid: jgrady
+mail: jgrady@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: John
+cn: John Thompson
+uid: jthompson
+mail: jthompson@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=kthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Kiersten
+cn: Kiersten Thompson
+uid: kthompson
+mail: kthompson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=jpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: John
+cn: John Peterson
+uid: jpeterson
+mail: jpeterson@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=lmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Lisa
+cn: Lisa Morrison
+uid: lmorrison
+mail: lmorrison@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=glee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Greg
+cn: Greg Lee
+uid: glee
+mail: glee@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=lhenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Lori
+cn: Lori Henderson
+uid: lhenderson
+mail: lhenderson@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=mscott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Marie
+cn: Marie Scott
+uid: mscott
+mail: mscott@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=ldavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Lori
+cn: Lori Davis
+uid: ldavis
+mail: ldavis@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: James
+cn: James Roberts
+uid: jroberts
+mail: jroberts@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=asmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Ann
+cn: Ann Smith
+uid: asmith
+mail: asmith@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=mbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Mark
+cn: Mark Brown
+uid: mbrown
+mail: mbrown@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kwhite110,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Kim
+cn: Kim White
+uid: kwhite110
+mail: kwhite110@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=mroberts111,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Mark
+cn: Mark Roberts
+uid: mroberts111
+mail: mroberts111@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=mwhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Mark
+cn: Mark White
+uid: mwhite
+mail: mwhite@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Jim
+cn: Jim Price
+uid: jprice
+mail: jprice@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=msmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Michael
+cn: Michael Smith
+uid: msmith
+mail: msmith@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=sclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Sarah
+cn: Sarah Clark
+uid: sclark
+mail: sclark@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=dvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Donna
+cn: Donna Vales
+uid: dvales
+mail: dvales@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kjohnson117,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Kim
+cn: Kim Johnson
+uid: kjohnson117
+mail: kjohnson117@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=dsmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: David
+cn: David Smith
+uid: dsmith
+mail: dsmith@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=bwhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Blake
+cn: Blake White
+uid: bwhite
+mail: bwhite@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=ldoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Lori
+cn: Lori Doe
+uid: ldoe
+mail: ldoe@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dlangenberg121,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: David
+cn: David Langenberg
+uid: dlangenberg121
+mail: dlangenberg121@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=gwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Greg
+cn: Greg Williams
+uid: gwilliams
+mail: gwilliams@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kclark123,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Karoline
+cn: Karoline Clark
+uid: kclark123
+mail: kclark123@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=ewilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Eric
+cn: Eric Williams
+uid: ewilliams
+mail: ewilliams@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=egonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Eric
+cn: Eric Gonazles
+uid: egonazles
+mail: egonazles@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=rprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Robert
+cn: Robert Price
+uid: rprice
+mail: rprice@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=ewalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Erik
+cn: Erik Walters
+uid: ewalters
+mail: ewalters@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=clangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Colin
+cn: Colin Langenberg
+uid: clangenberg
+mail: clangenberg@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=cmorrison129,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Colin
+cn: Colin Morrison
+uid: cmorrison129
+mail: cmorrison129@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Mary
+cn: Mary Butler
+uid: mbutler
+mail: mbutler@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=smartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Sarah
+cn: Sarah Martinez
+uid: smartinez
+mail: smartinez@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=klewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Karl
+cn: Karl Lewis
+uid: klewis
+mail: klewis@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=mwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Marie
+cn: Marie Williams
+uid: mwilliams
+mail: mwilliams@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dsmith134,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: David
+cn: David Smith
+uid: dsmith134
+mail: dsmith134@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=gpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Greg
+cn: Greg Peterson
+uid: gpeterson
+mail: gpeterson@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=bgrady136,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Betty
+cn: Betty Grady
+uid: bgrady136
+mail: bgrady136@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=mthompson137,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Mark
+cn: Mark Thompson
+uid: mthompson137
+mail: mthompson137@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=mroberts138,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Mary
+cn: Mary Roberts
+uid: mroberts138
+mail: mroberts138@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=janderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: James
+cn: James Anderson
+uid: janderson
+mail: janderson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=jscott140,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Jo
+cn: Jo Scott
+uid: jscott140
+mail: jscott140@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=ddavis141,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Donna
+cn: Donna Davis
+uid: ddavis141
+mail: ddavis141@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=jbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Jennifer
+cn: Jennifer Butler
+uid: jbutler
+mail: jbutler@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=jlewis143,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Jo
+cn: Jo Lewis
+uid: jlewis143
+mail: jlewis143@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=janderson144,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: John
+cn: John Anderson
+uid: janderson144
+mail: janderson144@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=mlangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Marie
+cn: Marie Langenberg
+uid: mlangenberg
+mail: mlangenberg@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=jthompson146,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Jennifer
+cn: Jennifer Thompson
+uid: jthompson146
+mail: jthompson146@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=hvales147,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Heather
+cn: Heather Vales
+uid: hvales147
+mail: hvales147@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jwhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: John
+cn: John White
+uid: jwhite
+mail: jwhite@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=tgasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Thomas
+cn: Thomas Gasper
+uid: tgasper
+mail: tgasper@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=bjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Bill
+cn: Bill Johnson
+uid: bjohnson
+mail: bjohnson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=mroberts151,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Mark
+cn: Mark Roberts
+uid: mroberts151
+mail: mroberts151@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=wthompson152,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: William
+cn: William Thompson
+uid: wthompson152
+mail: wthompson152@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=mdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Michael
+cn: Michael Doe
+uid: mdoe
+mail: mdoe@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=bgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Bill
+cn: Bill Gonazles
+uid: bgonazles
+mail: bgonazles@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=mthompson155,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Mark
+cn: Mark Thompson
+uid: mthompson155
+mail: mthompson155@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dlee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: David
+cn: David Lee
+uid: dlee
+mail: dlee@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=broberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Bill
+cn: Bill Roberts
+uid: broberts
+mail: broberts@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: John
+cn: John Vales
+uid: jvales
+mail: jvales@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=wwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: William
+cn: William Williams
+uid: wwilliams
+mail: wwilliams@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=wwilliams160,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: William
+cn: William Williams
+uid: wwilliams160
+mail: wwilliams160@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=ggasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Greg
+cn: Greg Gasper
+uid: ggasper
+mail: ggasper@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=rlopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Robert
+cn: Robert Lopez
+uid: rlopez
+mail: rlopez@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=mgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Michael
+cn: Michael Grady
+uid: mgrady
+mail: mgrady@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=lpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Lisa
+cn: Lisa Peterson
+uid: lpeterson
+mail: lpeterson@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=ljohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Lori
+cn: Lori Johnson
+uid: ljohnson
+mail: ljohnson@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=gscott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Greg
+cn: Greg Scott
+uid: gscott
+mail: gscott@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=mprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Marie
+cn: Marie Price
+uid: mprice
+mail: mprice@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Bill
+cn: Bill Price
+uid: bprice
+mail: bprice@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=aanderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Ann
+cn: Ann Anderson
+uid: aanderson
+mail: aanderson@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=bprice170,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Blake
+cn: Blake Price
+uid: bprice170
+mail: bprice170@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=hscott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Heather
+cn: Heather Scott
+uid: hscott
+mail: hscott@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=hthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Heather
+cn: Heather Thompson
+uid: hthompson
+mail: hthompson@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=jmorrison173,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Jo
+cn: Jo Morrison
+uid: jmorrison173
+mail: jmorrison173@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=mprice174,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Mary
+cn: Mary Price
+uid: mprice174
+mail: mprice174@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=hprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Heather
+cn: Heather Price
+uid: hprice
+mail: hprice@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=kbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Karoline
+cn: Karoline Butler
+uid: kbutler
+mail: kbutler@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bjohnson177,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Blake
+cn: Blake Johnson
+uid: bjohnson177
+mail: bjohnson177@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=jlee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Jennifer
+cn: Jennifer Lee
+uid: jlee
+mail: jlee@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=rwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Robert
+cn: Robert Williams
+uid: rwilliams
+mail: rwilliams@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=jprice180,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Jo
+cn: Jo Price
+uid: jprice180
+mail: jprice180@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kgasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Kim
+cn: Kim Gasper
+uid: kgasper
+mail: kgasper@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=cthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Colin
+cn: Colin Thompson
+uid: cthompson
+mail: cthompson@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=ethompson183,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Eric
+cn: Eric Thompson
+uid: ethompson183
+mail: ethompson183@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=bclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Betty
+cn: Betty Clark
+uid: bclark
+mail: bclark@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=llee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Lori
+cn: Lori Lee
+uid: llee
+mail: llee@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=kpeterson186,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Karl
+cn: Karl Peterson
+uid: kpeterson186
+mail: kpeterson186@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=wlee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: William
+cn: William Lee
+uid: wlee
+mail: wlee@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=gjohnson188,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Greg
+cn: Greg Johnson
+uid: gjohnson188
+mail: gjohnson188@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=mlopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Michael
+cn: Michael Lopez
+uid: mlopez
+mail: mlopez@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=sgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Sarah
+cn: Sarah Grady
+uid: sgrady
+mail: sgrady@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=pbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Paul
+cn: Paul Brown
+uid: pbrown
+mail: pbrown@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=mwilliams192,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Mary
+cn: Mary Williams
+uid: mwilliams192
+mail: mwilliams192@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jlewis193,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: James
+cn: James Lewis
+uid: jlewis193
+mail: jlewis193@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=nbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Nancy
+cn: Nancy Brown
+uid: nbrown
+mail: nbrown@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=jwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Jo
+cn: Jo Walters
+uid: jwalters
+mail: jwalters@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=hdoe196,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Heather
+cn: Heather Doe
+uid: hdoe196
+mail: hdoe196@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=mlewis197,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Michael
+cn: Michael Lewis
+uid: mlewis197
+mail: mlewis197@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=blewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Bill
+cn: Bill Lewis
+uid: blewis
+mail: blewis@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=mwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Michael
+cn: Michael Walters
+uid: mwalters
+mail: mwalters@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=llopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Lisa
+cn: Lisa Lopez
+uid: llopez
+mail: llopez@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jwalters201,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: James
+cn: James Walters
+uid: jwalters201
+mail: jwalters201@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=kmorrison202,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Karoline
+cn: Karoline Morrison
+uid: kmorrison202
+mail: kmorrison202@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=bgrady203,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Bill
+cn: Bill Grady
+uid: bgrady203
+mail: bgrady203@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=clewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Colin
+cn: Colin Lewis
+uid: clewis
+mail: clewis@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=hwhite205,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Heather
+cn: Heather White
+uid: hwhite205
+mail: hwhite205@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=dprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: David
+cn: David Price
+uid: dprice
+mail: dprice@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=jlee207,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: John
+cn: John Lee
+uid: jlee207
+mail: jlee207@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jbutler208,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: John
+cn: John Butler
+uid: jbutler208
+mail: jbutler208@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=bdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Betty
+cn: Betty Davis
+uid: bdavis
+mail: bdavis@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jroberts210,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Jennifer
+cn: Jennifer Roberts
+uid: jroberts210
+mail: jroberts210@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=gjohnson211,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Greg
+cn: Greg Johnson
+uid: gjohnson211
+mail: gjohnson211@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jlangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Jennifer
+cn: Jennifer Langenberg
+uid: jlangenberg
+mail: jlangenberg@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=dhenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Donna
+cn: Donna Henderson
+uid: dhenderson
+mail: dhenderson@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=pmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Paul
+cn: Paul Martinez
+uid: pmartinez
+mail: pmartinez@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=ganderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Greg
+cn: Greg Anderson
+uid: ganderson
+mail: ganderson@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=mpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Mary
+cn: Mary Peterson
+uid: mpeterson
+mail: mpeterson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=klopez217,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Karoline
+cn: Karoline Lopez
+uid: klopez217
+mail: klopez217@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=tgasper218,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Thomas
+cn: Thomas Gasper
+uid: tgasper218
+mail: tgasper218@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=lsmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Lori
+cn: Lori Smith
+uid: lsmith
+mail: lsmith@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=ebutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Eric
+cn: Eric Butler
+uid: ebutler
+mail: ebutler@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=jvales221,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Jim
+cn: Jim Vales
+uid: jvales221
+mail: jvales221@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=jvales222,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: James
+cn: James Vales
+uid: jvales222
+mail: jvales222@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kjohnson223,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Karoline
+cn: Karoline Johnson
+uid: kjohnson223
+mail: kjohnson223@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=kscott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Kiersten
+cn: Kiersten Scott
+uid: kscott
+mail: kscott@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dwilliams225,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: David
+cn: David Williams
+uid: dwilliams225
+mail: dwilliams225@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=bclark226,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Betty
+cn: Betty Clark
+uid: bclark226
+mail: bclark226@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: faculty
+
+dn: uid=mwhite227,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Marie
+cn: Marie White
+uid: mwhite227
+mail: mwhite227@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=danderson228,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: David
+cn: David Anderson
+uid: danderson228
+mail: danderson228@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=dgrady229,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: David
+cn: David Grady
+uid: dgrady229
+mail: dgrady229@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=jgrady230,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: James
+cn: James Grady
+uid: jgrady230
+mail: jgrady230@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: James
+cn: James Doe
+uid: jdoe
+mail: jdoe@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: David
+cn: David Morrison
+uid: dmorrison
+mail: dmorrison@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Marie
+cn: Marie Clark
+uid: mclark
+mail: mclark@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=plopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Paul
+cn: Paul Lopez
+uid: plopez
+mail: plopez@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=hlewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Heather
+cn: Heather Lewis
+uid: hlewis
+mail: hlewis@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dsmith236,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: David
+cn: David Smith
+uid: dsmith236
+mail: dsmith236@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=kbutler237,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Kiersten
+cn: Kiersten Butler
+uid: kbutler237
+mail: kbutler237@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=kdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Kim
+cn: Kim Davis
+uid: kdavis
+mail: kdavis@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=kdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Kiersten
+cn: Kiersten Doe
+uid: kdoe
+mail: kdoe@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=kgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Karl
+cn: Karl Grady
+uid: kgrady
+mail: kgrady@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jprice241,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: James
+cn: James Price
+uid: jprice241
+mail: jprice241@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=shenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Sarah
+cn: Sarah Henderson
+uid: shenderson
+mail: shenderson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kmorrison243,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Kiersten
+cn: Kiersten Morrison
+uid: kmorrison243
+mail: kmorrison243@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=mgonazles244,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Mark
+cn: Mark Gonazles
+uid: mgonazles244
+mail: mgonazles244@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=alewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Ann
+cn: Ann Lewis
+uid: alewis
+mail: alewis@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=mdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Michael
+cn: Michael Davis
+uid: mdavis
+mail: mdavis@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=manderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Marie
+cn: Marie Anderson
+uid: manderson
+mail: manderson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=bmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Blake
+cn: Blake Morrison
+uid: bmorrison
+mail: bmorrison@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=msmith249,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Marie
+cn: Marie Smith
+uid: msmith249
+mail: msmith249@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=jdoe250,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: James
+cn: James Doe
+uid: jdoe250
+mail: jdoe250@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jgasper251,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: James
+cn: James Gasper
+uid: jgasper251
+mail: jgasper251@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=jscott252,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Jo
+cn: Jo Scott
+uid: jscott252
+mail: jscott252@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=kwhite253,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Karoline
+cn: Karoline White
+uid: kwhite253
+mail: kwhite253@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=wbrown254,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: William
+cn: William Brown
+uid: wbrown254
+mail: wbrown254@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=mpeterson255,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Mark
+cn: Mark Peterson
+uid: mpeterson255
+mail: mpeterson255@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=kthompson256,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Kiersten
+cn: Kiersten Thompson
+uid: kthompson256
+mail: kthompson256@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=jscott257,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Jo
+cn: Jo Scott
+uid: jscott257
+mail: jscott257@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=mlangenberg258,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Mary
+cn: Mary Langenberg
+uid: mlangenberg258
+mail: mlangenberg258@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=khenderson259,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Karoline
+cn: Karoline Henderson
+uid: khenderson259
+mail: khenderson259@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=hbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Heather
+cn: Heather Butler
+uid: hbutler
+mail: hbutler@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=mbutler261,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Marie
+cn: Marie Butler
+uid: mbutler261
+mail: mbutler261@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jmorrison262,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Jennifer
+cn: Jennifer Morrison
+uid: jmorrison262
+mail: jmorrison262@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=rdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Robert
+cn: Robert Davis
+uid: rdavis
+mail: rdavis@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=kbutler264,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Kim
+cn: Kim Butler
+uid: kbutler264
+mail: kbutler264@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jwhite265,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: James
+cn: James White
+uid: jwhite265
+mail: jwhite265@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=jwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: James
+cn: James Williams
+uid: jwilliams
+mail: jwilliams@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=llangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Lisa
+cn: Lisa Langenberg
+uid: llangenberg
+mail: llangenberg@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jhenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: John
+cn: John Henderson
+uid: jhenderson
+mail: jhenderson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=jlangenberg269,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Jennifer
+cn: Jennifer Langenberg
+uid: jlangenberg269
+mail: jlangenberg269@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=mdoe270,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Michael
+cn: Michael Doe
+uid: mdoe270
+mail: mdoe270@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=mbrown271,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Mark
+cn: Mark Brown
+uid: mbrown271
+mail: mbrown271@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jvales272,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: John
+cn: John Vales
+uid: jvales272
+mail: jvales272@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=tdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Thomas
+cn: Thomas Davis
+uid: tdavis
+mail: tdavis@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=ejohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Eric
+cn: Eric Johnson
+uid: ejohnson
+mail: ejohnson@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jpeterson275,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: John
+cn: John Peterson
+uid: jpeterson275
+mail: jpeterson275@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=gsmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Greg
+cn: Greg Smith
+uid: gsmith
+mail: gsmith@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=klopez278,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Kim
+cn: Kim Lopez
+uid: klopez278
+mail: klopez278@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: staff
+
+dn: uid=sclark279,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Sarah
+cn: Sarah Clark
+uid: sclark279
+mail: sclark279@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=abrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Ann
+cn: Ann Brown
+uid: abrown
+mail: abrown@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jwhite281,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Jim
+cn: Jim White
+uid: jwhite281
+mail: jwhite281@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=hgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Heather
+cn: Heather Grady
+uid: hgrady
+mail: hgrady@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=kwhite283,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Kim
+cn: Kim White
+uid: kwhite283
+mail: kwhite283@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=bsmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Betty
+cn: Betty Smith
+uid: bsmith
+mail: bsmith@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=elopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Eric
+cn: Eric Lopez
+uid: elopez
+mail: elopez@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=pclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Paul
+cn: Paul Clark
+uid: pclark
+mail: pclark@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=glee287,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Greg
+cn: Greg Lee
+uid: glee287
+mail: glee287@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jwhite288,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Jennifer
+cn: Jennifer White
+uid: jwhite288
+mail: jwhite288@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: faculty
+
+dn: uid=rdavis289,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Robert
+cn: Robert Davis
+uid: rdavis289
+mail: rdavis289@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=jgasper290,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: James
+cn: James Gasper
+uid: jgasper290
+mail: jgasper290@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=nwhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Nancy
+cn: Nancy White
+uid: nwhite
+mail: nwhite@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=kpeterson292,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Kiersten
+cn: Kiersten Peterson
+uid: kpeterson292
+mail: kpeterson292@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=klewis293,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Kiersten
+cn: Kiersten Lewis
+uid: klewis293
+mail: klewis293@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=jvales294,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: John
+cn: John Vales
+uid: jvales294
+mail: jvales294@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=rdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Robert
+cn: Robert Doe
+uid: rdoe
+mail: rdoe@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=bbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Blake
+cn: Blake Brown
+uid: bbrown
+mail: bbrown@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=mlangenberg297,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Mark
+cn: Mark Langenberg
+uid: mlangenberg297
+mail: mlangenberg297@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=broberts298,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Bill
+cn: Bill Roberts
+uid: broberts298
+mail: broberts298@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=ldoe299,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Lori
+cn: Lori Doe
+uid: ldoe299
+mail: ldoe299@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=ggasper300,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Greg
+cn: Greg Gasper
+uid: ggasper300
+mail: ggasper300@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=lroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Lori
+cn: Lori Roberts
+uid: lroberts
+mail: lroberts@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=kwhite302,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Kiersten
+cn: Kiersten White
+uid: kwhite302
+mail: kwhite302@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=dwilliams303,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: David
+cn: David Williams
+uid: dwilliams303
+mail: dwilliams303@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=bpeterson304,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Bill
+cn: Bill Peterson
+uid: bpeterson304
+mail: bpeterson304@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=swalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Sarah
+cn: Sarah Walters
+uid: swalters
+mail: swalters@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=edavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Eric
+cn: Eric Davis
+uid: edavis
+mail: edavis@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=bthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Blake
+cn: Blake Thompson
+uid: bthompson
+mail: bthompson@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=slangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Sarah
+cn: Sarah Langenberg
+uid: slangenberg
+mail: slangenberg@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=dwilliams309,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Donna
+cn: Donna Williams
+uid: dwilliams309
+mail: dwilliams309@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=cpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Colin
+cn: Colin Peterson
+uid: cpeterson
+mail: cpeterson@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=mlee311,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Mary
+cn: Mary Lee
+uid: mlee311
+mail: mlee311@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=elopez312,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Eric
+cn: Eric Lopez
+uid: elopez312
+mail: elopez312@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=pmartinez313,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Paul
+cn: Paul Martinez
+uid: pmartinez313
+mail: pmartinez313@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=lwilliams314,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Lisa
+cn: Lisa Williams
+uid: lwilliams314
+mail: lwilliams314@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: staff
+
+dn: uid=kpeterson315,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Kiersten
+cn: Kiersten Peterson
+uid: kpeterson315
+mail: kpeterson315@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=kvales316,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Kiersten
+cn: Kiersten Vales
+uid: kvales316
+mail: kvales316@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=hbutler317,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Heather
+cn: Heather Butler
+uid: hbutler317
+mail: hbutler317@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=jwalters318,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: John
+cn: John Walters
+uid: jwalters318
+mail: jwalters318@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=kthompson319,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Kiersten
+cn: Kiersten Thompson
+uid: kthompson319
+mail: kthompson319@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=mscott320,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Mary
+cn: Mary Scott
+uid: mscott320
+mail: mscott320@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=rbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Robert
+cn: Robert Butler
+uid: rbutler
+mail: rbutler@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=mclark322,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Mark
+cn: Mark Clark
+uid: mclark322
+mail: mclark322@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=hhenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Heather
+cn: Heather Henderson
+uid: hhenderson
+mail: hhenderson@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=hdoe324,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Heather
+cn: Heather Doe
+uid: hdoe324
+mail: hdoe324@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=mdoe325,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Mark
+cn: Mark Doe
+uid: mdoe325
+mail: mdoe325@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=klopez326,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Kiersten
+cn: Kiersten Lopez
+uid: klopez326
+mail: klopez326@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=dlewis327,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: David
+cn: David Lewis
+uid: dlewis327
+mail: dlewis327@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: faculty
+
+dn: uid=wlee328,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: William
+cn: William Lee
+uid: wlee328
+mail: wlee328@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mthompson329,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Mary
+cn: Mary Thompson
+uid: mthompson329
+mail: mthompson329@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=gbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Greg
+cn: Greg Brown
+uid: gbrown
+mail: gbrown@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=rmartinez331,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Robert
+cn: Robert Martinez
+uid: rmartinez331
+mail: rmartinez331@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=klee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Karl
+cn: Karl Lee
+uid: klee
+mail: klee@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Marie
+cn: Marie Johnson
+uid: mjohnson
+mail: mjohnson@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=lwilliams334,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Lisa
+cn: Lisa Williams
+uid: lwilliams334
+mail: lwilliams334@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=tbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Thomas
+cn: Thomas Brown
+uid: tbrown
+mail: tbrown@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=jwalters336,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: James
+cn: James Walters
+uid: jwalters336
+mail: jwalters336@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=lbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Lisa
+cn: Lisa Butler
+uid: lbutler
+mail: lbutler@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=kbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Kiersten
+cn: Kiersten Brown
+uid: kbrown
+mail: kbrown@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=pjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Paul
+cn: Paul Johnson
+uid: pjohnson
+mail: pjohnson@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jprice340,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: John
+cn: John Price
+uid: jprice340
+mail: jprice340@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=jprice341,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Jim
+cn: Jim Price
+uid: jprice341
+mail: jprice341@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=lhenderson342,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Lisa
+cn: Lisa Henderson
+uid: lhenderson342
+mail: lhenderson342@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=kwhite343,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Kim
+cn: Kim White
+uid: kwhite343
+mail: kwhite343@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=klopez344,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Karl
+cn: Karl Lopez
+uid: klopez344
+mail: klopez344@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=bgonazles345,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Bill
+cn: Bill Gonazles
+uid: bgonazles345
+mail: bgonazles345@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=apeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Ann
+cn: Ann Peterson
+uid: apeterson
+mail: apeterson@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=dbutler347,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: David
+cn: David Butler
+uid: dbutler347
+mail: dbutler347@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=speterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Sarah
+cn: Sarah Peterson
+uid: speterson
+mail: speterson@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=jpeterson349,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: James
+cn: James Peterson
+uid: jpeterson349
+mail: jpeterson349@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=gjohnson350,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Greg
+cn: Greg Johnson
+uid: gjohnson350
+mail: gjohnson350@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=lthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Lisa
+cn: Lisa Thompson
+uid: lthompson
+mail: lthompson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=nclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Nancy
+cn: Nancy Clark
+uid: nclark
+mail: nclark@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=swilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Sarah
+cn: Sarah Williams
+uid: swilliams
+mail: swilliams@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=jprice354,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Jennifer
+cn: Jennifer Price
+uid: jprice354
+mail: jprice354@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=lclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Lori
+cn: Lori Clark
+uid: lclark
+mail: lclark@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=ghenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Greg
+cn: Greg Henderson
+uid: ghenderson
+mail: ghenderson@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=egonazles357,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Eric
+cn: Eric Gonazles
+uid: egonazles357
+mail: egonazles357@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=dlangenberg358,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Donna
+cn: Donna Langenberg
+uid: dlangenberg358
+mail: dlangenberg358@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=cbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Colin
+cn: Colin Brown
+uid: cbrown
+mail: cbrown@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=twalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Thomas
+cn: Thomas Walters
+uid: twalters
+mail: twalters@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=swhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Sarah
+cn: Sarah White
+uid: swhite
+mail: swhite@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=rwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Robert
+cn: Robert Walters
+uid: rwalters
+mail: rwalters@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=eroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Erik
+cn: Erik Roberts
+uid: eroberts
+mail: eroberts@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=bvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Blake
+cn: Blake Vales
+uid: bvales
+mail: bvales@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=bdoe365,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Betty
+cn: Betty Doe
+uid: bdoe365
+mail: bdoe365@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=nlee366,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Nancy
+cn: Nancy Lee
+uid: nlee366
+mail: nlee366@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=tmorrison367,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Thomas
+cn: Thomas Morrison
+uid: tmorrison367
+mail: tmorrison367@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=kbutler368,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Kiersten
+cn: Kiersten Butler
+uid: kbutler368
+mail: kbutler368@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=bdavis369,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Bill
+cn: Bill Davis
+uid: bdavis369
+mail: bdavis369@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kdavis370,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Kiersten
+cn: Kiersten Davis
+uid: kdavis370
+mail: kdavis370@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=llewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Lori
+cn: Lori Lewis
+uid: llewis
+mail: llewis@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=djohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Donna
+cn: Donna Johnson
+uid: djohnson
+mail: djohnson@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=jlangenberg373,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: James
+cn: James Langenberg
+uid: jlangenberg373
+mail: jlangenberg373@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=klangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Karoline
+cn: Karoline Langenberg
+uid: klangenberg
+mail: klangenberg@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jthompson375,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: John
+cn: John Thompson
+uid: jthompson375
+mail: jthompson375@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=jgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Jennifer
+cn: Jennifer Gonazles
+uid: jgonazles
+mail: jgonazles@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=mscott377,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Mark
+cn: Mark Scott
+uid: mscott377
+mail: mscott377@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=jsmith378,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Jennifer
+cn: Jennifer Smith
+uid: jsmith378
+mail: jsmith378@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mroberts379,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Marie
+cn: Marie Roberts
+uid: mroberts379
+mail: mroberts379@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=kprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Kiersten
+cn: Kiersten Price
+uid: kprice
+mail: kprice@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=tclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Thomas
+cn: Thomas Clark
+uid: tclark
+mail: tclark@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=egasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Erik
+cn: Erik Gasper
+uid: egasper
+mail: egasper@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=jjohnson383,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: James
+cn: James Johnson
+uid: jjohnson383
+mail: jjohnson383@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=cdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Colin
+cn: Colin Davis
+uid: cdavis
+mail: cdavis@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=escott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Eric
+cn: Eric Scott
+uid: escott
+mail: escott@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=kmartinez386,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Karoline
+cn: Karoline Martinez
+uid: kmartinez386
+mail: kmartinez386@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=lgrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Lori
+cn: Lori Grady
+uid: lgrady
+mail: lgrady@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jmartinez388,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Jo
+cn: Jo Martinez
+uid: jmartinez388
+mail: jmartinez388@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=alangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Ann
+cn: Ann Langenberg
+uid: alangenberg
+mail: alangenberg@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=blewis390,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Betty
+cn: Betty Lewis
+uid: blewis390
+mail: blewis390@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=pjohnson391,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Paul
+cn: Paul Johnson
+uid: pjohnson391
+mail: pjohnson391@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=llee392,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Lori
+cn: Lori Lee
+uid: llee392
+mail: llee392@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=slewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Sarah
+cn: Sarah Lewis
+uid: slewis
+mail: slewis@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=nwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Nancy
+cn: Nancy Walters
+uid: nwalters
+mail: nwalters@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=hscott395,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Heather
+cn: Heather Scott
+uid: hscott395
+mail: hscott395@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=edavis396,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Erik
+cn: Erik Davis
+uid: edavis396
+mail: edavis396@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=dlangenberg397,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Donna
+cn: Donna Langenberg
+uid: dlangenberg397
+mail: dlangenberg397@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=plangenberg398,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Paul
+cn: Paul Langenberg
+uid: plangenberg398
+mail: plangenberg398@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=mscott399,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Michael
+cn: Michael Scott
+uid: mscott399
+mail: mscott399@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=jgasper400,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Jo
+cn: Jo Gasper
+uid: jgasper400
+mail: jgasper400@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=kmartinez401,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Karoline
+cn: Karoline Martinez
+uid: kmartinez401
+mail: kmartinez401@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=cwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Colin
+cn: Colin Walters
+uid: cwalters
+mail: cwalters@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=cgasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Colin
+cn: Colin Gasper
+uid: cgasper
+mail: cgasper@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=jwilliams404,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: James
+cn: James Williams
+uid: jwilliams404
+mail: jwilliams404@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=rwalters405,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Robert
+cn: Robert Walters
+uid: rwalters405
+mail: rwalters405@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=kvales406,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Karl
+cn: Karl Vales
+uid: kvales406
+mail: kvales406@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=bscott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Bill
+cn: Bill Scott
+uid: bscott
+mail: bscott@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=hmorrison408,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Heather
+cn: Heather Morrison
+uid: hmorrison408
+mail: hmorrison408@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=eanderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Eric
+cn: Eric Anderson
+uid: eanderson
+mail: eanderson@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=mlangenberg410,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Mark
+cn: Mark Langenberg
+uid: mlangenberg410
+mail: mlangenberg410@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=msmith411,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Mark
+cn: Mark Smith
+uid: msmith411
+mail: msmith411@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=wpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: William
+cn: William Peterson
+uid: wpeterson
+mail: wpeterson@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=mgasper413,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Marie
+cn: Marie Gasper
+uid: mgasper413
+mail: mgasper413@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=bvales414,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Blake
+cn: Blake Vales
+uid: bvales414
+mail: bvales414@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=bgrady415,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Blake
+cn: Blake Grady
+uid: bgrady415
+mail: bgrady415@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=plee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Paul
+cn: Paul Lee
+uid: plee
+mail: plee@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Kim
+cn: Kim Williams
+uid: kwilliams
+mail: kwilliams@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=wwilliams418,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: William
+cn: William Williams
+uid: wwilliams418
+mail: wwilliams418@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jbutler419,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Jennifer
+cn: Jennifer Butler
+uid: jbutler419
+mail: jbutler419@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=hvales420,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Heather
+cn: Heather Vales
+uid: hvales420
+mail: hvales420@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=kroberts421,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Karl
+cn: Karl Roberts
+uid: kroberts421
+mail: kroberts421@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=bdoe422,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Betty
+cn: Betty Doe
+uid: bdoe422
+mail: bdoe422@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=dclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: David
+cn: David Clark
+uid: dclark
+mail: dclark@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=mhenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Michael
+cn: Michael Henderson
+uid: mhenderson
+mail: mhenderson@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=dhenderson425,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: David
+cn: David Henderson
+uid: dhenderson425
+mail: dhenderson425@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=dgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: David
+cn: David Gonazles
+uid: dgonazles
+mail: dgonazles@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=dgrady427,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: David
+cn: David Grady
+uid: dgrady427
+mail: dgrady427@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jjohnson428,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Jennifer
+cn: Jennifer Johnson
+uid: jjohnson428
+mail: jjohnson428@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=jlewis429,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Jennifer
+cn: Jennifer Lewis
+uid: jlewis429
+mail: jlewis429@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=klangenberg430,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Kim
+cn: Kim Langenberg
+uid: klangenberg430
+mail: klangenberg430@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=ddoe431,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: David
+cn: David Doe
+uid: ddoe431
+mail: ddoe431@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=escott432,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Eric
+cn: Eric Scott
+uid: escott432
+mail: escott432@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=lwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Lisa
+cn: Lisa Walters
+uid: lwalters
+mail: lwalters@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=gsmith434,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Greg
+cn: Greg Smith
+uid: gsmith434
+mail: gsmith434@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=kwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Karl
+cn: Karl Walters
+uid: kwalters
+mail: kwalters@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=tmorrison436,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Thomas
+cn: Thomas Morrison
+uid: tmorrison436
+mail: tmorrison436@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=bbutler437,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Bill
+cn: Bill Butler
+uid: bbutler437
+mail: bbutler437@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=mgonazles438,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Mark
+cn: Mark Gonazles
+uid: mgonazles438
+mail: mgonazles438@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=rwalters439,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Robert
+cn: Robert Walters
+uid: rwalters439
+mail: rwalters439@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=kclark440,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Karl
+cn: Karl Clark
+uid: kclark440
+mail: kclark440@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=nvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Nancy
+cn: Nancy Vales
+uid: nvales
+mail: nvales@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=jwalters442,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: James
+cn: James Walters
+uid: jwalters442
+mail: jwalters442@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Bill
+cn: Bill Williams
+uid: bwilliams
+mail: bwilliams@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jgrady444,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Jim
+cn: Jim Grady
+uid: jgrady444
+mail: jgrady444@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=escott445,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Erik
+cn: Erik Scott
+uid: escott445
+mail: escott445@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=bclark446,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Bill
+cn: Bill Clark
+uid: bclark446
+mail: bclark446@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=klopez447,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Kiersten
+cn: Kiersten Lopez
+uid: klopez447
+mail: klopez447@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=slee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Sarah
+cn: Sarah Lee
+uid: slee
+mail: slee@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=dwilliams449,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Donna
+cn: Donna Williams
+uid: dwilliams449
+mail: dwilliams449@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=klewis450,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Kim
+cn: Kim Lewis
+uid: klewis450
+mail: klewis450@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=elangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Eric
+cn: Eric Langenberg
+uid: elangenberg
+mail: elangenberg@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=rvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Robert
+cn: Robert Vales
+uid: rvales
+mail: rvales@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=jgasper453,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Jo
+cn: Jo Gasper
+uid: jgasper453
+mail: jgasper453@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=mgasper454,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Mark
+cn: Mark Gasper
+uid: mgasper454
+mail: mgasper454@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=jclark455,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: James
+cn: James Clark
+uid: jclark455
+mail: jclark455@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=bgasper456,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Betty
+cn: Betty Gasper
+uid: bgasper456
+mail: bgasper456@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=bwilliams457,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Blake
+cn: Blake Williams
+uid: bwilliams457
+mail: bwilliams457@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=kprice458,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Karl
+cn: Karl Price
+uid: kprice458
+mail: kprice458@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=ksmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Kiersten
+cn: Kiersten Smith
+uid: ksmith
+mail: ksmith@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=lbutler460,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Lori
+cn: Lori Butler
+uid: lbutler460
+mail: lbutler460@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=mlewis461,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Mark
+cn: Mark Lewis
+uid: mlewis461
+mail: mlewis461@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jmorrison462,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Jo
+cn: Jo Morrison
+uid: jmorrison462
+mail: jmorrison462@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=msmith463,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Mary
+cn: Mary Smith
+uid: msmith463
+mail: msmith463@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=blopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Blake
+cn: Blake Lopez
+uid: blopez
+mail: blopez@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=hdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Heather
+cn: Heather Davis
+uid: hdavis
+mail: hdavis@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=bwilliams466,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Betty
+cn: Betty Williams
+uid: bwilliams466
+mail: bwilliams466@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=gdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Greg
+cn: Greg Davis
+uid: gdavis
+mail: gdavis@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=mgonazles468,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Michael
+cn: Michael Gonazles
+uid: mgonazles468
+mail: mgonazles468@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=mlopez469,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Mary
+cn: Mary Lopez
+uid: mlopez469
+mail: mlopez469@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=eroberts470,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Eric
+cn: Eric Roberts
+uid: eroberts470
+mail: eroberts470@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=bsmith471,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Blake
+cn: Blake Smith
+uid: bsmith471
+mail: bsmith471@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=rwilliams472,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Robert
+cn: Robert Williams
+uid: rwilliams472
+mail: rwilliams472@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=jdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Jennifer
+cn: Jennifer Davis
+uid: jdavis
+mail: jdavis@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=egrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Erik
+cn: Erik Grady
+uid: egrady
+mail: egrady@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=dpeterson475,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Donna
+cn: Donna Peterson
+uid: dpeterson475
+mail: dpeterson475@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=lwilliams476,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Lisa
+cn: Lisa Williams
+uid: lwilliams476
+mail: lwilliams476@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=eroberts477,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Erik
+cn: Erik Roberts
+uid: eroberts477
+mail: eroberts477@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=pvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Paul
+cn: Paul Vales
+uid: pvales
+mail: pvales@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=jscott479,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Jim
+cn: Jim Scott
+uid: jscott479
+mail: jscott479@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=bdavis480,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Betty
+cn: Betty Davis
+uid: bdavis480
+mail: bdavis480@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jgrady481,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Jim
+cn: Jim Grady
+uid: jgrady481
+mail: jgrady481@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=nbrown482,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Nancy
+cn: Nancy Brown
+uid: nbrown482
+mail: nbrown482@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=blee483,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Betty
+cn: Betty Lee
+uid: blee483
+mail: blee483@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jclark484,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Jim
+cn: Jim Clark
+uid: jclark484
+mail: jclark484@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: David
+cn: David Brown
+uid: dbrown
+mail: dbrown@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=pgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Paul
+cn: Paul Gonazles
+uid: pgonazles
+mail: pgonazles@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=mwhite487,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Mark
+cn: Mark White
+uid: mwhite487
+mail: mwhite487@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=svales488,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Sarah
+cn: Sarah Vales
+uid: svales488
+mail: svales488@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=egasper489,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Eric
+cn: Eric Gasper
+uid: egasper489
+mail: egasper489@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=kdoe490,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Kim
+cn: Kim Doe
+uid: kdoe490
+mail: kdoe490@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bmorrison491,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Bill
+cn: Bill Morrison
+uid: bmorrison491
+mail: bmorrison491@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=lvales,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Lori
+cn: Lori Vales
+uid: lvales
+mail: lvales@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=hdavis493,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Heather
+cn: Heather Davis
+uid: hdavis493
+mail: hdavis493@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jthompson494,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: James
+cn: James Thompson
+uid: jthompson494
+mail: jthompson494@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=kdoe495,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Karl
+cn: Karl Doe
+uid: kdoe495
+mail: kdoe495@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kwilliams496,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Kim
+cn: Kim Williams
+uid: kwilliams496
+mail: kwilliams496@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=egasper497,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Erik
+cn: Erik Gasper
+uid: egasper497
+mail: egasper497@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=pvales498,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Paul
+cn: Paul Vales
+uid: pvales498
+mail: pvales498@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=sscott,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Sarah
+cn: Sarah Scott
+uid: sscott
+mail: sscott@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=tmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Thomas
+cn: Thomas Martinez
+uid: tmartinez
+mail: tmartinez@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mvales501,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Marie
+cn: Marie Vales
+uid: mvales501
+mail: mvales501@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=mhenderson502,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Mark
+cn: Mark Henderson
+uid: mhenderson502
+mail: mhenderson502@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=mdavis503,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Mark
+cn: Mark Davis
+uid: mdavis503
+mail: mdavis503@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=mdoe504,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Mary
+cn: Mary Doe
+uid: mdoe504
+mail: mdoe504@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=bgrady505,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Betty
+cn: Betty Grady
+uid: bgrady505
+mail: bgrady505@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=mmartinez506,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Michael
+cn: Michael Martinez
+uid: mmartinez506
+mail: mmartinez506@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=bwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Betty
+cn: Betty Walters
+uid: bwalters
+mail: bwalters@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=avales508,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Ann
+cn: Ann Vales
+uid: avales508
+mail: avales508@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=dlangenberg509,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: David
+cn: David Langenberg
+uid: dlangenberg509
+mail: dlangenberg509@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=tlopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Thomas
+cn: Thomas Lopez
+uid: tlopez
+mail: tlopez@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=lclark511,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Lisa
+cn: Lisa Clark
+uid: lclark511
+mail: lclark511@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=panderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Paul
+cn: Paul Anderson
+uid: panderson
+mail: panderson@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=bjohnson513,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Bill
+cn: Bill Johnson
+uid: bjohnson513
+mail: bjohnson513@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=wlopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: William
+cn: William Lopez
+uid: wlopez
+mail: wlopez@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=tmartinez515,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Thomas
+cn: Thomas Martinez
+uid: tmartinez515
+mail: tmartinez515@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=wclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: William
+cn: William Clark
+uid: wclark
+mail: wclark@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jwilliams517,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Jim
+cn: Jim Williams
+uid: jwilliams517
+mail: jwilliams517@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: staff
+
+dn: uid=hwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Heather
+cn: Heather Williams
+uid: hwilliams
+mail: hwilliams@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=llopez519,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Lori
+cn: Lori Lopez
+uid: llopez519
+mail: llopez519@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=klopez520,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Karoline
+cn: Karoline Lopez
+uid: klopez520
+mail: klopez520@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=tlee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Thomas
+cn: Thomas Lee
+uid: tlee
+mail: tlee@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=mscott522,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Mary
+cn: Mary Scott
+uid: mscott522
+mail: mscott522@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=danderson523,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: David
+cn: David Anderson
+uid: danderson523
+mail: danderson523@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jgonazles524,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Jim
+cn: Jim Gonazles
+uid: jgonazles524
+mail: jgonazles524@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=hgasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Heather
+cn: Heather Gasper
+uid: hgasper
+mail: hgasper@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=ehenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Eric
+cn: Eric Henderson
+uid: ehenderson
+mail: ehenderson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=bscott527,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Bill
+cn: Bill Scott
+uid: bscott527
+mail: bscott527@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=ewhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Eric
+cn: Eric White
+uid: ewhite
+mail: ewhite@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=sroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Sarah
+cn: Sarah Roberts
+uid: sroberts
+mail: sroberts@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=pbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Paul
+cn: Paul Butler
+uid: pbutler
+mail: pbutler@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=gdavis531,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Greg
+cn: Greg Davis
+uid: gdavis531
+mail: gdavis531@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=wjohnson532,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: William
+cn: William Johnson
+uid: wjohnson532
+mail: wjohnson532@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=escott533,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Eric
+cn: Eric Scott
+uid: escott533
+mail: escott533@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=kmartinez534,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Karl
+cn: Karl Martinez
+uid: kmartinez534
+mail: kmartinez534@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=kbrown535,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Kiersten
+cn: Kiersten Brown
+uid: kbrown535
+mail: kbrown535@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=jlangenberg536,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: John
+cn: John Langenberg
+uid: jlangenberg536
+mail: jlangenberg536@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=gdavis537,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Greg
+cn: Greg Davis
+uid: gdavis537
+mail: gdavis537@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=wdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: William
+cn: William Doe
+uid: wdoe
+mail: wdoe@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=kthompson539,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Kiersten
+cn: Kiersten Thompson
+uid: kthompson539
+mail: kthompson539@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=ldavis540,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Lisa
+cn: Lisa Davis
+uid: ldavis540
+mail: ldavis540@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=bmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Blake
+cn: Blake Martinez
+uid: bmartinez
+mail: bmartinez@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=lroberts542,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Lisa
+cn: Lisa Roberts
+uid: lroberts542
+mail: lroberts542@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=ksmith543,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Karl
+cn: Karl Smith
+uid: ksmith543
+mail: ksmith543@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: staff
+
+dn: uid=jclark544,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: John
+cn: John Clark
+uid: jclark544
+mail: jclark544@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jbutler545,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Jennifer
+cn: Jennifer Butler
+uid: jbutler545
+mail: jbutler545@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=jgrady546,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: John
+cn: John Grady
+uid: jgrady546
+mail: jgrady546@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=jlee547,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Jennifer
+cn: Jennifer Lee
+uid: jlee547
+mail: jlee547@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=csmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Colin
+cn: Colin Smith
+uid: csmith
+mail: csmith@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=tpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Thomas
+cn: Thomas Peterson
+uid: tpeterson
+mail: tpeterson@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mgonazles550,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Marie
+cn: Marie Gonazles
+uid: mgonazles550
+mail: mgonazles550@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bwhite551,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Bill
+cn: Bill White
+uid: bwhite551
+mail: bwhite551@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=nhenderson552,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Nancy
+cn: Nancy Henderson
+uid: nhenderson552
+mail: nhenderson552@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=blewis553,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Bill
+cn: Bill Lewis
+uid: blewis553
+mail: blewis553@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=mjohnson554,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Michael
+cn: Michael Johnson
+uid: mjohnson554
+mail: mjohnson554@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=ganderson555,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Greg
+cn: Greg Anderson
+uid: ganderson555
+mail: ganderson555@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=slewis556,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Sarah
+cn: Sarah Lewis
+uid: slewis556
+mail: slewis556@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=dvales557,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Donna
+cn: Donna Vales
+uid: dvales557
+mail: dvales557@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jlopez558,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: John
+cn: John Lopez
+uid: jlopez558
+mail: jlopez558@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=kmartinez559,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Karl
+cn: Karl Martinez
+uid: kmartinez559
+mail: kmartinez559@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=kthompson560,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Karl
+cn: Karl Thompson
+uid: kthompson560
+mail: kthompson560@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kroberts561,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Karoline
+cn: Karoline Roberts
+uid: kroberts561
+mail: kroberts561@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=mbrown562,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Mary
+cn: Mary Brown
+uid: mbrown562
+mail: mbrown562@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=blopez563,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Betty
+cn: Betty Lopez
+uid: blopez563
+mail: blopez563@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=jroberts564,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Jo
+cn: Jo Roberts
+uid: jroberts564
+mail: jroberts564@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=jlopez565,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Jennifer
+cn: Jennifer Lopez
+uid: jlopez565
+mail: jlopez565@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=bwalters566,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Blake
+cn: Blake Walters
+uid: bwalters566
+mail: bwalters566@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kvales567,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Karoline
+cn: Karoline Vales
+uid: kvales567
+mail: kvales567@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=mlopez568,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Michael
+cn: Michael Lopez
+uid: mlopez568
+mail: mlopez568@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=tmorrison569,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Thomas
+cn: Thomas Morrison
+uid: tmorrison569
+mail: tmorrison569@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=bdavis570,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Blake
+cn: Blake Davis
+uid: bdavis570
+mail: bdavis570@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=sdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Sarah
+cn: Sarah Davis
+uid: sdavis
+mail: sdavis@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=banderson572,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Blake
+cn: Blake Anderson
+uid: banderson572
+mail: banderson572@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=wanderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: William
+cn: William Anderson
+uid: wanderson
+mail: wanderson@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=bprice574,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Bill
+cn: Bill Price
+uid: bprice574
+mail: bprice574@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jbutler575,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Jennifer
+cn: Jennifer Butler
+uid: jbutler575
+mail: jbutler575@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=jscott576,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Jennifer
+cn: Jennifer Scott
+uid: jscott576
+mail: jscott576@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=ddoe577,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: David
+cn: David Doe
+uid: ddoe577
+mail: ddoe577@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=tdavis578,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Thomas
+cn: Thomas Davis
+uid: tdavis578
+mail: tdavis578@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=slangenberg579,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Sarah
+cn: Sarah Langenberg
+uid: slangenberg579
+mail: slangenberg579@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=bvales580,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Betty
+cn: Betty Vales
+uid: bvales580
+mail: bvales580@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=lpeterson581,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Lori
+cn: Lori Peterson
+uid: lpeterson581
+mail: lpeterson581@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=bmartinez582,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Blake
+cn: Blake Martinez
+uid: bmartinez582
+mail: bmartinez582@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=asmith583,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Ann
+cn: Ann Smith
+uid: asmith583
+mail: asmith583@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=aprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Ann
+cn: Ann Price
+uid: aprice
+mail: aprice@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=ehenderson585,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Eric
+cn: Eric Henderson
+uid: ehenderson585
+mail: ehenderson585@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=lmorrison586,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Lisa
+cn: Lisa Morrison
+uid: lmorrison586
+mail: lmorrison586@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=chenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Colin
+cn: Colin Henderson
+uid: chenderson
+mail: chenderson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=lbrown,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Lori
+cn: Lori Brown
+uid: lbrown
+mail: lbrown@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=psmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Paul
+cn: Paul Smith
+uid: psmith
+mail: psmith@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=klee590,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Karl
+cn: Karl Lee
+uid: klee590
+mail: klee590@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: faculty
+
+dn: uid=kdoe591,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Karl
+cn: Karl Doe
+uid: kdoe591
+mail: kdoe591@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=ldoe592,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Lisa
+cn: Lisa Doe
+uid: ldoe592
+mail: ldoe592@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=mvales593,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Marie
+cn: Marie Vales
+uid: mvales593
+mail: mvales593@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=ahenderson594,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Ann
+cn: Ann Henderson
+uid: ahenderson594
+mail: ahenderson594@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=aroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Ann
+cn: Ann Roberts
+uid: aroberts
+mail: aroberts@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: David
+cn: David Thompson
+uid: dthompson
+mail: dthompson@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=dbrown597,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Donna
+cn: Donna Brown
+uid: dbrown597
+mail: dbrown597@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=tmartinez598,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Thomas
+cn: Thomas Martinez
+uid: tmartinez598
+mail: tmartinez598@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=kbrown599,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Karl
+cn: Karl Brown
+uid: kbrown599
+mail: kbrown599@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=pclark600,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Paul
+cn: Paul Clark
+uid: pclark600
+mail: pclark600@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=mprice601,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Michael
+cn: Michael Price
+uid: mprice601
+mail: mprice601@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=lbutler602,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Lisa
+cn: Lisa Butler
+uid: lbutler602
+mail: lbutler602@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jhenderson603,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Jennifer
+cn: Jennifer Henderson
+uid: jhenderson603
+mail: jhenderson603@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kscott604,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Karoline
+cn: Karoline Scott
+uid: kscott604
+mail: kscott604@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=ddoe605,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: David
+cn: David Doe
+uid: ddoe605
+mail: ddoe605@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=djohnson606,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: David
+cn: David Johnson
+uid: djohnson606
+mail: djohnson606@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=pbutler607,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Paul
+cn: Paul Butler
+uid: pbutler607
+mail: pbutler607@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jbutler608,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Jennifer
+cn: Jennifer Butler
+uid: jbutler608
+mail: jbutler608@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=ksmith609,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Kim
+cn: Kim Smith
+uid: ksmith609
+mail: ksmith609@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jpeterson610,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: James
+cn: James Peterson
+uid: jpeterson610
+mail: jpeterson610@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=kbutler611,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Karl
+cn: Karl Butler
+uid: kbutler611
+mail: kbutler611@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=wwhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: William
+cn: William White
+uid: wwhite
+mail: wwhite@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=dpeterson613,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: David
+cn: David Peterson
+uid: dpeterson613
+mail: dpeterson613@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=klopez614,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Karl
+cn: Karl Lopez
+uid: klopez614
+mail: klopez614@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=tjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Thomas
+cn: Thomas Johnson
+uid: tjohnson
+mail: tjohnson@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=mlee616,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Mark
+cn: Mark Lee
+uid: mlee616
+mail: mlee616@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jprice617,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Jennifer
+cn: Jennifer Price
+uid: jprice617
+mail: jprice617@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=ghenderson618,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Greg
+cn: Greg Henderson
+uid: ghenderson618
+mail: ghenderson618@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=rwalters619,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Robert
+cn: Robert Walters
+uid: rwalters619
+mail: rwalters619@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bmorrison620,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Betty
+cn: Betty Morrison
+uid: bmorrison620
+mail: bmorrison620@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=landerson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Lisa
+cn: Lisa Anderson
+uid: landerson
+mail: landerson@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=landerson622,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Lori
+cn: Lori Anderson
+uid: landerson622
+mail: landerson622@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=pprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Paul
+cn: Paul Price
+uid: pprice
+mail: pprice@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=nsmith,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Nancy
+cn: Nancy Smith
+uid: nsmith
+mail: nsmith@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=jpeterson625,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: James
+cn: James Peterson
+uid: jpeterson625
+mail: jpeterson625@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=mlopez626,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Mary
+cn: Mary Lopez
+uid: mlopez626
+mail: mlopez626@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=dvales627,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Donna
+cn: Donna Vales
+uid: dvales627
+mail: dvales627@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=ethompson628,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Erik
+cn: Erik Thompson
+uid: ethompson628
+mail: ethompson628@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=rdoe629,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Robert
+cn: Robert Doe
+uid: rdoe629
+mail: rdoe629@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=cjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Colin
+cn: Colin Johnson
+uid: cjohnson
+mail: cjohnson@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mwilliams631,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Michael
+cn: Michael Williams
+uid: mwilliams631
+mail: mwilliams631@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jpeterson632,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: John
+cn: John Peterson
+uid: jpeterson632
+mail: jpeterson632@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=bgonazles633,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Bill
+cn: Bill Gonazles
+uid: bgonazles633
+mail: bgonazles633@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=danderson634,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: David
+cn: David Anderson
+uid: danderson634
+mail: danderson634@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=kwalters635,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Kim
+cn: Kim Walters
+uid: kwalters635
+mail: kwalters635@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=adoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Ann
+cn: Ann Doe
+uid: adoe
+mail: adoe@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=cdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Colin
+cn: Colin Doe
+uid: cdoe
+mail: cdoe@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=ddoe638,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: David
+cn: David Doe
+uid: ddoe638
+mail: ddoe638@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=edavis639,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Erik
+cn: Erik Davis
+uid: edavis639
+mail: edavis639@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=hwhite640,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Heather
+cn: Heather White
+uid: hwhite640
+mail: hwhite640@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dprice641,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: David
+cn: David Price
+uid: dprice641
+mail: dprice641@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=klopez642,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Kim
+cn: Kim Lopez
+uid: klopez642
+mail: klopez642@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=abrown643,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Ann
+cn: Ann Brown
+uid: abrown643
+mail: abrown643@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=mwhite644,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Mary
+cn: Mary White
+uid: mwhite644
+mail: mwhite644@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=kwhite645,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Kiersten
+cn: Kiersten White
+uid: kwhite645
+mail: kwhite645@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=edoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Erik
+cn: Erik Doe
+uid: edoe
+mail: edoe@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=mgonazles647,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Mark
+cn: Mark Gonazles
+uid: mgonazles647
+mail: mgonazles647@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=jhenderson648,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: James
+cn: James Henderson
+uid: jhenderson648
+mail: jhenderson648@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=bsmith649,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Bill
+cn: Bill Smith
+uid: bsmith649
+mail: bsmith649@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=lmorrison650,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Lisa
+cn: Lisa Morrison
+uid: lmorrison650
+mail: lmorrison650@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=llangenberg651,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Lori
+cn: Lori Langenberg
+uid: llangenberg651
+mail: llangenberg651@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=jwalters652,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Jim
+cn: Jim Walters
+uid: jwalters652
+mail: jwalters652@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=tjohnson653,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Thomas
+cn: Thomas Johnson
+uid: tjohnson653
+mail: tjohnson653@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=jwalters654,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Jo
+cn: Jo Walters
+uid: jwalters654
+mail: jwalters654@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=bmorrison655,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Betty
+cn: Betty Morrison
+uid: bmorrison655
+mail: bmorrison655@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=mclark656,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Michael
+cn: Michael Clark
+uid: mclark656
+mail: mclark656@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=ewilliams657,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Erik
+cn: Erik Williams
+uid: ewilliams657
+mail: ewilliams657@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jlewis658,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: John
+cn: John Lewis
+uid: jlewis658
+mail: jlewis658@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=kgrady659,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Kiersten
+cn: Kiersten Grady
+uid: kgrady659
+mail: kgrady659@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=wmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: William
+cn: William Martinez
+uid: wmartinez
+mail: wmartinez@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=pwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Paul
+cn: Paul Williams
+uid: pwilliams
+mail: pwilliams@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=kjohnson662,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Kim
+cn: Kim Johnson
+uid: kjohnson662
+mail: kjohnson662@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=smartinez663,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Sarah
+cn: Sarah Martinez
+uid: smartinez663
+mail: smartinez663@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=mvales664,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Marie
+cn: Marie Vales
+uid: mvales664
+mail: mvales664@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=klangenberg665,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Karl
+cn: Karl Langenberg
+uid: klangenberg665
+mail: klangenberg665@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=msmith666,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Marie
+cn: Marie Smith
+uid: msmith666
+mail: msmith666@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=mvales667,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Mark
+cn: Mark Vales
+uid: mvales667
+mail: mvales667@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=jwalters668,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: James
+cn: James Walters
+uid: jwalters668
+mail: jwalters668@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=pgonazles669,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Paul
+cn: Paul Gonazles
+uid: pgonazles669
+mail: pgonazles669@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=dvales670,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Donna
+cn: Donna Vales
+uid: dvales670
+mail: dvales670@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=dclark671,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: David
+cn: David Clark
+uid: dclark671
+mail: dclark671@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=bdoe672,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Betty
+cn: Betty Doe
+uid: bdoe672
+mail: bdoe672@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=mbrown673,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Mark
+cn: Mark Brown
+uid: mbrown673
+mail: mbrown673@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=kdoe674,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Karoline
+cn: Karoline Doe
+uid: kdoe674
+mail: kdoe674@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=wthompson675,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: William
+cn: William Thompson
+uid: wthompson675
+mail: wthompson675@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=dmorrison676,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: David
+cn: David Morrison
+uid: dmorrison676
+mail: dmorrison676@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=edoe677,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Erik
+cn: Erik Doe
+uid: edoe677
+mail: edoe677@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=nlangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Nancy
+cn: Nancy Langenberg
+uid: nlangenberg
+mail: nlangenberg@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=kpeterson679,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Karl
+cn: Karl Peterson
+uid: kpeterson679
+mail: kpeterson679@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=hgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Heather
+cn: Heather Gonazles
+uid: hgonazles
+mail: hgonazles@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=droberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Donna
+cn: Donna Roberts
+uid: droberts
+mail: droberts@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=dgonazles682,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: David
+cn: David Gonazles
+uid: dgonazles682
+mail: dgonazles682@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=mmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Mark
+cn: Mark Morrison
+uid: mmorrison
+mail: mmorrison@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=cmorrison684,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Colin
+cn: Colin Morrison
+uid: cmorrison684
+mail: cmorrison684@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jlewis685,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Jim
+cn: Jim Lewis
+uid: jlewis685
+mail: jlewis685@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=jjohnson686,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Jennifer
+cn: Jennifer Johnson
+uid: jjohnson686
+mail: jjohnson686@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=elee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Erik
+cn: Erik Lee
+uid: elee
+mail: elee@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=ddoe688,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Donna
+cn: Donna Doe
+uid: ddoe688
+mail: ddoe688@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=droberts689,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Donna
+cn: Donna Roberts
+uid: droberts689
+mail: droberts689@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mgonazles690,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Mary
+cn: Mary Gonazles
+uid: mgonazles690
+mail: mgonazles690@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=awilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Ann
+cn: Ann Williams
+uid: awilliams
+mail: awilliams@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=gwalters,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Greg
+cn: Greg Walters
+uid: gwalters
+mail: gwalters@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=wgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: William
+cn: William Gonazles
+uid: wgonazles
+mail: wgonazles@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=mlewis694,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Michael
+cn: Michael Lewis
+uid: mlewis694
+mail: mlewis694@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=avales695,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Ann
+cn: Ann Vales
+uid: avales695
+mail: avales695@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=mjohnson696,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Michael
+cn: Michael Johnson
+uid: mjohnson696
+mail: mjohnson696@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=kanderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Kim
+cn: Kim Anderson
+uid: kanderson
+mail: kanderson@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=troberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Thomas
+cn: Thomas Roberts
+uid: troberts
+mail: troberts@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=dlewis699,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: David
+cn: David Lewis
+uid: dlewis699
+mail: dlewis699@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=dwalters700,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Donna
+cn: Donna Walters
+uid: dwalters700
+mail: dwalters700@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=kbrown701,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Kim
+cn: Kim Brown
+uid: kbrown701
+mail: kbrown701@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=ewhite702,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Erik
+cn: Erik White
+uid: ewhite702
+mail: ewhite702@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=lwalters703,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Lori
+cn: Lori Walters
+uid: lwalters703
+mail: lwalters703@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=alangenberg704,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Ann
+cn: Ann Langenberg
+uid: alangenberg704
+mail: alangenberg704@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=bbrown705,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Bill
+cn: Bill Brown
+uid: bbrown705
+mail: bbrown705@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=blangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Blake
+cn: Blake Langenberg
+uid: blangenberg
+mail: blangenberg@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=mlewis707,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Michael
+cn: Michael Lewis
+uid: mlewis707
+mail: mlewis707@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=ksmith708,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Karl
+cn: Karl Smith
+uid: ksmith708
+mail: ksmith708@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=clopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Colin
+cn: Colin Lopez
+uid: clopez
+mail: clopez@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=mclark710,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Mark
+cn: Mark Clark
+uid: mclark710
+mail: mclark710@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=tprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Thomas
+cn: Thomas Price
+uid: tprice
+mail: tprice@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=klewis712,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Karl
+cn: Karl Lewis
+uid: klewis712
+mail: klewis712@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=mbutler713,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Marie
+cn: Marie Butler
+uid: mbutler713
+mail: mbutler713@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=mmorrison714,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Mark
+cn: Mark Morrison
+uid: mmorrison714
+mail: mmorrison714@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=gsmith715,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Greg
+cn: Greg Smith
+uid: gsmith715
+mail: gsmith715@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=randerson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Robert
+cn: Robert Anderson
+uid: randerson
+mail: randerson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=klangenberg717,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Kiersten
+cn: Kiersten Langenberg
+uid: klangenberg717
+mail: klangenberg717@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mlangenberg718,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Mary
+cn: Mary Langenberg
+uid: mlangenberg718
+mail: mlangenberg718@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=plee719,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Paul
+cn: Paul Lee
+uid: plee719
+mail: plee719@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dclark720,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Donna
+cn: Donna Clark
+uid: dclark720
+mail: dclark720@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=bbrown721,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Blake
+cn: Blake Brown
+uid: bbrown721
+mail: bbrown721@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=bvales722,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Blake
+cn: Blake Vales
+uid: bvales722
+mail: bvales722@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=emartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Erik
+cn: Erik Martinez
+uid: emartinez
+mail: emartinez@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kgonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Karl
+cn: Karl Gonazles
+uid: kgonazles
+mail: kgonazles@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=lvales725,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Lisa
+cn: Lisa Vales
+uid: lvales725
+mail: lvales725@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=kgrady726,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Karl
+cn: Karl Grady
+uid: kgrady726
+mail: kgrady726@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=aanderson727,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Ann
+cn: Ann Anderson
+uid: aanderson727
+mail: aanderson727@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=awhite728,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Ann
+cn: Ann White
+uid: awhite728
+mail: awhite728@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=lwilliams729,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Lori
+cn: Lori Williams
+uid: lwilliams729
+mail: lwilliams729@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=bclark730,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Bill
+cn: Bill Clark
+uid: bclark730
+mail: bclark730@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=dwilliams731,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: David
+cn: David Williams
+uid: dwilliams731
+mail: dwilliams731@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=dwilliams732,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: David
+cn: David Williams
+uid: dwilliams732
+mail: dwilliams732@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dlewis733,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: David
+cn: David Lewis
+uid: dlewis733
+mail: dlewis733@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=ndoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Nancy
+cn: Nancy Doe
+uid: ndoe
+mail: ndoe@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=jjohnson735,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Jennifer
+cn: Jennifer Johnson
+uid: jjohnson735
+mail: jjohnson735@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jgonazles736,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Jennifer
+cn: Jennifer Gonazles
+uid: jgonazles736
+mail: jgonazles736@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=lprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Lisa
+cn: Lisa Price
+uid: lprice
+mail: lprice@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=rdoe738,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Robert
+cn: Robert Doe
+uid: rdoe738
+mail: rdoe738@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dbrown739,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: David
+cn: David Brown
+uid: dbrown739
+mail: dbrown739@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=handerson740,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Heather
+cn: Heather Anderson
+uid: handerson740
+mail: handerson740@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=jmartinez741,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Jo
+cn: Jo Martinez
+uid: jmartinez741
+mail: jmartinez741@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=agonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Ann
+cn: Ann Gonazles
+uid: agonazles
+mail: agonazles@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=edavis743,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Erik
+cn: Erik Davis
+uid: edavis743
+mail: edavis743@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jpeterson744,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: James
+cn: James Peterson
+uid: jpeterson744
+mail: jpeterson744@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bprice745,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Betty
+cn: Betty Price
+uid: bprice745
+mail: bprice745@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jwilliams746,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Jim
+cn: Jim Williams
+uid: jwilliams746
+mail: jwilliams746@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=rroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Robert
+cn: Robert Roberts
+uid: rroberts
+mail: rroberts@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=kroberts748,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Karl
+cn: Karl Roberts
+uid: kroberts748
+mail: kroberts748@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=janderson749,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Jim
+cn: Jim Anderson
+uid: janderson749
+mail: janderson749@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=broberts750,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Bill
+cn: Bill Roberts
+uid: broberts750
+mail: broberts750@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=elopez751,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Erik
+cn: Erik Lopez
+uid: elopez751
+mail: elopez751@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=manderson752,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Michael
+cn: Michael Anderson
+uid: manderson752
+mail: manderson752@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kbutler753,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Karoline
+cn: Karoline Butler
+uid: kbutler753
+mail: kbutler753@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=gclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Greg
+cn: Greg Clark
+uid: gclark
+mail: gclark@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jwilliams755,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Jo
+cn: Jo Williams
+uid: jwilliams755
+mail: jwilliams755@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=llopez756,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Lori
+cn: Lori Lopez
+uid: llopez756
+mail: llopez756@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=khenderson757,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Kim
+cn: Kim Henderson
+uid: khenderson757
+mail: khenderson757@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=cjohnson758,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Colin
+cn: Colin Johnson
+uid: cjohnson758
+mail: cjohnson758@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=kgasper759,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Kim
+cn: Kim Gasper
+uid: kgasper759
+mail: kgasper759@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=jlewis760,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: James
+cn: James Lewis
+uid: jlewis760
+mail: jlewis760@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=llee761,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Lori
+cn: Lori Lee
+uid: llee761
+mail: llee761@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=rvales762,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Robert
+cn: Robert Vales
+uid: rvales762
+mail: rvales762@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=jgasper763,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: John
+cn: John Gasper
+uid: jgasper763
+mail: jgasper763@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=mprice764,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Marie
+cn: Marie Price
+uid: mprice764
+mail: mprice764@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=asmith765,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Ann
+cn: Ann Smith
+uid: asmith765
+mail: asmith765@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=kanderson766,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Kiersten
+cn: Kiersten Anderson
+uid: kanderson766
+mail: kanderson766@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=tbrown767,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Thomas
+cn: Thomas Brown
+uid: tbrown767
+mail: tbrown767@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=kvales768,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Karoline
+cn: Karoline Vales
+uid: kvales768
+mail: kvales768@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jhenderson769,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Jo
+cn: Jo Henderson
+uid: jhenderson769
+mail: jhenderson769@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jjohnson770,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: James
+cn: James Johnson
+uid: jjohnson770
+mail: jjohnson770@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=wroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: William
+cn: William Roberts
+uid: wroberts
+mail: wroberts@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=cpeterson772,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Colin
+cn: Colin Peterson
+uid: cpeterson772
+mail: cpeterson772@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=tdoe,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Thomas
+cn: Thomas Doe
+uid: tdoe
+mail: tdoe@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=hroberts,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Heather
+cn: Heather Roberts
+uid: hroberts
+mail: hroberts@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=mprice775,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Michael
+cn: Michael Price
+uid: mprice775
+mail: mprice775@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=lroberts776,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Lori
+cn: Lori Roberts
+uid: lroberts776
+mail: lroberts776@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=mdavis777,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Marie
+cn: Marie Davis
+uid: mdavis777
+mail: mdavis777@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=kgonazles778,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Karoline
+cn: Karoline Gonazles
+uid: kgonazles778
+mail: kgonazles778@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=mvales779,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Mary
+cn: Mary Vales
+uid: mvales779
+mail: mvales779@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=jdoe780,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Jo
+cn: Jo Doe
+uid: jdoe780
+mail: jdoe780@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=dmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: David
+cn: David Martinez
+uid: dmartinez
+mail: dmartinez@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=dvales782,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: David
+cn: David Vales
+uid: dvales782
+mail: dvales782@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=tprice783,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Thomas
+cn: Thomas Price
+uid: tprice783
+mail: tprice783@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dmorrison784,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Donna
+cn: Donna Morrison
+uid: dmorrison784
+mail: dmorrison784@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=dgonazles785,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: David
+cn: David Gonazles
+uid: dgonazles785
+mail: dgonazles785@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=swalters786,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Sarah
+cn: Sarah Walters
+uid: swalters786
+mail: swalters786@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=hpeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Heather
+cn: Heather Peterson
+uid: hpeterson
+mail: hpeterson@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=jlee788,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Jennifer
+cn: Jennifer Lee
+uid: jlee788
+mail: jlee788@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=nlopez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Nancy
+cn: Nancy Lopez
+uid: nlopez
+mail: nlopez@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=kwhite790,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Kim
+cn: Kim White
+uid: kwhite790
+mail: kwhite790@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=nbutler,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Nancy
+cn: Nancy Butler
+uid: nbutler
+mail: nbutler@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=jroberts792,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Jo
+cn: Jo Roberts
+uid: jroberts792
+mail: jroberts792@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=hclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Heather
+cn: Heather Clark
+uid: hclark
+mail: hclark@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=nclark794,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Nancy
+cn: Nancy Clark
+uid: nclark794
+mail: nclark794@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=dpeterson795,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: David
+cn: David Peterson
+uid: dpeterson795
+mail: dpeterson795@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=hbrown796,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Heather
+cn: Heather Brown
+uid: hbrown796
+mail: hbrown796@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=hlewis797,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Heather
+cn: Heather Lewis
+uid: hlewis797
+mail: hlewis797@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=blewis798,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Betty
+cn: Betty Lewis
+uid: blewis798
+mail: blewis798@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=sroberts799,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Sarah
+cn: Sarah Roberts
+uid: sroberts799
+mail: sroberts799@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=clewis800,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Colin
+cn: Colin Lewis
+uid: clewis800
+mail: clewis800@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jclark801,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Jim
+cn: Jim Clark
+uid: jclark801
+mail: jclark801@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=jvales802,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Jim
+cn: Jim Vales
+uid: jvales802
+mail: jvales802@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jlewis803,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: John
+cn: John Lewis
+uid: jlewis803
+mail: jlewis803@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=jgasper804,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: John
+cn: John Gasper
+uid: jgasper804
+mail: jgasper804@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=rdavis805,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Robert
+cn: Robert Davis
+uid: rdavis805
+mail: rdavis805@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=dwilliams806,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: David
+cn: David Williams
+uid: dwilliams806
+mail: dwilliams806@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jscott807,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Jennifer
+cn: Jennifer Scott
+uid: jscott807
+mail: jscott807@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=wwilliams808,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: William
+cn: William Williams
+uid: wwilliams808
+mail: wwilliams808@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: faculty
+
+dn: uid=edavis809,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Eric
+cn: Eric Davis
+uid: edavis809
+mail: edavis809@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=mprice810,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Marie
+cn: Marie Price
+uid: mprice810
+mail: mprice810@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bhenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Betty
+cn: Betty Henderson
+uid: bhenderson
+mail: bhenderson@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: alum
+
+dn: uid=hhenderson812,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Heather
+cn: Heather Henderson
+uid: hhenderson812
+mail: hhenderson812@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=kscott813,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Karl
+cn: Karl Scott
+uid: kscott813
+mail: kscott813@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=ddoe814,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: David
+cn: David Doe
+uid: ddoe814
+mail: ddoe814@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=ewilliams815,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Erik
+cn: Erik Williams
+uid: ewilliams815
+mail: ewilliams815@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jsmith816,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Jo
+cn: Jo Smith
+uid: jsmith816
+mail: jsmith816@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=lvales817,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Lisa
+cn: Lisa Vales
+uid: lvales817
+mail: lvales817@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=lpeterson818,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Lori
+cn: Lori Peterson
+uid: lpeterson818
+mail: lpeterson818@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=dgasper,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: David
+cn: David Gasper
+uid: dgasper
+mail: dgasper@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=nlangenberg820,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Nancy
+cn: Nancy Langenberg
+uid: nlangenberg820
+mail: nlangenberg820@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=jhenderson821,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Jo
+cn: Jo Henderson
+uid: jhenderson821
+mail: jhenderson821@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=ddavis822,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: David
+cn: David Davis
+uid: ddavis822
+mail: ddavis822@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=kgasper823,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Karl
+cn: Karl Gasper
+uid: kgasper823
+mail: kgasper823@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: member
+
+dn: uid=jprice824,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: John
+cn: John Price
+uid: jprice824
+mail: jprice824@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=aclark,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Ann
+cn: Ann Clark
+uid: aclark
+mail: aclark@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=jclark826,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Jennifer
+cn: Jennifer Clark
+uid: jclark826
+mail: jclark826@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=lmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Lori
+cn: Lori Martinez
+uid: lmartinez
+mail: lmartinez@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jpeterson828,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Jim
+cn: Jim Peterson
+uid: jpeterson828
+mail: jpeterson828@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jdoe829,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Jennifer
+cn: Jennifer Doe
+uid: jdoe829
+mail: jdoe829@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=nmorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Nancy
+cn: Nancy Morrison
+uid: nmorrison
+mail: nmorrison@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=ehenderson831,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Eric
+cn: Eric Henderson
+uid: ehenderson831
+mail: ehenderson831@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=kwhite832,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Kiersten
+cn: Kiersten White
+uid: kwhite832
+mail: kwhite832@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=dhenderson833,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Donna
+cn: Donna Henderson
+uid: dhenderson833
+mail: dhenderson833@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=dbrown834,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Donna
+cn: Donna Brown
+uid: dbrown834
+mail: dbrown834@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=manderson835,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Marie
+cn: Marie Anderson
+uid: manderson835
+mail: manderson835@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=ggasper836,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Greg
+cn: Greg Gasper
+uid: ggasper836
+mail: ggasper836@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=mlewis837,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Marie
+cn: Marie Lewis
+uid: mlewis837
+mail: mlewis837@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: alum
+
+dn: uid=kclark838,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Karl
+cn: Karl Clark
+uid: kclark838
+mail: kclark838@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dclark839,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: David
+cn: David Clark
+uid: dclark839
+mail: dclark839@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=blewis840,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Blake
+cn: Blake Lewis
+uid: blewis840
+mail: blewis840@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=wlewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: William
+cn: William Lewis
+uid: wlewis
+mail: wlewis@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: student
+
+dn: uid=jbutler842,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: John
+cn: John Butler
+uid: jbutler842
+mail: jbutler842@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bbutler843,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Betty
+cn: Betty Butler
+uid: bbutler843
+mail: bbutler843@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=gthompson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Greg
+cn: Greg Thompson
+uid: gthompson
+mail: gthompson@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=glangenberg,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Greg
+cn: Greg Langenberg
+uid: glangenberg
+mail: glangenberg@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=ajohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Ann
+cn: Ann Johnson
+uid: ajohnson
+mail: ajohnson@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=awhite847,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Ann
+cn: Ann White
+uid: awhite847
+mail: awhite847@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dhenderson848,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: David
+cn: David Henderson
+uid: dhenderson848
+mail: dhenderson848@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=mwilliams849,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Mark
+cn: Mark Williams
+uid: mwilliams849
+mail: mwilliams849@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=nprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Nancy
+cn: Nancy Price
+uid: nprice
+mail: nprice@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=dthompson851,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Donna
+cn: Donna Thompson
+uid: dthompson851
+mail: dthompson851@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=ebutler852,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Erik
+cn: Erik Butler
+uid: ebutler852
+mail: ebutler852@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=kdavis853,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Kim
+cn: Kim Davis
+uid: kdavis853
+mail: kdavis853@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=tgasper854,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Thomas
+cn: Thomas Gasper
+uid: tgasper854
+mail: tgasper854@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=alangenberg855,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Ann
+cn: Ann Langenberg
+uid: alangenberg855
+mail: alangenberg855@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kclark856,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Kim
+cn: Kim Clark
+uid: kclark856
+mail: kclark856@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=wdavis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: William
+cn: William Davis
+uid: wdavis
+mail: wdavis@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=kwalters858,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Karoline
+cn: Karoline Walters
+uid: kwalters858
+mail: kwalters858@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=eprice859,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Erik
+cn: Erik Price
+uid: eprice859
+mail: eprice859@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=slee860,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Sarah
+cn: Sarah Lee
+uid: slee860
+mail: slee860@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jwalters861,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: James
+cn: James Walters
+uid: jwalters861
+mail: jwalters861@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=rprice862,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Robert
+cn: Robert Price
+uid: rprice862
+mail: rprice862@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=tmartinez863,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Thomas
+cn: Thomas Martinez
+uid: tmartinez863
+mail: tmartinez863@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=mclark864,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Mary
+cn: Mary Clark
+uid: mclark864
+mail: mclark864@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=lwalters865,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Lisa
+cn: Lisa Walters
+uid: lwalters865
+mail: lwalters865@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=handerson866,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Heather
+cn: Heather Anderson
+uid: handerson866
+mail: handerson866@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=dhenderson867,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: David
+cn: David Henderson
+uid: dhenderson867
+mail: dhenderson867@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=ldoe868,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Lisa
+cn: Lisa Doe
+uid: ldoe868
+mail: ldoe868@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=ggonazles869,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Greg
+cn: Greg Gonazles
+uid: ggonazles869
+mail: ggonazles869@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=kanderson870,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Karoline
+cn: Karoline Anderson
+uid: kanderson870
+mail: kanderson870@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=ajohnson871,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Ann
+cn: Ann Johnson
+uid: ajohnson871
+mail: ajohnson871@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=bgasper872,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Betty
+cn: Betty Gasper
+uid: bgasper872
+mail: bgasper872@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=jlee873,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: John
+cn: John Lee
+uid: jlee873
+mail: jlee873@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=khenderson874,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Karoline
+cn: Karoline Henderson
+uid: khenderson874
+mail: khenderson874@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jwilliams875,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: John
+cn: John Williams
+uid: jwilliams875
+mail: jwilliams875@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=nwilliams,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Nancy
+cn: Nancy Williams
+uid: nwilliams
+mail: nwilliams@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kbrown877,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Karoline
+cn: Karoline Brown
+uid: kbrown877
+mail: kbrown877@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=bthompson878,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Blake
+cn: Blake Thompson
+uid: bthompson878
+mail: bthompson878@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=rdavis879,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Robert
+cn: Robert Davis
+uid: rdavis879
+mail: rdavis879@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: staff
+
+dn: uid=gthompson880,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Thompson
+givenName: Greg
+cn: Greg Thompson
+uid: gthompson880
+mail: gthompson880@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bpeterson881,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Blake
+cn: Blake Peterson
+uid: bpeterson881
+mail: bpeterson881@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=mbrown882,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Marie
+cn: Marie Brown
+uid: mbrown882
+mail: mbrown882@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=jmartinez883,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: James
+cn: James Martinez
+uid: jmartinez883
+mail: jmartinez883@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=hwhite884,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Heather
+cn: Heather White
+uid: hwhite884
+mail: hwhite884@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=lhenderson885,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Lisa
+cn: Lisa Henderson
+uid: lhenderson885
+mail: lhenderson885@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=thenderson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Thomas
+cn: Thomas Henderson
+uid: thenderson
+mail: thenderson@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=sdavis887,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Sarah
+cn: Sarah Davis
+uid: sdavis887
+mail: sdavis887@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=dclark888,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: David
+cn: David Clark
+uid: dclark888
+mail: dclark888@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=dpeterson889,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: David
+cn: David Peterson
+uid: dpeterson889
+mail: dpeterson889@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=jbutler890,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: James
+cn: James Butler
+uid: jbutler890
+mail: jbutler890@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=ksmith891,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Kiersten
+cn: Kiersten Smith
+uid: ksmith891
+mail: ksmith891@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: alum
+
+dn: uid=rlopez892,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Robert
+cn: Robert Lopez
+uid: rlopez892
+mail: rlopez892@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=ksmith893,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Kiersten
+cn: Kiersten Smith
+uid: ksmith893
+mail: ksmith893@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=jdavis894,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: John
+cn: John Davis
+uid: jdavis894
+mail: jdavis894@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=ddoe895,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Donna
+cn: Donna Doe
+uid: ddoe895
+mail: ddoe895@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=msmith896,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Michael
+cn: Michael Smith
+uid: msmith896
+mail: msmith896@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=mdavis897,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Michael
+cn: Michael Davis
+uid: mdavis897
+mail: mdavis897@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mmartinez898,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Marie
+cn: Marie Martinez
+uid: mmartinez898
+mail: mmartinez898@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=jlangenberg899,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Jennifer
+cn: Jennifer Langenberg
+uid: jlangenberg899
+mail: jlangenberg899@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=cdavis900,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Colin
+cn: Colin Davis
+uid: cdavis900
+mail: cdavis900@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=jmartinez901,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: John
+cn: John Martinez
+uid: jmartinez901
+mail: jmartinez901@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=tmartinez902,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Thomas
+cn: Thomas Martinez
+uid: tmartinez902
+mail: tmartinez902@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: staff
+
+dn: uid=bprice903,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Bill
+cn: Bill Price
+uid: bprice903
+mail: bprice903@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=jdavis904,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Jo
+cn: Jo Davis
+uid: jdavis904
+mail: jdavis904@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=jmartinez905,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Jo
+cn: Jo Martinez
+uid: jmartinez905
+mail: jmartinez905@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=landerson906,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Lori
+cn: Lori Anderson
+uid: landerson906
+mail: landerson906@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=rlee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Robert
+cn: Robert Lee
+uid: rlee
+mail: rlee@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=dlewis908,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: David
+cn: David Lewis
+uid: dlewis908
+mail: dlewis908@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=jlopez909,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Jo
+cn: Jo Lopez
+uid: jlopez909
+mail: jlopez909@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=kgasper910,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Karoline
+cn: Karoline Gasper
+uid: kgasper910
+mail: kgasper910@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=mscott911,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: Michael
+cn: Michael Scott
+uid: mscott911
+mail: mscott911@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=smorrison,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Sarah
+cn: Sarah Morrison
+uid: smorrison
+mail: smorrison@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kjohnson913,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Karl
+cn: Karl Johnson
+uid: kjohnson913
+mail: kjohnson913@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bwhite914,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Bill
+cn: Bill White
+uid: bwhite914
+mail: bwhite914@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=kgonazles915,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Kim
+cn: Kim Gonazles
+uid: kgonazles915
+mail: kgonazles915@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=jgasper916,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Jennifer
+cn: Jennifer Gasper
+uid: jgasper916
+mail: jgasper916@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=jlewis917,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: James
+cn: James Lewis
+uid: jlewis917
+mail: jlewis917@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=mjohnson918,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Mark
+cn: Mark Johnson
+uid: mjohnson918
+mail: mjohnson918@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=ddavis919,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: David
+cn: David Davis
+uid: ddavis919
+mail: ddavis919@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=dvales920,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Donna
+cn: Donna Vales
+uid: dvales920
+mail: dvales920@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=mlangenberg921,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: Mary
+cn: Mary Langenberg
+uid: mlangenberg921
+mail: mlangenberg921@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: member
+
+dn: uid=jvales922,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Jim
+cn: Jim Vales
+uid: jvales922
+mail: jvales922@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=mgrady923,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Mary
+cn: Mary Grady
+uid: mgrady923
+mail: mgrady923@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=hsmith924,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Heather
+cn: Heather Smith
+uid: hsmith924
+mail: hsmith924@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=lgrady925,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Lori
+cn: Lori Grady
+uid: lgrady925
+mail: lgrady925@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=gbutler926,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Greg
+cn: Greg Butler
+uid: gbutler926
+mail: gbutler926@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=jwhite927,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Jennifer
+cn: Jennifer White
+uid: jwhite927
+mail: jwhite927@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bpeterson928,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Betty
+cn: Betty Peterson
+uid: bpeterson928
+mail: bpeterson928@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=nlewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Nancy
+cn: Nancy Lewis
+uid: nlewis
+mail: nlewis@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=jroberts930,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Jennifer
+cn: Jennifer Roberts
+uid: jroberts930
+mail: jroberts930@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=kpeterson931,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Kiersten
+cn: Kiersten Peterson
+uid: kpeterson931
+mail: kpeterson931@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: alum
+
+dn: uid=lhenderson932,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Lori
+cn: Lori Henderson
+uid: lhenderson932
+mail: lhenderson932@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jlewis933,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: James
+cn: James Lewis
+uid: jlewis933
+mail: jlewis933@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=dlangenberg934,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Langenberg
+givenName: David
+cn: David Langenberg
+uid: dlangenberg934
+mail: dlangenberg934@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=kbutler935,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Kim
+cn: Kim Butler
+uid: kbutler935
+mail: kbutler935@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=rjohnson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Robert
+cn: Robert Johnson
+uid: rjohnson
+mail: rjohnson@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=jwalters937,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Jennifer
+cn: Jennifer Walters
+uid: jwalters937
+mail: jwalters937@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=kgonazles938,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Kiersten
+cn: Kiersten Gonazles
+uid: kgonazles938
+mail: kgonazles938@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mgasper939,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Marie
+cn: Marie Gasper
+uid: mgasper939
+mail: mgasper939@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: student
+
+dn: uid=klopez940,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Kim
+cn: Kim Lopez
+uid: klopez940
+mail: klopez940@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: staff
+
+dn: uid=jwhite941,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Jennifer
+cn: Jennifer White
+uid: jwhite941
+mail: jwhite941@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=jgonazles942,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: James
+cn: James Gonazles
+uid: jgonazles942
+mail: jgonazles942@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=khenderson943,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Kim
+cn: Kim Henderson
+uid: khenderson943
+mail: khenderson943@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=mhenderson944,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Mark
+cn: Mark Henderson
+uid: mhenderson944
+mail: mhenderson944@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=cprice,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Colin
+cn: Colin Price
+uid: cprice
+mail: cprice@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=janderson946,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Jim
+cn: Jim Anderson
+uid: janderson946
+mail: janderson946@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=ejohnson947,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Erik
+cn: Erik Johnson
+uid: ejohnson947
+mail: ejohnson947@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=janderson948,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: John
+cn: John Anderson
+uid: janderson948
+mail: janderson948@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=lhenderson949,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Lisa
+cn: Lisa Henderson
+uid: lhenderson949
+mail: lhenderson949@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=mlee950,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Mary
+cn: Mary Lee
+uid: mlee950
+mail: mlee950@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=ewilliams951,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Eric
+cn: Eric Williams
+uid: ewilliams951
+mail: ewilliams951@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: staff
+
+dn: uid=plewis,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lewis
+givenName: Paul
+cn: Paul Lewis
+uid: plewis
+mail: plewis@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=mclark953,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Marie
+cn: Marie Clark
+uid: mclark953
+mail: mclark953@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: community
+
+dn: uid=dwilliams954,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: David
+cn: David Williams
+uid: dwilliams954
+mail: dwilliams954@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: student
+
+dn: uid=rroberts955,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Roberts
+givenName: Robert
+cn: Robert Roberts
+uid: rroberts955
+mail: rroberts955@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=jsmith956,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Smith
+givenName: Jo
+cn: Jo Smith
+uid: jsmith956
+mail: jsmith956@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=jwhite957,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Jennifer
+cn: Jennifer White
+uid: jwhite957
+mail: jwhite957@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=bwalters958,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Bill
+cn: Bill Walters
+uid: bwalters958
+mail: bwalters958@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=mhenderson959,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Henderson
+givenName: Mark
+cn: Mark Henderson
+uid: mhenderson959
+mail: mhenderson959@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=mgasper960,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Mark
+cn: Mark Gasper
+uid: mgasper960
+mail: mgasper960@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=ppeterson,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Paul
+cn: Paul Peterson
+uid: ppeterson
+mail: ppeterson@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=jscott962,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Scott
+givenName: John
+cn: John Scott
+uid: jscott962
+mail: jscott962@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=hdavis963,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: Heather
+cn: Heather Davis
+uid: hdavis963
+mail: hdavis963@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=pwhite,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: White
+givenName: Paul
+cn: Paul White
+uid: pwhite
+mail: pwhite@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=dwalters965,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: David
+cn: David Walters
+uid: dwalters965
+mail: dwalters965@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=blopez966,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lopez
+givenName: Blake
+cn: Blake Lopez
+uid: blopez966
+mail: blopez966@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=bgrady967,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Blake
+cn: Blake Grady
+uid: bgrady967
+mail: bgrady967@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=bclark968,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Clark
+givenName: Bill
+cn: Bill Clark
+uid: bclark968
+mail: bclark968@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: member
+
+dn: uid=lprice969,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Lisa
+cn: Lisa Price
+uid: lprice969
+mail: lprice969@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: member
+
+dn: uid=wpeterson970,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: William
+cn: William Peterson
+uid: wpeterson970
+mail: wpeterson970@unicon.local
+businessCategory:Law
+userPassword: password
+eduPersonAffiliation: student
+
+dn: uid=banderson971,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Anderson
+givenName: Betty
+cn: Betty Anderson
+uid: banderson971
+mail: banderson971@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: alum
+
+dn: uid=hprice972,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Heather
+cn: Heather Price
+uid: hprice972
+mail: hprice972@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: community
+
+dn: uid=mpeterson973,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Marie
+cn: Marie Peterson
+uid: mpeterson973
+mail: mpeterson973@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=ngonazles,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Nancy
+cn: Nancy Gonazles
+uid: ngonazles
+mail: ngonazles@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+eduPersonAffiliation: faculty
+
+dn: uid=jvales975,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: James
+cn: James Vales
+uid: jvales975
+mail: jvales975@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: community
+
+dn: uid=jpeterson976,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Peterson
+givenName: Jennifer
+cn: Jennifer Peterson
+uid: jpeterson976
+mail: jpeterson976@unicon.local
+businessCategory:Advising
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=kmartinez977,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Kim
+cn: Kim Martinez
+uid: kmartinez977
+mail: kmartinez977@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=pbrown978,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Brown
+givenName: Paul
+cn: Paul Brown
+uid: pbrown978
+mail: pbrown978@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: member
+
+dn: uid=dbutler979,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Donna
+cn: Donna Butler
+uid: dbutler979
+mail: dbutler979@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=hmorrison980,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Morrison
+givenName: Heather
+cn: Heather Morrison
+uid: hmorrison980
+mail: hmorrison980@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=cdoe981,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Doe
+givenName: Colin
+cn: Colin Doe
+uid: cdoe981
+mail: cdoe981@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+
+dn: uid=alee,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Ann
+cn: Ann Lee
+uid: alee
+mail: alee@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=jlee983,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Jo
+cn: Jo Lee
+uid: jlee983
+mail: jlee983@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: community
+eduPersonAffiliation: faculty
+
+dn: uid=mprice984,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Price
+givenName: Marie
+cn: Marie Price
+uid: mprice984
+mail: mprice984@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=jbutler985,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Jo
+cn: Jo Butler
+uid: jbutler985
+mail: jbutler985@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: staff
+
+dn: uid=mmartinez986,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Mary
+cn: Mary Martinez
+uid: mmartinez986
+mail: mmartinez986@unicon.local
+businessCategory:Engineering
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=hmartinez,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Heather
+cn: Heather Martinez
+uid: hmartinez
+mail: hmartinez@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: alum
+
+dn: uid=twalters988,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Walters
+givenName: Thomas
+cn: Thomas Walters
+uid: twalters988
+mail: twalters988@unicon.local
+businessCategory:Physical Education
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=kwilliams989,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Williams
+givenName: Karl
+cn: Karl Williams
+uid: kwilliams989
+mail: kwilliams989@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: community
+
+dn: uid=emartinez990,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Martinez
+givenName: Eric
+cn: Eric Martinez
+uid: emartinez990
+mail: emartinez990@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: community
+
+dn: uid=klee991,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Lee
+givenName: Karoline
+cn: Karoline Lee
+uid: klee991
+mail: klee991@unicon.local
+businessCategory:Language Arts
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=bjohnson992,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Bill
+cn: Bill Johnson
+uid: bjohnson992
+mail: bjohnson992@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: faculty
+eduPersonAffiliation: student
+
+dn: uid=wdavis993,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Davis
+givenName: William
+cn: William Davis
+uid: wdavis993
+mail: wdavis993@unicon.local
+businessCategory:Financial Aid
+userPassword: password
+eduPersonAffiliation: staff
+eduPersonAffiliation: faculty
+
+dn: uid=bgonazles994,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gonazles
+givenName: Blake
+cn: Blake Gonazles
+uid: bgonazles994
+mail: bgonazles994@unicon.local
+businessCategory:Account Payable
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: community
+
+dn: uid=jvales995,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Vales
+givenName: Jennifer
+cn: Jennifer Vales
+uid: jvales995
+mail: jvales995@unicon.local
+businessCategory:Accounting
+userPassword: password
+eduPersonAffiliation: member
+eduPersonAffiliation: student
+
+dn: uid=kjohnson996,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Johnson
+givenName: Kiersten
+cn: Kiersten Johnson
+uid: kjohnson996
+mail: kjohnson996@unicon.local
+businessCategory:Computer Science
+userPassword: password
+eduPersonAffiliation: faculty
+
+dn: uid=ggrady,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Grady
+givenName: Greg
+cn: Greg Grady
+uid: ggrady
+mail: ggrady@unicon.local
+businessCategory:Purchasing
+userPassword: password
+eduPersonAffiliation: student
+eduPersonAffiliation: faculty
+
+dn: uid=lbutler998,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Butler
+givenName: Lori
+cn: Lori Butler
+uid: lbutler998
+mail: lbutler998@unicon.local
+businessCategory:Information Technology
+userPassword: password
+eduPersonAffiliation: member
+
+dn: uid=tgasper999,ou=People,dc=unicon,dc=local
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: eduPerson
+surname: Gasper
+givenName: Thomas
+cn: Thomas Gasper
+uid: tgasper999
+mail: tgasper999@unicon.local
+businessCategory:Business
+userPassword: password
+eduPersonAffiliation: member
diff --git a/src/test/docker/directory/Dockerfile b/src/test/docker/directory/Dockerfile
new file mode 100644
index 0000000..ee92085
--- /dev/null
+++ b/src/test/docker/directory/Dockerfile
@@ -0,0 +1,4 @@
+FROM osixia/openldap:1.3.0
+
+COPY 001_eduperson.ldif /container/service/slapd/assets/config/bootstrap/ldif
+COPY 999_users.ldif /container/service/slapd/assets/config/bootstrap/ldif
diff --git a/src/test/docker/directory/certs/ca.crt b/src/test/docker/directory/certs/ca.crt
new file mode 100644
index 0000000..e05f05f
--- /dev/null
+++ b/src/test/docker/directory/certs/ca.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFCzCCAvOgAwIBAgIULEwEJFwT49CiSPKOA5EHGVKGl0gwDQYJKoZIhvcNAQEL
+BQAwFDESMBAGA1UEAwwJZGlyZWN0b3J5MCAXDTIxMDkxNDIxNDMwOFoYDzIwNTEw
+OTE1MjE0MzA4WjAUMRIwEAYDVQQDDAlkaXJlY3RvcnkwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC+/SikxGUFYUiKjghLFPRMaYLZUHyOMWOyCIQSkZrt
+Si6llB7JhN+tCaFgibPSNrKzOpF7IRJBlaEMAKN47Fncy7uGPg/3KEtuCLRUxbYv
+1LgjZl2J0w/SROYIX0bsMEuThojaIxuv4D1fdaF3S7/sKnXywIncZtAqMhISiC9q
+Kq9xT4twiST7SDPY/u3pdVdAjBg4R5XlF69XWtKaeCoEup9lgvyLT5dQBxdA3q3N
+Af8UnpgZjHPxa6na7BjXwOyy7uzlUmTd/M0UMHuAreCBXMJrfrVBTnFYKyPtDYAP
+mFacA+lsX0a5QjOMIP0JW5dYAKw8SFU9rzGcqdB/a2mZwxvmrY5CFVI8SZho1JK8
+y4O3HQbzrqQ3b+t5UyZt1VnCDalAZyAP+Fp0TPhlIjQpm0hc7UVyhVuDAJJeV6Sk
+TyAf8othu6wREsaOkfSNwrSGVX7CMxjXxEAIQfqaLfB7xAMc7mwUn/Lac6I6L2+w
+a3Ds9xwpSoxHEAYVAJmpAtT8FFh5i0Fk6wqhUIO8IP5az7ATn1Q8MnYS/Mvne5JN
+/6L2CABqz0ZDzqHosTQLZ1qEBO+mhXyWsE7Pc4Ky+pmTh8xsP356nLkchvBTUlYp
+BzsBG+bDCNy8mQ0z+0oEngdZgTKYK+CqejDe0iOPw/ICkh3eImyQEa3m8qep+X78
+kwIDAQABo1MwUTAdBgNVHQ4EFgQUvNYYG2Stq3PcKD3IT3GlG64ma6gwHwYDVR0j
+BBgwFoAUvNYYG2Stq3PcKD3IT3GlG64ma6gwDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQsFAAOCAgEAaai3vJuEsDOIX74/byY50cMmqRo+lBZuPBZANJjaKSn3
+LORSW4PqwYfyzUkdw68dj2FPNmmg9p0xmSS1eMala2PW7UGwImjcmhV+YfdP15VE
+t5FcaLvi32SfSyu9PWpRRyP2ahSzaM75HWMMKfbdzgGDGOkU6UIwKyWsO5UApjQ8
+b+w5IMAK9YvmuQGaaXePDM8sFM3+NQBvsdqnsCefxx0j8FmjF3PjpTmdcm4Rlk8E
+yVigb/txwmKdJutcEeFWOnQVNxWugLmYW8P/s5W5IgpIm/8wdEz1bXXV0qGD/LgL
+Rhr68OtmFoVp+C6Yf0fDS1yCtmkYlO+RyYtAMOv0G29Xe+MzLQW42fAHXvBGYh/0
+F258TLHjZDOs9nHIc4lQfT7k/MusY4g9RfYSXx8Ts7kXyfyGfj6D5E/kutfXQlH3
+DYjQ/B69dhU7bkEX8nc1xwzHU18pa+APbXqjaU3JewdxY6n+PIGN4ZLZrJ3zgNRj
+tGykxlnPg8oAX3HX+ssh1OpU5VMPR+4hOdJkajk6U5Oyv77h4gsbUGCIGXC+0reA
+k/jHoSCloifgQ4F3WdDGjPlWO6Hgvy2/KM+JqBX/9nF/Dc0bGfa3mmYXK56xQCPb
+pNd6h2elVtlmt6iZgs4WA1uCwira5p0VCCutHgeGyWK4cAE60MFdRnzRZ2r1GuU=
+-----END CERTIFICATE-----
diff --git a/src/test/docker/directory/certs/dhparam.pem b/src/test/docker/directory/certs/dhparam.pem
new file mode 100644
index 0000000..0ad3539
--- /dev/null
+++ b/src/test/docker/directory/certs/dhparam.pem
@@ -0,0 +1,13 @@
+-----BEGIN DH PARAMETERS-----
+MIICCAKCAgEAivlNnloXfNvrvjLMALDtw4/H330xGfEZkO88vBG30xfDB8930JF/
+dpOQNB2lXhtyoCA5FYLI0Ml8VRzASR0nmVsjg1jqycRSZtPEUCyU5KLenWJerThQ
+PCPPHgM9JNfSb9GVEnyBubgTJrRjRr0Fq6/T+sHI1DVFgrIcr1iIpwjzv6AtJ4GX
+7ff3QxRI5wJ9EgSqGmyAZBBP91hvg702sENAru3TxL92uBY7yx1isr4Uo4v/CE/6
+DY9q5hEyVWZzb49msZ7WXiMvVwgH2P68O90x/Dzom27mQuutW0a5sHWLFvR6RzHl
+f2LDO1uFl4RifVFUe2PNXbeb9KGTFx+4HFWPojYR2L1UlE+f1fdwh8PAPB0xBTgn
+jMYra0dIJcCc9Mg/PbwJ9LMkIW7APuEvx90PlCmPs2ZI67EPAKlnDDtFsI6H0Sv8
+mAZt4oMBHFZoK2+4dcjLtDaqz8Stx9ICTFqk1YETcRlK9TQDRO0ngtkQJoKJtM7F
+sSP/4LcX67Nd3aE9bSY977JQec6KTGXJCa2/dIIruni3p6oFmHzSlXH+TxbtaLku
+VtYDqzRYR9vG5fsanOJlacoDpBtDEMlRVg+d5v811Z4cEH1RbEy/diGGEM/8DAxq
+F5S9tqzQa7tk/1IuQX9SQcBWDmXEL76L8cxijmEeK1bRH9XwNLMjyEsCAQI=
+-----END DH PARAMETERS-----
diff --git a/src/test/docker/directory/certs/ldap.crt b/src/test/docker/directory/certs/ldap.crt
new file mode 100644
index 0000000..e05f05f
--- /dev/null
+++ b/src/test/docker/directory/certs/ldap.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFCzCCAvOgAwIBAgIULEwEJFwT49CiSPKOA5EHGVKGl0gwDQYJKoZIhvcNAQEL
+BQAwFDESMBAGA1UEAwwJZGlyZWN0b3J5MCAXDTIxMDkxNDIxNDMwOFoYDzIwNTEw
+OTE1MjE0MzA4WjAUMRIwEAYDVQQDDAlkaXJlY3RvcnkwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC+/SikxGUFYUiKjghLFPRMaYLZUHyOMWOyCIQSkZrt
+Si6llB7JhN+tCaFgibPSNrKzOpF7IRJBlaEMAKN47Fncy7uGPg/3KEtuCLRUxbYv
+1LgjZl2J0w/SROYIX0bsMEuThojaIxuv4D1fdaF3S7/sKnXywIncZtAqMhISiC9q
+Kq9xT4twiST7SDPY/u3pdVdAjBg4R5XlF69XWtKaeCoEup9lgvyLT5dQBxdA3q3N
+Af8UnpgZjHPxa6na7BjXwOyy7uzlUmTd/M0UMHuAreCBXMJrfrVBTnFYKyPtDYAP
+mFacA+lsX0a5QjOMIP0JW5dYAKw8SFU9rzGcqdB/a2mZwxvmrY5CFVI8SZho1JK8
+y4O3HQbzrqQ3b+t5UyZt1VnCDalAZyAP+Fp0TPhlIjQpm0hc7UVyhVuDAJJeV6Sk
+TyAf8othu6wREsaOkfSNwrSGVX7CMxjXxEAIQfqaLfB7xAMc7mwUn/Lac6I6L2+w
+a3Ds9xwpSoxHEAYVAJmpAtT8FFh5i0Fk6wqhUIO8IP5az7ATn1Q8MnYS/Mvne5JN
+/6L2CABqz0ZDzqHosTQLZ1qEBO+mhXyWsE7Pc4Ky+pmTh8xsP356nLkchvBTUlYp
+BzsBG+bDCNy8mQ0z+0oEngdZgTKYK+CqejDe0iOPw/ICkh3eImyQEa3m8qep+X78
+kwIDAQABo1MwUTAdBgNVHQ4EFgQUvNYYG2Stq3PcKD3IT3GlG64ma6gwHwYDVR0j
+BBgwFoAUvNYYG2Stq3PcKD3IT3GlG64ma6gwDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQsFAAOCAgEAaai3vJuEsDOIX74/byY50cMmqRo+lBZuPBZANJjaKSn3
+LORSW4PqwYfyzUkdw68dj2FPNmmg9p0xmSS1eMala2PW7UGwImjcmhV+YfdP15VE
+t5FcaLvi32SfSyu9PWpRRyP2ahSzaM75HWMMKfbdzgGDGOkU6UIwKyWsO5UApjQ8
+b+w5IMAK9YvmuQGaaXePDM8sFM3+NQBvsdqnsCefxx0j8FmjF3PjpTmdcm4Rlk8E
+yVigb/txwmKdJutcEeFWOnQVNxWugLmYW8P/s5W5IgpIm/8wdEz1bXXV0qGD/LgL
+Rhr68OtmFoVp+C6Yf0fDS1yCtmkYlO+RyYtAMOv0G29Xe+MzLQW42fAHXvBGYh/0
+F258TLHjZDOs9nHIc4lQfT7k/MusY4g9RfYSXx8Ts7kXyfyGfj6D5E/kutfXQlH3
+DYjQ/B69dhU7bkEX8nc1xwzHU18pa+APbXqjaU3JewdxY6n+PIGN4ZLZrJ3zgNRj
+tGykxlnPg8oAX3HX+ssh1OpU5VMPR+4hOdJkajk6U5Oyv77h4gsbUGCIGXC+0reA
+k/jHoSCloifgQ4F3WdDGjPlWO6Hgvy2/KM+JqBX/9nF/Dc0bGfa3mmYXK56xQCPb
+pNd6h2elVtlmt6iZgs4WA1uCwira5p0VCCutHgeGyWK4cAE60MFdRnzRZ2r1GuU=
+-----END CERTIFICATE-----
diff --git a/src/test/docker/directory/certs/ldap.key b/src/test/docker/directory/certs/ldap.key
new file mode 100644
index 0000000..3756f05
--- /dev/null
+++ b/src/test/docker/directory/certs/ldap.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+Fq6aGlx2+ZhVYPYkzyQGiiPhkx0V1T2d
+-----END PRIVATE KEY-----
diff --git a/src/test/docker/docker-compose.yml b/src/test/docker/docker-compose.yml
new file mode 100644
index 0000000..c0de9bc
--- /dev/null
+++ b/src/test/docker/docker-compose.yml
@@ -0,0 +1,128 @@
+services:
+ reverse-proxy:
+ image: library/traefik:v2.2
+ command:
+ - "--api.insecure=true"
+ - "--providers.docker=true"
+ - "--providers.docker.exposedbydefault=false"
+ - "--entrypoints.web-secure.address=:443"
+ - "--providers.file.directory=/configuration/"
+ - "--providers.file.watch=true"
+ - "--log.level=DEBUG"
+ - "--serversTransport.insecureSkipVerify=true"
+ networks:
+ reverse-proxy:
+ aliases:
+ - idp.unicon.local
+ - cas.unicon.local
+ ports:
+ - "80:80"
+ - "8080:8080"
+ - "443:443"
+ - "8443:8443"
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - ./reverse-proxy/:/configuration/
+ - ./reverse-proxy/certs/:/certs/
+ directory:
+ build: ./directory
+ networks:
+ - idp
+ - grouper
+ ports:
+ - 389:389
+ volumes:
+ - directory_data:/var/lib/ldap
+ - directory_config:/etc/ldap/slapd.d
+ - ./directory/certs:/tmp/certs:ro
+ environment:
+ LDAP_BASE_DN: "dc=unicon,dc=local"
+ LDAP_DOMAIN: "unicon.local"
+ HOSTNAME: "directory"
+ LDAP_TLS_VERIFY_CLIENT: "try"
+ LDAP_SEED_INTERNAL_LDAP_TLS_CRT_FILE: /tmp/certs/ldap.crt
+ LDAP_SEED_INTERNAL_LDAP_TLS_KEY_FILE: /tmp/certs/ldap.key
+ LDAP_SEED_INTERNAL_LDAP_TLS_CA_CRT_FILE: /tmp/certs/ca.crt
+ LDAP_SEED_INTERNAL_LDAP_TLS_DH_PARAM_FILE: /tmp/certs/dhparam.pem
+ database:
+ image: postgres
+ networks:
+ - grouper
+ ports:
+ - 5432:5432
+ environment:
+ POSTGRES_USER: grouper
+ POSTGRES_PASSWORD: grouper
+ POSTGRES_DB: grouper
+ shibboleth-idp:
+ build: ./shibboleth-idp
+ labels:
+ - "traefik.http.routers.idp.rule=Host(`idp.unicon.local`)"
+ - "traefik.http.services.idp.loadbalancer.server.port=8080"
+ - "traefik.http.routers.idp.tls=true"
+ - "traefik.docker.network=grouper-ext-auth_reverse-proxy"
+ - "traefik.enable=true"
+ depends_on:
+ - directory
+ - reverse-proxy
+ networks:
+ - idp
+ - reverse-proxy
+ #ports:
+ # - 8443:443
+ volumes:
+ - ./directory/certs/ca.crt:/opt/shibboleth-idp/credentials/ldap-server.crt:ro
+ - ./grouper/config/sp-metadata.xml:/opt/shibboleth-idp/metadata/sp-metadata.xml:ro
+ healthcheck:
+ disable: true
+ grouper-ui:
+ build:
+ context: grouper
+ command:
+ - ui
+ labels:
+ - "traefik.http.routers.grouperui.rule=Host(`grouper-ui.unicon.local`)"
+ - "traefik.http.services.grouperui.loadbalancer.server.port=8080"
+ - "traefik.http.routers.grouperui.tls=true"
+ - "traefik.docker.network=grouper-ext-auth_reverse-proxy"
+ - "traefik.enable=true"
+ networks:
+ - reverse-proxy
+ - grouper
+ ports:
+ - 15005:15005
+ volumes:
+ - ../../../target/grouper-authentication-plugin-0.0.1-SNAPSHOT.jar:/opt/grouper/plugins/grouper-authentication-plugin.jar
+ - ./grouper/config/grouper.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper.properties
+ ## Uncomment one of the grouper-ui.properties below depending on the authentication method
+ ## -- OIDC --
+ - ./grouper/config/grouper-ui.properties.oidc:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper-ui.properties
+ ## -- SAML --
+ #- ./grouper/config/grouper-ui.properties.saml:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper-ui.properties
+ ## -- CAS --
+ #- ./grouper/config/grouper-ui.properties.cas:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper-ui.properties
+ - ./grouper/config/grouper-loader.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper-loader.properties
+ - ./grouper/config/subject.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/subject.properties
+ - ./shibboleth-idp/opt-shibboleth-idp/metadata/idp-metadata.xml:/opt/grouper/idp-metadata.xml
+ - ./grouper/certs/unicon.local.pem:/opt/grouper/certs/client/unicon.local.pem
+ environment:
+ GROUPER_DATABASE_URL: "jdbc:postgresql://database/grouper"
+ GROUPER_DATABASE_USERNAME: "grouper"
+ GROUPER_DATABASE_PASSWORD: "grouper"
+ GROUPER_MORPHSTRING_ENCRYPT_KEY: "THISISSUPERSECRET!"
+ GROUPER_AUTO_DDL_UPTOVERSION: "4.*.*"
+ GROUPER_RUN_TOMCAT_NOT_SUPERVISOR: "true"
+ GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES: "0.0.0.0/0"
+ RUN_SHIB_SP: "false"
+ GROUPER_EXTRA_CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:15005"
+# GROUPER_UI_GROUPER_AUTH: "true"
+# GROUPERSYSTEM_QUICKSTART_PASS: "letmein7"
+networks:
+ reverse-proxy:
+ idp:
+ grouper:
+volumes:
+ directory_data:
+ driver: local
+ directory_config:
+ driver: local
\ No newline at end of file
diff --git a/src/test/docker/grouper/Dockerfile b/src/test/docker/grouper/Dockerfile
new file mode 100644
index 0000000..d22a412
--- /dev/null
+++ b/src/test/docker/grouper/Dockerfile
@@ -0,0 +1,5 @@
+ARG GROUPER_VERSION=4.7.2
+
+FROM i2incommon/grouper:${GROUPER_VERSION}
+
+COPY config/server.xml /opt/tomcat/conf
\ No newline at end of file
diff --git a/src/test/docker/grouper/certs/unicon.local.pem b/src/test/docker/grouper/certs/unicon.local.pem
new file mode 100644
index 0000000..8d45927
--- /dev/null
+++ b/src/test/docker/grouper/certs/unicon.local.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDCDCCAfCgAwIBAgIJANdpvkovSXs6MA0GCSqGSIb3DQEBCwUAMBkxFzAVBgNV
+BAMMDioudW5pY29uLmxvY2FsMB4XDTIwMDUyNzE3MzE1OVoXDTMwMDUyNzE3MzE1
+OVowGTEXMBUGA1UEAwwOKi51bmljb24ubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCh9zduMpOqWDPfx5vHSBoWDwk44cc8XdFCD7nqi9EPHewO
+jAKCVihWKGa3OX6kQ4g6VIE7PCqdvtjq6eJ54FKuJ7FiFQweuaUXlXx5tdiWYfVe
++BV7jaLJGy0iniPgx8Pu9ajQOOINcmLwixYkTe+OBfeMgeivk0+o58/Lmkl2FyAv
+IvGA2Glxf8QtxQwHgtQLU3aHRlgi6YHSIxolvX+CuDvj4xsgLBdCphYkJtUXmaKO
+frQRxnHVxUUptWptqbwJPxrOMnIIdteRnduo+/i0RZ33+tC5W61Cr2uyoDGUzmKE
+HKgfTMxLeqJLtm+sB74xmI3Fsnq3qfWajZLqUyz5AgMBAAGjUzBRMB0GA1UdDgQW
+BBROeSN15J2wAW9OMZAdPIz84DEOsjAfBgNVHSMEGDAWgBROeSN15J2wAW9OMZAd
+PIz84DEOsjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQASo38W
+sqw8vijAs3DSYUCjFjlAvlwjsXU0y4IpelmgYSWD0Lqfb9/5jEu06F8hzLMSzmAL
+4UKIX6TwtLQb3HLvYObbjhaSSYG0Tl702dANW499QlHF/gYsCb9C6oA+5jzfHd7Y
+LS8bUv6gZkC3rP1E0kCGLJGrtvdMniAPuZ8W25SFedpR0iR7+d+lg9oOBsgjkWGc
+eKNtSJvic5dyZQCDlEzXVa3lyBOrawW9J/Sqhm0v3Tar1CVKoeXU3QV/bx7s8TWH
+YvaxQ82dOsGwZDMmPHhnJQDIQqjt2H9RJjrJy440RwyLiDr1A3/AJxrqpz98QONG
+FOhuJQXDH3YGDP7B
+-----END CERTIFICATE-----
diff --git a/src/test/docker/grouper/config/grouper-loader.properties b/src/test/docker/grouper/config/grouper-loader.properties
new file mode 100644
index 0000000..d374e5f
--- /dev/null
+++ b/src/test/docker/grouper/config/grouper-loader.properties
@@ -0,0 +1,9 @@
+ldap.ldap.pass = admin
+ldap.ldap.searchResultHandlers = org.ldaptive.handler.DnAttributeEntryHandler,edu.internet2.middleware.grouper.ldap.ldaptive.GrouperRangeEntryHandler
+ldap.ldap.uiTestAttributeName = uid
+ldap.ldap.uiTestExpectedValue = GrouperSystem
+ldap.ldap.uiTestFilter = uid=GrouperSystem
+ldap.ldap.uiTestSearchDn = ou=People,dc=unicon,dc=local
+ldap.ldap.uiTestSearchScope = SUBTREE_SCOPE
+ldap.ldap.url = ldap://directory
+ldap.ldap.user = cn=admin,dc=unicon,dc=local
\ No newline at end of file
diff --git a/src/test/docker/grouper/config/grouper-ui.properties.cas b/src/test/docker/grouper/config/grouper-ui.properties.cas
new file mode 100644
index 0000000..214520d
--- /dev/null
+++ b/src/test/docker/grouper/config/grouper-ui.properties.cas
@@ -0,0 +1,7 @@
+grouper.is.extAuth.enabled = true
+external.authentication.grouperContextUrl = https://grouper-ui.unicon.local/grouper
+
+# Note for CAS: you'll need to make sure that the CAS server SSL certificate is available in the trust store
+external.authentication.provider = cas
+external.authentication.cas.prefixUrl = https://idp.unicon.local/idp/profile/cas
+external.authentication.cas.protocol = CAS20
diff --git a/src/test/docker/grouper/config/grouper-ui.properties.oidc b/src/test/docker/grouper/config/grouper-ui.properties.oidc
new file mode 100644
index 0000000..d491c90
--- /dev/null
+++ b/src/test/docker/grouper/config/grouper-ui.properties.oidc
@@ -0,0 +1,8 @@
+grouper.is.extAuth.enabled = true
+external.authentication.grouperContextUrl = https://grouper-ui.unicon.local/grouper
+
+external.authentication.provider = oidc
+external.authentication.oidc.clientId = grouper
+external.authentication.oidc.discoveryURI = https://idp.unicon.local/idp/profile/oidc/configuration
+external.authentication.oidc.secret = thisisverysecret
+external.authentication.oidc.claimAsUsername = preferred_username
diff --git a/src/test/docker/grouper/config/grouper-ui.properties.saml b/src/test/docker/grouper/config/grouper-ui.properties.saml
new file mode 100644
index 0000000..5416ec1
--- /dev/null
+++ b/src/test/docker/grouper/config/grouper-ui.properties.saml
@@ -0,0 +1,12 @@
+grouper.is.extAuth.enabled = true
+external.authentication.grouperContextUrl = https://grouper-ui.unicon.local/grouper
+
+external.authentication.provider = saml
+external.authentication.saml.identityProviderEntityId = https://idp.unicon.local/idp/shibboleth
+external.authentication.saml.serviceProviderEntityId = http://localhost:8080/grouper
+external.authentication.saml.serviceProviderMetadataPath = file:/opt/grouper/sp-metadata.xml
+external.authentication.saml.identityProviderMetadataPath = file:/opt/grouper/idp-metadata.xml
+external.authentication.saml.keystorePath = file:/opt/grouper/here.key
+external.authentication.saml.keystorePassword = testme
+external.authentication.saml.privateKeyPassword = testme
+external.authentication.saml.attributeAsId = urn:oid:0.9.2342.19200300.100.1.1
diff --git a/src/test/docker/grouper/config/grouper.properties b/src/test/docker/grouper/config/grouper.properties
new file mode 100644
index 0000000..c79c59d
--- /dev/null
+++ b/src/test/docker/grouper/config/grouper.properties
@@ -0,0 +1,6 @@
+grouper.osgi.enable = true
+grouper.osgi.jar.dir = /opt/grouper/plugins
+grouper.osgi.framework.boot.delegation=org.osgi.*,javax.*,org.apache.commons.logging,edu.internet2.middleware.grouperClient.*,edu.internet2.middleware.grouper.*,org.w3c.*,org.xml.*,sun.*
+
+grouperOsgiPlugin.0.jarName = grouper-authentication-plugin.jar
+
diff --git a/src/test/docker/grouper/config/here.key b/src/test/docker/grouper/config/here.key
new file mode 100644
index 0000000..623e461
Binary files /dev/null and b/src/test/docker/grouper/config/here.key differ
diff --git a/src/test/docker/grouper/config/idp-metadata.xml b/src/test/docker/grouper/config/idp-metadata.xml
new file mode 100644
index 0000000..0c0924b
--- /dev/null
+++ b/src/test/docker/grouper/config/idp-metadata.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ unicon.net
+
+ Unicon, Inc.
+ Login service for Unicon Employees
+ https://idp.unicon.net/logo_135_0.png
+
+
+
+
+
+
+
+ MIIDIzCCAgugAwIBAgIUIEHTfbStY0ckKZzxIgqd5p1O2K0wDQYJKoZIhvcNAQEF
+ BQAwGTEXMBUGA1UEAxMOaWRwLnVuaWNvbi5uZXQwHhcNMTEwOTEzMDMyMzE2WhcN
+ MzEwOTEzMDMyMzE2WjAZMRcwFQYDVQQDEw5pZHAudW5pY29uLm5ldDCCASIwDQYJ
+ KoZIhvcNAQEBBQADggEPADCCAQoCggEBANtUsFXxlhvD3bWT5Y7TqKkf5rxa+dPA
+ z7vpbJ6bWhDPSMXb/9MiJe/ciY5ZKKrB1rdRC04s7blrzem3YtjGihfGd4ld+NRt
+ Pi0xoAT2YIp83CvEe5BHAKwqD7KTonN1unbN84mVo65itbme9d8lZKc0PfLM+BQp
+ fhXKUBfYeBCkYU4YWxmgL4Vs7XBaKjEjpTN4ncar4YSrarWTTPyO5RzmVPLAcv88
+ 1OBqewTyN41+JRXt0Jopi4ZQ8JjKkm73vhoYDBPHr/VMqk1lFfrDcDwJa2ygyWCm
+ qTlq6zyLE9Fr6sYz6CbgA2lAqu/b1rYCqVCnRpoHZKahAQ9uGQSfHD8CAwEAAaNj
+ MGEwQAYDVR0RBDkwN4IOaWRwLnVuaWNvbi5uZXSGJWh0dHBzOi8vaWRwLnVuaWNv
+ bi5uZXQvaWRwL3NoaWJib2xldGgwHQYDVR0OBBYEFK6yUrpGjvY3B09ke0kVl4wA
+ CMAnMA0GCSqGSIb3DQEBBQUAA4IBAQDG/gMpr3N+nAMuo7RhtDBsckiJV2+BwT/r
+ JmpxlHAV1Zgc3eeuOdyxm5/jA78tspLldL0+6W/LzZWov/je36IqVT1wSGy1n0Sc
+ Pjw8DHgyEJLCij2vVScV+j/Y4Eg0bVy6pZTeQW+e3ygb6WgiVT/ARM8QBp6GjAUC
+ qIlJCads9Rcx3vAih72I4exUUD4qMuBMeLIdY5XReHy5YHqxbkPjQhDIEORAFlzJ
+ jLqO/Ldzn4waEa5snDZyeYjsl6pi+8CVGfXLSDVsDuk5s47B9OD+gOSJ1wEc7O/N
+ nU9d/WCcM1V4IGZGL8TXUdfJoVXYZUFF08jUGSL2mj30WS1orIWo
+
+
+
+
+
+
+
+
+
+
+ MIIDIzCCAgugAwIBAgIUIEHTfbStY0ckKZzxIgqd5p1O2K0wDQYJKoZIhvcNAQEF
+ BQAwGTEXMBUGA1UEAxMOaWRwLnVuaWNvbi5uZXQwHhcNMTEwOTEzMDMyMzE2WhcN
+ MzEwOTEzMDMyMzE2WjAZMRcwFQYDVQQDEw5pZHAudW5pY29uLm5ldDCCASIwDQYJ
+ KoZIhvcNAQEBBQADggEPADCCAQoCggEBANtUsFXxlhvD3bWT5Y7TqKkf5rxa+dPA
+ z7vpbJ6bWhDPSMXb/9MiJe/ciY5ZKKrB1rdRC04s7blrzem3YtjGihfGd4ld+NRt
+ Pi0xoAT2YIp83CvEe5BHAKwqD7KTonN1unbN84mVo65itbme9d8lZKc0PfLM+BQp
+ fhXKUBfYeBCkYU4YWxmgL4Vs7XBaKjEjpTN4ncar4YSrarWTTPyO5RzmVPLAcv88
+ 1OBqewTyN41+JRXt0Jopi4ZQ8JjKkm73vhoYDBPHr/VMqk1lFfrDcDwJa2ygyWCm
+ qTlq6zyLE9Fr6sYz6CbgA2lAqu/b1rYCqVCnRpoHZKahAQ9uGQSfHD8CAwEAAaNj
+ MGEwQAYDVR0RBDkwN4IOaWRwLnVuaWNvbi5uZXSGJWh0dHBzOi8vaWRwLnVuaWNv
+ bi5uZXQvaWRwL3NoaWJib2xldGgwHQYDVR0OBBYEFK6yUrpGjvY3B09ke0kVl4wA
+ CMAnMA0GCSqGSIb3DQEBBQUAA4IBAQDG/gMpr3N+nAMuo7RhtDBsckiJV2+BwT/r
+ JmpxlHAV1Zgc3eeuOdyxm5/jA78tspLldL0+6W/LzZWov/je36IqVT1wSGy1n0Sc
+ Pjw8DHgyEJLCij2vVScV+j/Y4Eg0bVy6pZTeQW+e3ygb6WgiVT/ARM8QBp6GjAUC
+ qIlJCads9Rcx3vAih72I4exUUD4qMuBMeLIdY5XReHy5YHqxbkPjQhDIEORAFlzJ
+ jLqO/Ldzn4waEa5snDZyeYjsl6pi+8CVGfXLSDVsDuk5s47B9OD+gOSJ1wEc7O/N
+ nU9d/WCcM1V4IGZGL8TXUdfJoVXYZUFF08jUGSL2mj30WS1orIWo
+
+
+
+
+
+
+ urn:mace:shibboleth:1.0:nameIdentifier
+ urn:oasis:names:tc:SAML:2.0:nameid-format:transient
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/grouper/config/server.xml b/src/test/docker/grouper/config/server.xml
new file mode 100644
index 0000000..020454a
--- /dev/null
+++ b/src/test/docker/grouper/config/server.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/grouper/config/sp-metadata.xml b/src/test/docker/grouper/config/sp-metadata.xml
new file mode 100644
index 0000000..0eafaf1
--- /dev/null
+++ b/src/test/docker/grouper/config/sp-metadata.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MIICpzCCAY+gAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAw3ZjQ2MDUyOGJmNDMw
+HhcNMjIxMDExMjEyNTI1WhcNNDIxMDA2MjEyNTI2WjAXMRUwEwYDVQQDDAw3ZjQ2MDUyOGJmNDMw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCEDAR6ciBbe1LyWi0jsP6VdispOJ0pVgLn
+fVjjHracpI/zrfGcbagYXv/ysYOaPGQXYekyPcblHyoxVZO0MrfkWuLs/NPTdg95UWIielbImlA4
+LvFoqtJ07K9XeKBZaX5HW5xArSD/qqQtRtCcyLCTUdM/SXWDn7yyvhpNqHsKzX7FxuXc4BjviWq8
+wjMAZ+S56/w1NxZsADce1ijbVi6MewdEM3zRxg4O3IDPLdFwVxDH75xxD5IY6WPjEZ1CuxpaLD0Z
+1NvWYfBBzYVmG8YgBKjPdyNSnaw2gSKMsIjfkgwLTHYmy9Z+H42PdvZV81c6GH2HXzZzNkSYQl2R
+c0BLAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBABWWxmja8ueZ0VnMqBYqoWFZRnjT/imasJS/Hnmb
+XKtATfn3aYe/Q4eIKcbodFLeEWG2SJqOiOjErRgg3tf0JabIPJqEgVT2M0LrIwsPekj2jK9LKJns
+kCQJtjglAXlJYDuuXvmwSIPjfrWLrPDtM9zpjmNlMQ30r47sp7zS4r4Vhl7Tc5EUxntvowuhdqRm
+dIBeKQ7bL7vZTRV26C8+Mv+kjejZuv0HDbrh1sLtuhfGtd1NnzROJrUAjpTJve+8ZOPF6W0KB9WZ
+m4MfW8ZoAwN+fq7pXVEVzwYZGFZBb1IE0Llhs1k9BfAoLhE4+HT17VOEnyG/TCPBPFyXQKh9TYo=
+
+
+
+
+
+
+
+
+ urn:oasis:names:tc:SAML:2.0:nameid-format:transient
+ urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
+ urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
+ urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
+
+
+
diff --git a/src/test/docker/grouper/config/subject.properties b/src/test/docker/grouper/config/subject.properties
new file mode 100644
index 0000000..2e0dbe8
--- /dev/null
+++ b/src/test/docker/grouper/config/subject.properties
@@ -0,0 +1,26 @@
+subjectApi.source.ldap.adapterClass = edu.internet2.middleware.grouper.subj.GrouperLdapSourceAdapter2_5
+subjectApi.source.ldap.attribute.0.name = uid
+subjectApi.source.ldap.attribute.0.subjectIdentifier = true
+subjectApi.source.ldap.attribute.0.translationType = sourceAttributeSameAsSubjectAttribute
+subjectApi.source.ldap.attribute.1.name = cn
+subjectApi.source.ldap.attribute.1.translationType = sourceAttributeSameAsSubjectAttribute
+subjectApi.source.ldap.id = ldap
+subjectApi.source.ldap.name = ldap
+subjectApi.source.ldap.numberOfAttributes = 2
+subjectApi.source.ldap.param.Description_AttributeType.value = cn
+subjectApi.source.ldap.param.Name_AttributeType.value = cn
+subjectApi.source.ldap.param.SubjectID_AttributeType.value = uid
+subjectApi.source.ldap.param.ldapServerId.value = ldap
+subjectApi.source.ldap.param.subjectIdentifierAttribute0.value = uid
+subjectApi.source.ldap.search.search.param.filter.value = (&(!(uid=GrouperSystem))(|(uid=%TERM%)(cn=*%TERM%*)))
+subjectApi.source.ldap.search.searchSubject.param.base.value = ou=People,dc=unicon,dc=local
+subjectApi.source.ldap.search.searchSubject.param.filter.value = (&(!(uid=GrouperSystem))(uid=%TERM%))
+subjectApi.source.ldap.search.searchSubject.param.scope.value = SUBTREE_SCOPE
+subjectApi.source.ldap.search.searchSubjectByIdentifier.param.filter.value = (&(!(uid=GrouperSystem))(uid=%TERM%))
+subjectApi.source.ldap.searchAttribute.0.attributeName = uid
+subjectApi.source.ldap.searchAttribute.1.attributeName = cn
+subjectApi.source.ldap.searchAttributeCount = 2
+subjectApi.source.ldap.sortAttribute.0.attributeName = uid
+subjectApi.source.ldap.sortAttribute.1.attributeName = cn
+subjectApi.source.ldap.sortAttributeCount = 2
+subjectApi.source.ldap.types = person
diff --git a/src/test/docker/reverse-proxy/certs/star.unicon.local.crt b/src/test/docker/reverse-proxy/certs/star.unicon.local.crt
new file mode 100644
index 0000000..8d45927
--- /dev/null
+++ b/src/test/docker/reverse-proxy/certs/star.unicon.local.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDCDCCAfCgAwIBAgIJANdpvkovSXs6MA0GCSqGSIb3DQEBCwUAMBkxFzAVBgNV
+BAMMDioudW5pY29uLmxvY2FsMB4XDTIwMDUyNzE3MzE1OVoXDTMwMDUyNzE3MzE1
+OVowGTEXMBUGA1UEAwwOKi51bmljb24ubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCh9zduMpOqWDPfx5vHSBoWDwk44cc8XdFCD7nqi9EPHewO
+jAKCVihWKGa3OX6kQ4g6VIE7PCqdvtjq6eJ54FKuJ7FiFQweuaUXlXx5tdiWYfVe
++BV7jaLJGy0iniPgx8Pu9ajQOOINcmLwixYkTe+OBfeMgeivk0+o58/Lmkl2FyAv
+IvGA2Glxf8QtxQwHgtQLU3aHRlgi6YHSIxolvX+CuDvj4xsgLBdCphYkJtUXmaKO
+frQRxnHVxUUptWptqbwJPxrOMnIIdteRnduo+/i0RZ33+tC5W61Cr2uyoDGUzmKE
+HKgfTMxLeqJLtm+sB74xmI3Fsnq3qfWajZLqUyz5AgMBAAGjUzBRMB0GA1UdDgQW
+BBROeSN15J2wAW9OMZAdPIz84DEOsjAfBgNVHSMEGDAWgBROeSN15J2wAW9OMZAd
+PIz84DEOsjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQASo38W
+sqw8vijAs3DSYUCjFjlAvlwjsXU0y4IpelmgYSWD0Lqfb9/5jEu06F8hzLMSzmAL
+4UKIX6TwtLQb3HLvYObbjhaSSYG0Tl702dANW499QlHF/gYsCb9C6oA+5jzfHd7Y
+LS8bUv6gZkC3rP1E0kCGLJGrtvdMniAPuZ8W25SFedpR0iR7+d+lg9oOBsgjkWGc
+eKNtSJvic5dyZQCDlEzXVa3lyBOrawW9J/Sqhm0v3Tar1CVKoeXU3QV/bx7s8TWH
+YvaxQ82dOsGwZDMmPHhnJQDIQqjt2H9RJjrJy440RwyLiDr1A3/AJxrqpz98QONG
+FOhuJQXDH3YGDP7B
+-----END CERTIFICATE-----
diff --git a/src/test/docker/reverse-proxy/certs/star.unicon.local.key b/src/test/docker/reverse-proxy/certs/star.unicon.local.key
new file mode 100644
index 0000000..2042008
--- /dev/null
+++ b/src/test/docker/reverse-proxy/certs/star.unicon.local.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCh9zduMpOqWDPf
+x5vHSBoWDwk44cc8XdFCD7nqi9EPHewOjAKCVihWKGa3OX6kQ4g6VIE7PCqdvtjq
+6eJ54FKuJ7FiFQweuaUXlXx5tdiWYfVe+BV7jaLJGy0iniPgx8Pu9ajQOOINcmLw
+ixYkTe+OBfeMgeivk0+o58/Lmkl2FyAvIvGA2Glxf8QtxQwHgtQLU3aHRlgi6YHS
+IxolvX+CuDvj4xsgLBdCphYkJtUXmaKOfrQRxnHVxUUptWptqbwJPxrOMnIIdteR
+nduo+/i0RZ33+tC5W61Cr2uyoDGUzmKEHKgfTMxLeqJLtm+sB74xmI3Fsnq3qfWa
+jZLqUyz5AgMBAAECggEAD5EuT7YmwTmnCrwpudaxQyuAzGnO93tg8IOIcAWuO1C5
+7pAAcbyMNfO+I6AwDuO6xTh4D1RyGCVOvg1qyiIIcFq6Tt4NAyr+tiyVATG8NoAF
+0HHxxqVPXxrwlKI0epdYuq/74L+G4pn67nm/0A95leH28BdQYQe8oVRegYg7xVC+
+hFNQATLro1NXPfOtujn47/HjIHBBd2Or6dgj/Jh0niFg6Ts3LCgoxZVJeOVTqFht
+26tpyMygeE2UpDIDlJjpO+YWTBIMV2i5MuoDAjQDlunaWyrz+Uo4LHaqGrBKkqri
+3qhcWI0mGDIw4JPupNStpKXsOBdDCobi80taaKIIgQKBgQDVgVLOAKJu2xMH3/k/
+Fkj1GOugJ+cFvNiXZbwsxc3T5v5InoBeit4MoHSbATFt5EM4oxRD0LOAnkkdJAS3
+2k3nwQkBxR+AWc/9Tugxtyg84oaMrQ3kgwVMWEyFfDjtnAXzJ/vhUvkLaQXKRuW4
+Bpmd0BfZTVmnD6o7KAjCVoBVsQKBgQDCM9CIG6rJ7gxkd0tOOfIXcReG8jGve1tG
+8WDg6JhdL/ITBx4y6m9ez/P9BNn9BJixCbkkcwvRro/pCYZG7rNWQsr/9AxiUk/a
+91oaGyiPhe6ly5/HlaIyUBPejr3clPL29UFe7CEWiuc/DdhuIrblWziSaX5K8n9d
+C85ECkZ1yQKBgDPgfHI5jT5KVNFxBmrhy1Bigb4kc+nc/POscJCgb2axlc+nU6Gl
+NFb1FeAj5hLBh+PXHDFuIG98Bl/iRJM3o/5P1RRtBT52lCcEaT7LNie1EuRTmDCR
+9VObkNxOVrbFVlzCtl0FgCXZmuKPX3nbgK/rxB+0v7fsAnzlOVufEQfBAoGAUSkQ
+ZGGTrdJzkWUdrrKez1cvKvF6/EiEbBCimTv7uS45b+RQpZy+MJSd9kcZxxktqwdS
+Pb5q2RWoBQ8689f8UPeXGQLoTgryXqNzH2fsOpcRlm6T9vg9EePPefqTtGT3aWg0
+CrSKW35viDWEFvshDpdh/CZkZnQT8FHnwR2+NqkCgYEAh9ZygpT21hZGMPUjk8j8
+Qo8+K33p08+Sf4LsSQMy9uq5+rcZ3/0S/bZeSHSQgVxba1S61WvE3MGz779f3A8U
+GKUnCR9HfZpbw2ziVzKsJUqfq9q1bsy3LSJUNfJfEJWshSh8DNCyDv/y4HON53Il
+yOQugjsEbN6Be3D0FBCFYlc=
+-----END PRIVATE KEY-----
diff --git a/src/test/docker/reverse-proxy/configuration/certificates.yml b/src/test/docker/reverse-proxy/configuration/certificates.yml
new file mode 100644
index 0000000..88abe44
--- /dev/null
+++ b/src/test/docker/reverse-proxy/configuration/certificates.yml
@@ -0,0 +1,9 @@
+tls:
+ certificates:
+ - certFile: /certs/star.unicon.local.crt
+ keyFile: /certs/star.unicon.local.key
+ stores:
+ default:
+ defaultCertificate:
+ certFile: /certs/star.unicon.local.crt
+ keyFile: /certs/star.unicon.local.key
\ No newline at end of file
diff --git a/src/test/docker/shibboleth-idp/Dockerfile b/src/test/docker/shibboleth-idp/Dockerfile
new file mode 100644
index 0000000..36d46a0
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/Dockerfile
@@ -0,0 +1,61 @@
+FROM tier/shib-idp:4.3.1_20231218
+
+WORKDIR /opt/shibboleth-idp
+
+COPY plugin-truststore/net.shibboleth.oidc.common/truststore.asc /opt/shibboleth-idp/credentials/net.shibboleth.oidc.common/
+COPY plugin-truststore/net.shibboleth.idp.plugin.oidc.config/truststore.asc /opt/shibboleth-idp/credentials/net.shibboleth.idp.plugin.oidc.config/
+COPY plugin-truststore/net.shibboleth.idp.plugin.oidc.op/truststore.asc /opt/shibboleth-idp/credentials/net.shibboleth.idp.plugin.oidc.op/
+
+RUN bin/plugin.sh --noPrompt -I net.shibboleth.oidc.common \
+ && bin/plugin.sh --noPrompt -I net.shibboleth.idp.plugin.oidc.config \
+ && bin/plugin.sh --noPrompt -I net.shibboleth.idp.plugin.oidc.op
+
+COPY tomcat/server.xml /usr/local/tomcat/conf/
+
+COPY opt-shibboleth-idp/ /opt/shibboleth-idp/
+
+EXPOSE 8080
+
+
+#FROM amazoncorretto:17 as install
+#
+#ARG TOMCAT_VERSION=10.1.15
+#
+#COPY keys/* /tmp/keys/
+#
+#RUN yum install -y tar gzip
+#
+#RUN gpg --import /tmp/keys/TOMCAT_PGP_KEYS
+#
+#RUN curl -L https://archive.apache.org/dist/tomcat/tomcat-10/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz -o apache-tomcat-$TOMCAT_VERSION.tar.gz \
+# && curl https://archive.apache.org/dist/tomcat/tomcat-10/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc -o apache-tomcat-$TOMCAT_VERSION.tar.gz.asc \
+# && gpg --verify apache-tomcat-$TOMCAT_VERSION.tar.gz.asc apache-tomcat-$TOMCAT_VERSION.tar.gz \
+# && tar -zxvf apache-tomcat-$TOMCAT_VERSION.tar.gz -C /opt \
+# && rm apache-tomcat-$TOMCAT_VERSION.tar.gz \
+# && mv /opt/apache-tomcat-$TOMCAT_VERSION/ /opt/tomcat \
+# && rm -rf /opt/tomcat/webapps/*
+#
+#FROM amazoncorretto:17 as shib-setup
+#
+#RUN yum install -y dos2unix
+#
+#COPY opt-shibboleth-idp /opt/shibboleth-idp/
+#
+#RUN dos2unix /opt/shibboleth-idp/bin/*.sh \
+# && chmod +x /opt/shibboleth-idp/bin/*.sh
+#
+#FROM amazoncorretto:17 as prod
+#
+#COPY --from=install /opt/tomcat /opt/tomcat/
+#
+#COPY --from=shib-setup /opt/shibboleth-idp /opt/shibboleth-idp/
+#
+#COPY tomcat/idp.xml /opt/tomcat/conf/Catalina/localhost/
+#COPY tomcat/server.xml /opt/tomcat/conf/
+#COPY tomcat/setenv.sh /opt/tomcat/bin/
+#
+#ENTRYPOINT /opt/shibboleth-idp/bin/build.sh && /opt/tomcat/bin/catalina.sh run
+#
+#FROM prod as dev
+#
+#FROM prod
\ No newline at end of file
diff --git a/src/test/docker/shibboleth-idp/keys/SHIB_PGP_KEYS b/src/test/docker/shibboleth-idp/keys/SHIB_PGP_KEYS
new file mode 100644
index 0000000..b24752c
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/keys/SHIB_PGP_KEYS
@@ -0,0 +1,1273 @@
+This file contains the PGP keys of Shibboleth Project developers.
+
+To import these keys into your keyring:
+
+ pgp < PGP_KEYS
+or gpg --import PGP_KEYS
+
+pub rsa4096 2020-02-05 [SC] [expires: 2024-02-05]
+ 6D18FD63708FCCA079B68CCE026691839355EBCA
+uid Henri Mikkonen
+sub rsa4096 2020-02-05 [E] [expires: 2024-02-05]
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+A+i1fd0Gifis1HhBeA==
+=ObHY
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub rsa4096/9A804E97D7079C77 2011-09-28 [SC]
+ 5E6D6EAE16C3DA75450B219C9A804E97D7079C77
+uid [ultimate] Ian A. Young
+uid [ultimate] [jpeg image of size 6036]
+sub rsa4096/8DEB9861925A5C31 2016-04-21 [E] [expires: 2020-04-21]
+sub rsa4096/8F903CADB1E5A937 2020-02-26 [S] [expires: 2022-02-25]
+sub rsa4096/5762741A3B7BA448 2020-02-26 [E] [expires: 2025-02-24]
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+Y5TOjSYpNFq8k/b5t2hVcRI6OcPe
+=Eh7Q
+-----END PGP PUBLIC KEY BLOCK-----
+
+OBS security:shibboleth RPM repository key
+
+pub dsa1024 2008-06-30 [SC] [expires: 2021-04-07]
+ 6519B5DB7C1C8340A954ED0073C937457D0A1B3D
+uid security:shibboleth OBS Project
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.5 (GNU/Linux)
+
+mQGiBEholYgRBACW/kTYZi5mAEMP8j1qui2bRnWmYblFbiZvb5JMJYUWL/jyMjHj
+LLJvVrnOre/AxexH9KmaJwBuNoa/X9l/tQGIb49QRhR346QQUbQcwlYpckg5ccqN
+qlAURHEdjCxRxMhzPs+C/F6Nqa/fHpAectW0JNRqAVVd9CWjCG3l6I2CywCgk9UI
+SUAvaB5bVMxEVrFAKrVh4MUEAISeUwOaTIZftIamjo0VrnYemHS4SmGqMALEtHeG
+/o7ecMhLb/MvreEVISrE1hbfmnObYoiVXWJrorOEZDh1hOVdGRkHJOYHvQSRp9uC
+/uy4Mmog4R7ba5Ct5wpw0RCav2HMqwOJEyCX6jnip5P5LMmaFdGg/RQZM/e9mbyF
+VeL0A/0WK//+VWrQya1rQIG+v4IZ+rWvrkqXKtrzELkWd/3vWNMXi4BfeBM/itLQ
+yYOdhnx55FHxBzv+dK+UErrdTM8Ingljy7oztV/G6+K15CcGvEy9ITb62v2bDdS2
+uYWEFOQJK+I6aU4paNysvtKsOlTt9FhyfJJW9G3kJDUBPM9HbLRIc2VjdXJpdHk6
+c2hpYmJvbGV0aCBPQlMgUHJvamVjdCA8c2VjdXJpdHk6c2hpYmJvbGV0aEBidWls
+ZC5vcGVuc3VzZS5vcmc+iGYEExECACYFAlxPWy4CGwMFCRgFdaYGCwkIBwMCBBUC
+CAMEFgIDAQIeAQIXgAAKCRBzyTdFfQobPTnPAJ9GIje/01bOgXnoE8nr64WpM/tG
+CQCfZNUmLRrK292z7hyP2lr1WdvVFpuIRgQTEQIABgUCSGiViAAKCRA7MBG3a51l
+Iy3vAKCUPurlZup+vzQtpij3FMo0JAVW9ACgjdkt/hWt0WsjfHb+/cPwXtgx9X8=
+=IAAZ
+-----END PGP PUBLIC KEY BLOCK-----
+
+
+pub rsa4096 2021-02-25 [SC]
+ B5B5DD332142AD657E8D87AC7D27E610B8A3DC52
+uid [ultimate] Philip David Smart
+uid [ultimate] [jpeg image of size 9378]
+sub rsa4096 2021-02-25 [E]
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+YnBsaXN0MDBPEQIARwJMAlECVQJSAksCQwI7AiwCGgJzAc4AkACIAIgAfwBLAlIC
+VgJWAk4CRgI+AjECIALKAY8AfwB5AIAAgQCAAE4CVwJaAlYCTgJEAjgCJQIPAjMB
+cAB3AIwAigCWAI8ATAJWAlcCUAJGAjoCKwISAuMBogBlAJIAiQCOAI0AkgBKAlIC
+UAJHAjoCKgIWAvQBagF4AHQAkQCFAIUAjACLAEkCSgL2AfoAvADiAI4BiQGxAHEA
+awCDAHkAegB+AIEARQKBAU0A0ACxAOEA4gC9AK4AmQCJAGMAaAB5AHUAbgBBAgQB
+eQAYAbQAxwDVALkApADdAMkAkACDAHwAagBlADsC9gByACIBBAG9AKwAmACGALsA
+0ACvAF4AZgBvAHgAMQIJAVAA7wCLAKsAvwCdAG0AeQBfAGQAbwB8AHQAdQAmAuYB
+twB1AHYArgDcAAwBxgBiAGEAagBxAHcAbwBwAB0CGgL/AbQBowGdAYcBeAExAXMA
+bQB2AHUAdABrAGcAGAIZAg0C+QHoAdoBxQGoAXIBrQBfAHYAcwByAGoAaAAVAhkC
+FAIJAvwB6AHNAbABjwEWAWYAZgB5AGoAcwBmABMCEwIPAgQC+AHlAcoBswGbAX4B
+zQBhAHIAaQBrAGEAEAINAgkC/wH0AeIByQGzAaABjAF8AVMBAwHgAHAAcgAACAAA
+AAAAAAIBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAIMYnBsaXN0MDDUAQIDBAUGBwhV
+ZmxhZ3NVdmFsdWVZdGltZXNjYWxlVWVwb2NoEAETAAAFOs53irESO5rKABAACBEX
+HSctLzg9AAAAAAAAAQEAAAAAAAAACQAAAAAAAAAAAAAAAAAAAD///8bBAAocvP//
+tgwAAEoR///7/QAK1g8AAAA7AAABAAAAAGUAAAEANDJEQ0FBN0QtMDE1NC00QTU5
+LUI2NjUtN0E2QUI2QUZDODhEAABxODI1cwAAP9XfAA//tQA/1d8AD/+1AAAACQAA
+AAUAAAAJAAAABUFwcGxlAGlQaG9uZSA3IGJhY2sgY2FtZXJhIDMuOTltbSBmLzEu
+OAAADQABAAIAAAACTgAAAAACAAUAAAADAAAHhgADAAIAAAACVwAAAAAEAAUAAAAD
+AAAHngAFAAEAAAABAAAAAAAGAAUAAAABAAAHtgAMAAIAAAACSwAAAAANAAUAAAAB
+AAAHvgAQAAIAAAACVAAAAAARAAUAAAABAAAHxgAXAAIAAAACVAAAAAAYAAUAAAAB
+AAAHzgAfAAUAAAABAAAH1gAAAAAAAAAzAAAAAQAAACAAAAABAAAOUAAAAGQAAAAD
+AAAAAQAAAAsAAAABAAAVgwAAAGQAAFm9AAAA2QAAAK0AAASeAADdhQAAAVgAAN2F
+AAABWAAAAAgAAAAB/+ENV2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94
+cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0i
+WE1QIENvcmUgNi4wLjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cu
+dzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0
+aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
+eGFwLzEuMC8iIHhtbG5zOm13Zy1ycz0iaHR0cDovL3d3dy5tZXRhZGF0YXdvcmtp
+bmdncm91cC5jb20vc2NoZW1hcy9yZWdpb25zLyIgeG1sbnM6c3RBcmVhPSJodHRw
+Oi8vbnMuYWRvYmUuY29tL3htcC9zVHlwZS9BcmVhIyIgeG1sbnM6YXBwbGUtZmk9
+Imh0dHA6Ly9ucy5hcHBsZS5jb20vZmFjZWluZm8vMS4wLyIgeG1sbnM6c3REaW09
+Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9EaW1lbnNpb25zIyIg
+eG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8x
+LjAvIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0wNy0xNlQxMDowNzozOC43MTAiIHht
+cDpDcmVhdG9yVG9vbD0iMTEuNCIgeG1wOk1vZGlmeURhdGU9IjIwMTgtMDctMTZU
+MTA6MDc6MzgiIHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD0iMjAxOC0wNy0xNlQxMDow
+NzozOC43MTAiPiA8bXdnLXJzOlJlZ2lvbnMgcmRmOnBhcnNlVHlwZT0iUmVzb3Vy
+Y2UiPiA8bXdnLXJzOlJlZ2lvbkxpc3Q+IDxyZGY6U2VxPiA8cmRmOmxpPiA8cmRm
+OkRlc2NyaXB0aW9uIG13Zy1yczpUeXBlPSJGYWNlIj4gPG13Zy1yczpBcmVhIHN0
+QXJlYTp5PSIwLjUxMjk5OTk5OTk5OTk5OTkiIHN0QXJlYTp3PSIwLjIzNzk5OTk5
+OTk5OTk5OTk5IiBzdEFyZWE6eD0iMC4zNzEiIHN0QXJlYTpoPSIwLjMxNzk5OTk5
+OTk5OTk5OTk1IiBzdEFyZWE6dW5pdD0ibm9ybWFsaXplZCIvPiA8bXdnLXJzOkV4
+dGVuc2lvbnMgYXBwbGUtZmk6QW5nbGVJbmZvWWF3PSIwIiBhcHBsZS1maTpBbmds
+ZUluZm9Sb2xsPSIyNzAiIGFwcGxlLWZpOkNvbmZpZGVuY2VMZXZlbD0iMTAwMCIg
+YXBwbGUtZmk6VGltZXN0YW1wPSIxMzc5OTk5MjE0NTAiIGFwcGxlLWZpOkZhY2VJ
+RD0iOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6bGk+IDwvcmRmOlNlcT4g
+PC9td2ctcnM6UmVnaW9uTGlzdD4gPG13Zy1yczpBcHBsaWVkVG9EaW1lbnNpb25z
+IHN0RGltOmg9IjMwMjQiIHN0RGltOnc9IjQwMzIiIHN0RGltOnVuaXQ9InBpeGVs
+Ii8+IDwvbXdnLXJzOlJlZ2lvbnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpS
+REY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+IDw/eHBhY2tldCBlbmQ9InciPz4A/+0AeFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAA
+AAA/HAFaAAMbJUccAgAAAgACHAI/AAYxMDA3MzgcAj4ACDIwMTgwNzE2HAI3AAgy
+MDE4MDcxNhwCPAAGMTAwNzM4ADhCSU0EJQAAAAAAEDhosdEEN5jDgBMX/jOR6uL/
+4gJASUNDX1BST0ZJTEUAAQEAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAH0AAIAAsA
+EwAzADthY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADT
+LUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAAB
+sAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB
+9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAy
+MDAwIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRv
+YmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFla
+IAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAA
+AQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACc
+GAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+
+nP/AABEIAOoAlgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUG
+BwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGR
+oQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZX
+WFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0
+tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAf
+AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAAB
+AncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZ
+GiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SF
+hoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY
+2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDABgYGBgYGCkYGCk6KSkpOk46Ojo6TmNO
+Tk5OTmN3Y2NjY2Njd3d3d3d3d3ePj4+Pj4+np6enp7u7u7u7u7u7u7v/2wBDAR0f
+HzAsMFIsLFLEhW2FxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
+xMTExMTExMTExMTExMT/3QAEAAr/2gAMAwEAAhEDEQA/AOiooorIsKWkpCeKAGSt
+sXd7gfnxT9wqi8iS25EhxvB4rBTVZSoB7Dcfc+1OwHWFgOppEkSTlCDiufTVmlh2
+qm6U/ePRf8+1VLG4Ed7tfKq2QQTjB7fhRYLnS3cxgt3kHUf1OKZZ3X2qJXA+v/1q
+r6oQdPkwecA/kar2d0FgDHaoAwq5xnFAG5nFZ0uoJHP9nAJY7cY/2j/SoG1SPB4z
+jrgg/p1rnPOK3ImB4DA59s/4UJCO79qRTuUN61Ue6jEYlB4HWnCeOJUjY84GPekM
+t0UwNlQTTgQRkd6AFooooAKKKKAP/9DoqKSjNZGg2Rwi5Nc9PfSNumU/KDtUfpml
+1e43MIkPQfzrJnYIn2fqUb/P86aQmxUb92ZZSSOijPXsapFuc0Fj07U0+tWSA+Xk
+U8nNRZ7GnAdqBEvnSsuwu2PTJx+VOE8mzys8Diq3qKePWgY7dTs5ph9aTPFAEyzO
+FxkkccH26VZ+1O8quxyRWeOuacDzSsB2KXQOU9CfyqS0nEm1QehK/lXLQyupJzkd
+639JBbLntuP5n/6xqWijcooopAFFFFAH/9HoapidRvLnGDVusfUYiFMy9+DWJoYu
+oPmdZBwSM/nVAsScnrUs8hkbmq+01oiBevSjZ3pMEc07LUwGEUmakwTQUNADCc0A
+4p2w04RMe1AWGGm1Y8lvSk8lvSlcLEGaUU8xkdaZimBNGecnvXWaRg25I45x+Vce
+DitXTLsQzjeflKkH+Y/LmkxnZUUxHV1DqQQehHSn1AwooopiP//S3jVO8YJbuxPA
+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
+pD0=
+=h3zk
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub rsa4096 2020-02-25 [SC]
+ 8740208C0E93FEC80EEBF913B77C52EEC21771DD
+uid [ full ] philsmart (gpg key)
+sub rsa4096 2020-02-25 [E]
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=Xrom
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub dsa1024 2007-01-30 [SCA] [expires: 2021-03-20]
+ F4FCEFBF07F9E397A9345B9D4D37705B61CB0B3F
+uid [ full ] Brent Putman
+sig 3 4D37705B61CB0B3F 2021-03-19 Brent Putman
+sig EF40FC29EA2882BB 2012-04-25 Ian A. Young
+sig 57C5CCD598A1618C 2012-04-25 Rod Widdowson (RDW4096)
+sig 9A804E97D7079C77 2012-04-25 Ian A. Young
+sig 378B845402277962 2012-04-27 Scott Cantor
+sig A0B3CB09D2B37353 2012-05-06 Chad La Joie
+sig 49A1796B9B494CB8 2021-03-19 Brent Putman
+sub elg2048 2007-01-30 [E] [expires: 2021-03-20]
+sig 4D37705B61CB0B3F 2021-03-19 Brent Putman
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=UXmh
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub rsa4096 2021-03-19 [SC]
+ 0E0CA56D354132B5E646C25F49A1796B9B494CB8
+uid [ultimate] Brent Putman
+sig 3 49A1796B9B494CB8 2021-03-19 Brent Putman
+sig 4D37705B61CB0B3F 2021-03-19 Brent Putman
+sub rsa4096 2021-03-19 [E]
+sig 49A1796B9B494CB8 2021-03-19 Brent Putman
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=FpHm
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub 4096R/2A4B3FF0 2019-09-18
+uid Rod Widdowson
+sub 4096R/441D628D 2019-09-18
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+HEdQFQ==
+=/gwj
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub 4096R/02277962 2011-09-22
+uid Scott Cantor
+sig 3 02277962 2011-09-22 Scott Cantor
+sig 3 30A2362E 2011-09-23 Brian Swaney
+sig 47905D15 2011-09-26 Scott Cantor (Internet2)
+sig EA2882BB 2011-09-28 Ian A. Young
+sig A9D7AF55 2011-09-24 Michael Craft
+sig D7079C77 2011-09-28 Ian A. Young
+sig D2B37353 2011-10-11 Chad La Joie
+sub 4096R/5B94AC0C 2011-09-22
+sig 02277962 2011-09-22 Scott Cantor
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.11 (Darwin)
+
+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
+=ShRP
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub 4096R/07CEEB8B 2012-10-29
+uid Tom Zeller
+sig 3 07CEEB8B 2012-10-29 Tom Zeller
+sig 3C9895A6 2012-10-29 Tom Zeller
+sub 4096R/86D072E7 2012-10-29
+sig 07CEEB8B 2012-10-29 Tom Zeller
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.12 (Darwin)
+
+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
+KA==
+=aCf0
+-----END PGP PUBLIC KEY BLOCK-----
+
diff --git a/src/test/docker/shibboleth-idp/keys/TOMCAT_PGP_KEYS b/src/test/docker/shibboleth-idp/keys/TOMCAT_PGP_KEYS
new file mode 100644
index 0000000..6b7231f
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/keys/TOMCAT_PGP_KEYS
@@ -0,0 +1,562 @@
+This file contains the PGP&GPG keys of various Apache developers.
+Please don't use them for email unless you have to. Their main
+purpose is code signing.
+
+Apache users: pgp < KEYS
+Apache developers:
+ (pgpk -ll && pgpk -xa ) >> this file.
+ or
+ (gpg --fingerprint --list-sigs
+ && gpg --armor --export ) >> this file.
+
+Apache developers: please ensure that your key is also available via the
+PGP keyservers (such as pgpkeys.mit.edu).
+
+
+pub 4096R/2F6059E7 2009-09-18
+ Key fingerprint = A9C5 DF4D 22E9 9998 D987 5A51 10C0 1C5A 2F60 59E7
+uid Mark E D Thomas
+sub 4096R/5E763BEC 2009-09-18
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Comment: GPGTools - http://gpgtools.org
+
+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
+c3EtcnwlXI07qk8nmCl1XudlS5KHeJ5axWLEDNJCvEuJGy4moaFllwmTUtxDzRK/
+zG6QSJEPfH8VZiEl6HBpgzlBB5aToxc+Wy7UpGzwaNrA6KvwSaB+jSxrZYtHbwBq
+2U3ttmamynBF1izPuOeJAn4EEAECAGgFAksM3mcgHFNhbmRlciBUZW1tZSA8c2Fu
+ZGVyQHRlbW1lLm5ldD4iHFNhbmRlciBUZW1tZSA8c2N0ZW1tZUBhcGFjaGUub3Jn
+Ph0cU2FuZGVyIFRlbW1lIDxzYW5kZXJAbWUuY29tPgAKCRCbuGOw9Ru4igbUD/9+
++F4uqkO+F6g1QNiyFM47K1NaFLga/lNp72mOOIlZMORXpBJGeL9DhbDvN5KIQqR4
+I5wCONGtzeU8P7M+uLapFZmofROABlACUeVhOPx8fOCeNz9xU4f33dKJJnAsIfis
+SMMyJR9Xz/IbNWvM6Kb7hU+L86G2cZPD8uvZ7oHyY4wZWtjTHM0ne/usodJffxIj
+oQFhn0vAC8hBNWStI8UUih+n+iqvvXA2cB9v3Ni3VjQOGLKSZ5Ke2jpKdYTl5zST
+frHfjgjGvIdkWz0hbVMzL+urU9oIChBK6Nr3DxY/XvO8PmFGh7V+M9C/gahLCrNz
+fD3vKGi7OYkp6dODPnREpOSZ7elGO5mGQnSosqzrLb7kw/vEobBbxsYDwxxl+ONZ
+8yxUaBpvRIrwqNEwb1YxlMCLnpRs7TJxxitq+zF7F0MxB5sqdLHSNqxcfbxpTflz
+Tn/H9h34aF7f4Qkn276XKIomhge4su7jxHNH/G9gTk6oicdalBFRMFwBRpaOivno
+FmSGa1Yt7C1mBBQkRXjw52ZRx8MHKnccNNgpk5Xc7+VT9nqmoulq1JfzLsrtu4D1
+TaleWOVN4X4FYk3S2VWxLV5dhmuCy7hP0ZsXOTBjLXC5wMxJcp7I3IlIx39a6U7O
+vhWbguPxyXR3AjBUsMRfO0pGZKXxDI3N+yHOWAtDcokCkwQQAQIAfQUCTNK0KDUc
+SmltIEphZ2llbHNraSAoUmVsZWFzZSBTaWduaW5nIEtleSkgPGppbUBhcGFjaGUu
+b3JnPiAcSmltIEphZ2llbHNraSA8amltQGphZ3VORVQuY29tPh8cSmltIEphZ2ll
+bHNraSA8amltQGppbWphZy5jb20+AAoJEDTqduZ5FIWo/wEP/immECQXMIMQ9zj7
+4RU2R6YV7Slzc3YATfjwOgOwzQ3qF+UTSHui7eiYoHOwRK0OTKW6fe7bh9/XeWLB
+sglUl+RNuvCNHAQNg9/p7x9mJL05e3OnGpVLVnq/yQezCWo1GWIPxodwmoyI2C3S
+iUapfKN1q0Ml6nwZOyHsgNCFYDVhmtEnIcK7/PXLpeYTpTBuXETZZQY++XyZDiVI
+le2W3uxrY0k8zVPvGSXGIh2iHtAuCrJoNKY+webEe5QVNoAYnNyu5de+50gpQOr+
+wYsvuf7S1MAPAX2L48U/JvpBfDikZR8qujvCDAAe0bnom/Ov/eWtnONi4hpsD4T3
+kcElxWOph3mEm1YUksGmoWE0FvE6o7r04XF+VrIA/YwcgC5wGgGmYFU4DR384hMZ
+1EMAsd8cKdYBja/PA4BTcA6Vc0uJVFaB8o117m7r7sHKRsD7CHbbKcK8ZtRNDQa3
+SzTMqLhsRDRl5wp9Bwq6l++BKPpvEnpbs8SdW+TxrxpM/0aIhQ6ZS5RKJvhZK3Ap
+3cgYBVW23CwPtVc+40/t8XqBRRlzbLdfWhEC+FU4f9RHS+DQRFSxl/xXeLtDBH75
+1WbhkRIRTktQxapEDuRFfd02Oeo356/r0TYUQHL4bwYEbTBm+HO1KJn64BCaUMOU
+pW881K8SHQaHMr1iiQUpvMkTcofRiQKpBBABAgCTBQJM0uOxIBxTYW5kZXIgVGVt
+bWUgPHNhbmRlckB0ZW1tZS5uZXQ+IhxTYW5kZXIgVGVtbWUgPHNjdGVtbWVAYXBh
+Y2hlLm9yZz4dHFNhbmRlciBUZW1tZSA8c2FuZGVyQG1lLmNvbT4qHFNhbmRlciBU
+ZW1tZSA8c2N0ZW1tZUBrZXlzaW50aGVjbG91ZC5jb20+AAoJEJu4Y7D1G7iKG0YP
+/3AweZFnchITlhDdEkozl8M89VZGTBqfU6Rg7mNxL/HDnJRtBBGXmSQ5NLygX+kS
+PKci3KRbjbeVEmEcWs/ZfzxN4gR+6y8ohUOaA0UDrZYctYkzG1d7HbkcM1lmvtde
+Gelj1j/+eu4LRu5h9oczkqRnWV5xnqz7xsEH9Rrcgm39RpNzFf43Joo25iqdVGk4
+yBVjoHQsnD1qZwdZQ0EHxYozNkGfa6j7VXAzCYVstfRMPGKrYH/xRg2jNy750z/p
+apgT3GXbpvcB9Z3gj2LRn+FKLxoH2WLf2DabdzyZz9KXfnG4ZeOd2BrFXexKT2MQ
+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
+yZUcTCEB33B2jQ9z0XUEp+6B2F5iZQ==
+=4AB7
+-----END PGP PUBLIC KEY BLOCK-----
+pub rsa4096 2012-05-08 [SCEA]
+ 5C3C 5F3E 314C 8662 92F3 59A8 F3AD 5C94 A67F 707E
+uid [ultimate] Christopher Schultz
+uid [ultimate] Christopher Schultz
+uid [ultimate] Christopher Schultz
+uid [ultimate] Christopher Schultz
+sub rsa4096 2012-05-08 [SEA]
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+NwUqv9cUGhf+Di0nAX1diWxfd7DdEi8=
+=6zfV
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/access-control.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/access-control.xml
new file mode 100644
index 0000000..4b1a63e
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/access-control.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attribute-filter.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attribute-filter.xml
new file mode 100644
index 0000000..4c53130
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attribute-filter.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attribute-resolver.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attribute-resolver.xml
new file mode 100644
index 0000000..25ba1ce
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attribute-resolver.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attributes/default-rules.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attributes/default-rules.xml
new file mode 100644
index 0000000..298b976
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attributes/default-rules.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attributes/oidc-claim-rules.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attributes/oidc-claim-rules.xml
new file mode 100644
index 0000000..9de853b
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/attributes/oidc-claim-rules.xml
@@ -0,0 +1,428 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ displayName
+ OIDCStringTranscoder
+ name
+ Display name
+ Anzeigename
+ Nom
+ Nome
+ 表示名
+ The name that should appear in white-pages-like applications for this person.
+ Anzeigename
+ Nom complet d'affichage
+ Nome
+ アプリケーションでの表示に用いられる英字氏名
+
+
+
+
+
+
+
+ givenName
+ OIDCStringTranscoder
+ given_name
+ Given name
+ Vorname
+ Prénom
+ Nome
+ 名
+ Given name of a person
+ Vorname
+ Prénom de l'utilisateur
+ Nome
+ 氏名(名)の英語表記
+
+
+
+
+
+
+
+ homePhone
+ OIDCStringTranscoder
+ phone_number
+ Private phone number
+ Telefon Privat
+ Teléphone personnel
+ Numero di telefono privato
+ 自宅電話番号
+ Private phone number
+ Private Telefonnummer
+ Numéro de téléphone de domicile de la personne
+ Numero di telefono privato
+ 自宅の電話番号
+
+
+
+
+
+
+
+ mail
+ OIDCStringTranscoder
+ email
+ E-mail
+ E-Mail
+ Email
+ E-mail
+ メールアドレス
+ E-Mail: Preferred address for e-mail to be sent to this person
+ E-Mail-Adresse
+ E-Mail Adresse
+ Adresse de courrier électronique
+ E-Mail: l'indirizzo e-mail preferito dall'utente
+ メールアドレス
+
+
+
+
+
+
+
+ preferredLanguage
+ OIDCStringTranscoder
+ locale
+ Preferred Language
+ Bevorzugte Sprache
+ Langue préférée
+ Lingua preferita
+ 希望言語
+ Preferred language: Users preferred language (see RFC1766)
+ Bevorzugte Sprache (siehe RFC1766)
+ Exemple: fr, de, it, en, ... (voir RFC1766)
+ Lingua preferita: la lingua preferita dall'utente (cfr. RFC1766)
+ 利用者が希望する言語(RFC1766 を参照)
+
+
+
+
+
+
+
+ sn
+ OIDCStringTranscoder
+ family_name
+ Surname
+ Nachname
+ Nom de famille
+ Cognome
+ 姓
+ Surname or family name
+ Familienname
+ Nom de famille de l'utilisateur.
+ Cognome dell'utilizzatore
+ 氏名(姓)の英語表記
+
+
+
+
+
+
+
+ telephoneNumber
+ OIDCStringTranscoder
+ phone_number
+ Business phone number
+ Telefon Geschäft
+ Teléphone professionnel
+ Numero di telefono dell'ufficio
+ 所属機関内電話番号
+ Business phone number: Office or campus phone number
+ Telefonnummer am Arbeitsplatz
+ Teléphone de l'institut, de l'université
+ Numero di telefono dell'ufficio
+ 所属機関での利用者の電話番号
+
+
+
+
+
+
+
+ uid
+ OIDCStringTranscoder
+ preferred_username
+ User ID
+ Benutzer-ID
+ ID utilisateur
+ ID dell'utente
+ ユーザID
+ A unique identifier for a person, mainly used for user identification within the user's home organization.
+ Eine eindeutige Nummer für eine Person, welche hauptsächlich zur Identifikation innerhalb der Organisation benutzt wird.
+ Identifiant de connexion d'une personnes sur les systèmes informatiques.
+ Identificativo unico della persona, usato per l'identificazione dell'utente all'interno della organizzazione di appartenenza.
+ 所属機関内で一意の利用者識別子
+
+
+
+
+
+
+
+
+
+ eduPersonNickname
+ OIDCStringTranscoder
+ nickname
+ Nickname
+ Kurzname
+ Übername
+ Surnom
+ Diminutivo
+ ニックネーム
+ Person's nickname, or the informal name by which they are accustomed to be hailed.
+ Kurzname einer Person, oder üblicher Rufname zur Begrüßung.
+ Übername einer Person, oder üblicher Rufname zur Begrüssung.
+ Nom personnalisable pour un usage informel.
+ Diminutivo della persona, o soprannome.
+ 利用者のニックネームもしくは通称
+
+
+
+
+
+
+
+
+
+ eduPersonAssurance
+ OIDCStringTranscoder
+ eduPersonAssurance
+ Assurance level
+ Vertrauensgrad
+ Niveau de confiance
+ Livello di sicurezza
+ 保証レベル
+ Set of URIs that assert compliance with specific standards for identity assurance.
+ URIs die eine gewisse Zusicherung für spezifische Standards des Vertrauens beinhalten
+ Un ensemble d'URI qui attestent la conformité selon un standard pour les niveaux d'assurance d'identités
+ Un insieme di URI che asseriscono l'osservanza dei livelli di sicurezza richiesti
+ IDの保証レベルに関して特定の基準に準拠していることを示すURI
+
+
+
+
+
+
+
+ eduPersonEntitlement
+ OIDCStringTranscoder
+ eduPersonEntitlement
+ Entitlement
+ Berechtigung
+ Entitlement
+ Prerogativa
+ 資格情報
+ Member of: URI (either URL or URN) that indicates a set of rights to specific resources based on an agreement across the releavant community
+ Zeichenkette, die Rechte für spezifische Ressourcen beschreibt
+ Membre de: URI (soit une URL ou une URN) décrivant un droit spécific d'accès.
+ Membro delle seguenti URI (sia URL o URN) che rappresentano diritti specifici d'accesso validi in tutta la communità
+ 特定のアプリケーションもしくはコミュニティ内の複数リソースへのアクセス権限を持つことを示すURI(URLもしくはURN)
+
+
+
+
+
+
+
+ eduPersonPrincipalName
+ OIDCScopedStringTranscoder
+ eduPersonPrincipalName
+ Principal name
+ Persönliche ID
+ Principal Name
+ Principal Name
+ プリンシパルID
+ A unique identifier for a person, mainly for inter-institutional user identification.
+ Eindeutige Benutzeridentifikation
+ Eindeutige Benützeridentifikation
+ L'identifiant unique de l'utilisateur
+ Un ID personale che identifica chiaramente l'utente in seno alla sua organizzazione
+ フェデレーション内で一意かつ永続的な利用者識別子
+
+
+
+
+
+
+
+ eduPersonScopedAffiliation
+ OIDCScopedStringTranscoder
+ eduPersonScopedAffiliation
+ Scoped affiliation
+ Zugehörigkeit
+ Affiliation
+ Tipo di membro
+ スコープ付き職位
+ Specifies the person's affiliation within a particular security domain
+ Art der Zugehörigkeit zur Heimatorganisation
+ Art der Zugehörigkeit zur Heimorganisation
+ Type d'affiliation dans l'organisation
+ Tipo di membro: Tipo di lavoro svolto per l'organizzazione
+ セキュリティドメインのスコープが付いた所属機関における職位
+
+
+
+
+
+
+
+
+
+ address
+ OIDCStringTranscoder
+ true
+ address
+ Postal address
+
+
+
+
+
+
+
+ birthdate
+ OIDCStringTranscoder
+ birthdate
+ Date of birth
+
+
+
+
+
+
+
+ email_verified
+ OIDCStringTranscoder
+ email_verified
+ true
+ E-mail verification status
+ Indicates whether e-mail address has been verified by the issuer
+
+
+
+
+
+
+
+ gender
+ OIDCStringTranscoder
+ gender
+ Gender
+
+
+
+
+
+
+
+ middle_name
+ OIDCStringTranscoder
+ middle_name
+ Middle name
+
+
+
+
+
+
+
+ phone_number_verified
+ OIDCStringTranscoder
+ phone_number_verified
+ true
+ Phone number verification status
+ Indicates whether phone number has been verified by the issuer
+
+
+
+
+
+
+
+ picture
+ OIDCStringTranscoder
+ picture
+ Picture
+ URL of personal photo
+
+
+
+
+
+
+
+ profile
+ OIDCStringTranscoder
+ profile
+ Profile page
+ URL of personal profile page
+
+
+
+
+
+
+
+ website
+ OIDCStringTranscoder
+ website
+ Web site
+ URL to personal web site
+
+
+
+
+
+
+
+ updated_at
+ OIDCStringTranscoder
+ updated_at
+ true
+ Last update of information
+
+
+
+
+
+
+
+ zoneinfo
+ OIDCStringTranscoder
+ zoneinfo
+ Time zone
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/authn/oauth2client-authn-config.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/authn/oauth2client-authn-config.xml
new file mode 100644
index 0000000..e00b9c8
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/authn/oauth2client-authn-config.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/cas-protocol.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/cas-protocol.xml
new file mode 100644
index 0000000..bb0e9d0
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/cas-protocol.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/credentials.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/credentials.xml
new file mode 100644
index 0000000..68dc9b8
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/credentials.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/idp.properties b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/idp.properties
new file mode 100644
index 0000000..3b47302
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/idp.properties
@@ -0,0 +1,259 @@
+# Set false if you do not want the IdP to check (asynchronously) whether
+# it can be updated or not when the container starts
+#idp.updateCheck.enable=true
+
+# Auto-load all files matching conf/**/*.properties
+# Disable if you want to manually maintain a list of sources.
+idp.searchForProperties=true
+
+# Load any "outside-tree" property sources from a comma-delimited list
+idp.additionalProperties=/credentials/secrets.properties
+
+# In most cases (and unless noted in the surrounding comments) the
+# commented settings in the distributed files document default behavior.
+# Uncomment them and change the value to change functionality.
+#
+# Uncommented properties are either required or ship non-defaulted.
+
+# Set the entityID of the IdP
+idp.entityID=https://idp.unicon.local/idp/shibboleth
+
+# Set the file path which backs the IdP's own metadata publishing endpoint at /shibboleth.
+# Set to empty value to disable and return a 404.
+#idp.entityID.metadataFile=%{idp.home}/metadata/idp-metadata.xml
+
+# Set the scope used in the attribute resolver for scoped attributes
+idp.scope=unicon.local
+
+# General cookie properties (maxAge only applies to persistent cookies)
+#idp.cookie.secure = true
+#idp.cookie.httpOnly = true
+#idp.cookie.domain =
+# Note the path is now / to allow defaulting to __Host- prefixed names.
+#idp.cookie.path = /
+#idp.cookie.maxAge = 31536000
+# These control operation of the SameSite filter, which is off by default.
+#idp.cookie.sameSite = None
+#idp.cookie.sameSiteCondition = shibboleth.Conditions.FALSE
+
+# Enable cross-site request forgery mitigation for views.
+idp.csrf.enabled=true
+# Name of the HTTP parameter that stores the CSRF token.
+#idp.csrf.token.parameter = csrf_token
+
+# HSTS/CSP response headers
+#idp.hsts = max-age=31536000
+# X-Frame-Options value, set to DENY or SAMEORIGIN to block framing
+#idp.frameoptions = DENY
+# Content-Security-Policy value, set to match X-Frame-Options default
+#idp.csp = frame-ancestors 'none';
+
+# Set to false to disable filter that forcibly applies UTF-8 encoding
+#idp.encoding.forceUTF8 = true
+
+# Enable and control MDC filter
+#idp.logging.MDC.enabled = true
+#idp.logging.MDC.createSession = true
+
+# Set the location of user-supplied web flow definitions
+#idp.webflows = %{idp.home}/flows
+
+# Set the location of Velocity view templates
+#idp.views = %{idp.home}/views
+
+# Do we fail on velocity "syntax errors"
+#idp.velocity.runtime.strictmode=false
+
+# Settings for internal AES encryption key
+#idp.sealer.keyStrategy = shibboleth.DataSealerKeyStrategy
+#idp.sealer.storeType = JCEKS
+#idp.sealer.updateInterval = PT15M
+#idp.sealer.aliasBase = secret
+idp.sealer.storeResource=%{idp.home}/credentials/sealer.jks
+idp.sealer.versionResource=%{idp.home}/credentials/sealer.kver
+
+# Settings for public/private signing and encryption key(s):
+# During decryption key rollover, point the ".2" properties at a second
+# keypair, uncomment in credentials.xml, then publish it in your metadata.
+idp.signing.key=%{idp.home}/credentials/idp-signing.key
+idp.signing.cert=%{idp.home}/credentials/idp-signing.crt
+idp.encryption.key=%{idp.home}/credentials/idp-encryption.key
+idp.encryption.cert=%{idp.home}/credentials/idp-encryption.crt
+#idp.encryption.key.2 = %{idp.home}/credentials/idp-encryption-old.key
+#idp.encryption.cert.2 = %{idp.home}/credentials/idp-encryption-old.crt
+
+# Sets the bean ID to use as a default security configuration set
+#idp.security.config = shibboleth.DefaultSecurityConfiguration
+
+# To downgrade to SHA-1, set to shibboleth.SigningConfiguration.SHA1
+#idp.signing.config = shibboleth.SigningConfiguration.SHA256
+
+# The new install default for encryption is now AES-GCM.
+idp.encryption.config=shibboleth.EncryptionConfiguration.GCM
+
+# Sets the default strategy for key agreement key wrap usage for credentials from metadata,
+# if not otherwise configured on the security configuration
+#idp.encryption.keyagreement.metadata.defaultUseKeyWrap = Default
+
+# Configures trust evaluation of keys used by services at runtime
+# Internal default is Chaining, overriden for new installs
+idp.trust.signatures=shibboleth.ExplicitKeySignatureTrustEngine
+# Other options:
+# shibboleth.ChainingSignatureTrustEngine, shibboleth.PKIXSignatureTrustEngine
+idp.trust.certificates=shibboleth.ExplicitKeyX509TrustEngine
+# Other options:
+# shibboleth.ChainingX509TrustEngine, shibboleth.PKIXX509TrustEngine
+
+# If true, encryption will happen whenever a key to use can be located, but
+# failure to encrypt won't result in request failure.
+idp.encryption.optional = true
+
+# Configuration of client- and server-side storage plugins
+#idp.storage.cleanupInterval = PT10M
+idp.storage.htmlLocalStorage=true
+#idp.storage.clientSessionStorageName = shib_idp_session_ss
+#idp.storage.clientPersistentStorageName = shib_idp_persistent_ss
+
+# Set to true to expose more detailed errors in responses to SPs
+#idp.errors.detailed = false
+# Set to false to skip signing of SAML response messages that signal errors
+#idp.errors.signed = true
+# Name of bean containing a list of Java exception classes to ignore
+#idp.errors.excludedExceptions = ExceptionClassListBean
+# Name of bean containing a property set mapping exception names to views
+#idp.errors.exceptionMappings = ExceptionToViewPropertyBean
+# Set if a different default view name for events and exceptions is needed
+#idp.errors.defaultView = error
+
+# Set to false to disable the IdP session layer
+#idp.session.enabled = true
+
+# Set to true to rely on persistent cookies for session management
+#idp.session.persistent = false
+
+# Set to "shibboleth.StorageService" for server-side storage of user sessions
+#idp.session.StorageService = shibboleth.ClientSessionStorageService
+
+# Name of cookie used for session
+#idp.session.cookieName = __Host-shib_idp_session
+# Size of session IDs
+#idp.session.idSize = 32
+# Bind sessions to IP addresses
+#idp.session.consistentAddress = true
+# Inactivity timeout
+#idp.session.timeout = PT60M
+# Extra time to store sessions for logout
+#idp.session.slop = PT0S
+# Tolerate storage-related errors
+#idp.session.maskStorageFailure = false
+# Track information about SPs logged into
+idp.session.trackSPSessions=true
+# Support lookup by SP for SAML logout
+idp.session.secondaryServiceIndex=true
+# Length of time to track SP sessions
+#idp.session.defaultSPlifetime = PT2H
+
+# Set to "shibboleth.StorageService" or custom bean for alternate storage of consent
+#idp.consent.StorageService = shibboleth.ClientPersistentStorageService
+
+# Default consent auditing formats
+#idp.consent.terms-of-use.auditFormat = %T|%SP|%e|%u|%CCI|%CCV|%CCA
+#idp.consent.attribute-release.auditFormat = %T|%SP|%e|%u|%CCI|%CCV|%CCA
+
+# Set to "shibboleth.consent.AttributeConsentStorageKey" to use an attribute
+# to key user consent storage records (and set the attribute name)
+#idp.consent.attribute-release.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey
+#idp.consent.attribute-release.userStorageKeyAttribute = uid
+#idp.consent.terms-of-use.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey
+#idp.consent.terms-of-use.userStorageKeyAttribute = uid
+
+# Suffix of message property used as value of consent storage records when idp.consent.compareValues is true.
+# Defaults to text displayed to the user.
+#idp.consent.terms-of-use.consentValueMessageCodeSuffix = .text
+
+# Flags controlling how built-in attribute consent feature operates
+#idp.consent.allowDoNotRemember = true
+#idp.consent.allowGlobal = true
+#idp.consent.allowPerAttribute = false
+
+# Whether attribute values and terms of use text are compared
+#idp.consent.compareValues = false
+# Maximum number of consent records for space-limited storage (e.g. cookies)
+#idp.consent.maxStoredRecords = 10
+# Maximum number of consent records for larger/server-side storage (0 = no limit)
+#idp.consent.expandedMaxStoredRecords = 0
+
+# Time in milliseconds to expire consent storage records.
+# Leave commented out for the default of infinite
+#idp.consent.storageRecordLifetime =
+
+# Path to use with External interceptor flow
+#idp.intercept.External.externalPath = contextRelative:intercept.jsp
+
+# Policies to use with Impersonate interceptor flow
+#idp.impersonate.generalPolicy = GeneralImpersonationPolicy
+#idp.impersonate.specificPolicy = SpecificImpersonationPolicy
+
+# Picks outbound bindings more sensibly than based on metadata order
+idp.bindings.inMetadataOrder=false
+
+# Whether to lookup metadata, etc. for every SP involved in a logout
+# for use by user interface logic; adds overhead so off by default.
+#idp.logout.elaboration = false
+
+# Whether to require logout requests/responses be signed/authenticated.
+#idp.logout.authenticated = true
+
+# Whether to handle logout lacking response endpoonts as asynchronous.
+#idp.logout.assumeAsync = false
+
+# Whether to hide logout propagation status reporting.
+#idp.logout.propagationHidden = false
+
+# Bean to determine whether user should be allowed to cancel logout
+#idp.logout.promptUser=shibboleth.Conditions.FALSE
+
+# Message freshness and replay cache tuning
+#idp.policy.messageLifetime = PT3M
+#idp.policy.assertionLifetime = PT3M
+#idp.policy.clockSkew = PT3M
+
+# Set to custom bean for alternate storage of replay cache
+#idp.replayCache.StorageService = shibboleth.StorageService
+#idp.replayCache.strict = true
+
+# Toggles whether to allow outbound messages via SAML artifact
+#idp.artifact.enabled = true
+# Suppresses typical signing/encryption when artifact binding used
+#idp.artifact.secureChannel = true
+# May differ to direct SAML 2 artifact lookups to specific server nodes
+#idp.artifact.endpointIndex = 2
+# Set to custom bean for alternate storage of artifact map state
+#idp.artifact.StorageService = shibboleth.StorageService
+
+# Comma-delimited languages to use if not match can be found with the
+# browser-supported languages, defaults to an empty list.
+idp.ui.fallbackLanguages=en,fr,de
+
+# Storage service used by CAS protocol for chained proxy-granting tickets
+# and when using server-managed "simple" TicketService.
+# Defaults to shibboleth.StorageService (in-memory)
+# MUST be server-side storage (e.g. in-memory, memcached, database)
+#idp.cas.StorageService=shibboleth.StorageService
+
+# CAS service registry implementation class
+#idp.cas.serviceRegistryClass=net.shibboleth.idp.cas.service.PatternServiceRegistry
+
+# If true, CAS services provisioned with SAML metadata are identified via entityID
+#idp.cas.relyingPartyIdFromMetadata=false
+
+# F-TICKS auditing - set a salt to include hashed username
+#idp.fticks.federation = MyFederation
+#idp.fticks.condition = MyFTICKSCondition
+#idp.fticks.algorithm = SHA-256
+#idp.fticks.salt = somethingsecret
+#idp.fticks.loghost = localhost
+#idp.fticks.logport = 514
+
+# Set false if you want SAML bindings "spelled out" in audit log
+idp.audit.shortenBindings=true
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/ldap.properties b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/ldap.properties
new file mode 100644
index 0000000..97e20b5
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/ldap.properties
@@ -0,0 +1,70 @@
+# LDAP authentication (and possibly attribute resolver) configuration
+# Note, this doesn't apply to the use of JAAS authentication via LDAP
+
+## Authenticator strategy, either anonSearchAuthenticator, bindSearchAuthenticator, directAuthenticator, adAuthenticator
+idp.authn.LDAP.authenticator = bindSearchAuthenticator
+
+## Connection properties ##
+idp.authn.LDAP.ldapURL = ldap://directory
+idp.authn.LDAP.useStartTLS = false
+# Time to wait for startTLS responses
+#idp.authn.LDAP.startTLSTimeout = PT3S
+# Time to wait for connections to open
+#idp.authn.LDAP.connectTimeout = PT3S
+# Time to wait for operation responses (e.g. search, bind)
+#idp.authn.LDAP.responseTimeout = PT3S
+# Connection strategy to use when multiple URLs are supplied, either ACTIVE_PASSIVE, ROUND_ROBIN, RANDOM
+#idp.authn.LDAP.connectionStrategy = ACTIVE_PASSIVE
+
+## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust
+#idp.authn.LDAP.sslConfig = certificateTrust
+## If using certificateTrust above, set to the trusted certificate's path
+#idp.authn.LDAP.trustCertificates = %{idp.home}/credentials/ldap-server.crt
+## If using keyStoreTrust above, set to the truststore path
+#idp.authn.LDAP.trustStore = %{idp.home}/credentials/ldap-server.truststore
+
+## Return attributes during authentication
+idp.authn.LDAP.returnAttributes = passwordExpirationTime,loginGraceRemaining
+
+## DN resolution properties ##
+
+# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator
+# for AD: CN=Users,DC=example,DC=org
+idp.authn.LDAP.baseDN = dc=unicon,dc=local
+idp.authn.LDAP.subtreeSearch = true
+idp.authn.LDAP.userFilter = (uid={user})
+# bind search configuration
+# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com
+idp.authn.LDAP.bindDN = cn=admin,dc=unicon,dc=local
+
+# Format DN resolution, used by directAuthenticator, adAuthenticator
+# for AD use idp.authn.LDAP.dnFormat=%s@domain.com
+idp.authn.LDAP.dnFormat = uid=%s,dc=unicon,dc=local
+
+# pool passivator, either none, bind or anonymousBind
+#idp.authn.LDAP.bindPoolPassivator = none
+
+# LDAP attribute configuration, see attribute-resolver.xml
+# Note, this likely won't apply to the use of legacy V2 resolver configurations
+idp.attribute.resolver.LDAP.ldapURL = %{idp.authn.LDAP.ldapURL}
+idp.attribute.resolver.LDAP.connectTimeout = %{idp.authn.LDAP.connectTimeout:PT3S}
+idp.attribute.resolver.LDAP.responseTimeout = %{idp.authn.LDAP.responseTimeout:PT3S}
+idp.attribute.resolver.LDAP.connectionStrategy = %{idp.authn.LDAP.connectionStrategy:ACTIVE_PASSIVE}
+idp.attribute.resolver.LDAP.baseDN = %{idp.authn.LDAP.baseDN:undefined}
+idp.attribute.resolver.LDAP.bindDN = %{idp.authn.LDAP.bindDN:undefined}
+idp.attribute.resolver.LDAP.useStartTLS = %{idp.authn.LDAP.useStartTLS:true}
+idp.attribute.resolver.LDAP.startTLSTimeout = %{idp.authn.LDAP.startTLSTimeout:PT3S}
+idp.attribute.resolver.LDAP.trustCertificates = %{idp.authn.LDAP.trustCertificates:undefined}
+idp.attribute.resolver.LDAP.searchFilter = (uid=$resolutionContext.principal)
+
+# LDAP pool configuration, used for both authn and DN resolution
+#idp.pool.LDAP.minSize = 3
+#idp.pool.LDAP.maxSize = 10
+#idp.pool.LDAP.validateOnCheckout = false
+#idp.pool.LDAP.validatePeriodically = true
+#idp.pool.LDAP.validatePeriod = PT5M
+#idp.pool.LDAP.validateDN =
+#idp.pool.LDAP.validateFilter = (objectClass=*)
+#idp.pool.LDAP.prunePeriod = PT5M
+#idp.pool.LDAP.idleTime = PT10M
+#idp.pool.LDAP.blockWaitTime = PT3S
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/metadata-providers.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/metadata-providers.xml
new file mode 100644
index 0000000..433a2b0
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/metadata-providers.xml
@@ -0,0 +1,23 @@
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-clientinfo-resolvers.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-clientinfo-resolvers.xml
new file mode 100644
index 0000000..8f8fce6
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-clientinfo-resolvers.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-credentials.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-credentials.xml
new file mode 100644
index 0000000..b08896c
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-credentials.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-unregistered-client-policy.json b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-unregistered-client-policy.json
new file mode 100644
index 0000000..9e04402
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc-unregistered-client-policy.json
@@ -0,0 +1,14 @@
+{
+ "client_id": {
+ "one_of": ["policyAcceptedClientID1", "policyAcceptedClientID2"]
+ },
+ "scope": {
+ "value": "openid"
+ },
+ "redirect_uri": {
+ "regexp": "^https:\/\/(?:([^.]+).)?example.org\/(.*)"
+ },
+ "response_type": {
+ "one_of": ["code"]
+ }
+}
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc.properties b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc.properties
new file mode 100644
index 0000000..2bbb40a
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/oidc.properties
@@ -0,0 +1,181 @@
+# Set the Open ID Connect Issuer value
+idp.oidc.issuer = https://idp.unicon.local
+
+#Dynamic registration properties
+# The validity of registration before a new one is required.
+#idp.oidc.dynreg.defaultRegistrationValidity = PT24H
+# The validity of client secret registered
+#idp.oidc.dynreg.defaultSecretExpiration = P12M
+# The default scopes accepted in dynamic registration
+#idp.oidc.dynreg.defaultScope = openid profile email address phone offline_access
+# The default subject type if not set by client in request. Maybe set to pairwise or public.
+#idp.oidc.dynreg.defaultSubjectType = public
+# The acceptable client authentication methods when using dynamic registration
+#idp.oidc.dynreg.tokenEndpointAuthMethods = client_secret_basic,client_secret_post,client_secret_jwt,private_key_jwt
+# Regardless of what signing algorithms are configured, allow none for request object signing
+#idp.oidc.dynreg.allowNoneForRequestSigning = true
+# Bean to determine whether dynamic registration should validate the remote JWK set if it's defined in the request
+#idp.oidc.dynreg.validateRemoteJwks = shibboleth.Conditions.TRUE
+# Full path to the file containing default metadata policy used for dynamic client registration
+#idp.oidc.dynreg.defaultMetadataPolicyFile =
+# Bean to determine the default metadata policy used for dynamic client registration
+#idp.oidc.dynreg.defaultMetadataPolicy = shibboleth.oidc.dynreg.DefaultMetadataPolicy
+
+# Storage for storing remote jwk sets.
+#idp.oidc.jwk.StorageService = shibboleth.StorageService
+
+#Authorization/Token endpoint properties
+# The acceptable client authentication methods
+#idp.oidc.tokenEndpointAuthMethods = client_secret_basic,client_secret_post,client_secret_jwt,private_key_jwt
+
+# Set to true to enforce use of request objects
+#idp.oidc.requestobject.used = false
+
+# Set to false to allow unsigned request objects
+#idp.oidc.requestobject.signed = true
+
+# Set to true to enforce encryption of request objects
+#idp.oidc.requestobject.encrypted = false
+
+# Default lifetime of OIDC tokens (issued to the client or against the OP itself)
+#idp.oidc.authorizeCode.defaultLifetime = PT5M
+#idp.oidc.accessToken.defaultLifetime = PT10M
+#idp.oidc.refreshToken.defaultTimeout = PT2H
+#idp.oidc.refreshToken.defaultChainLifetime = PT2H
+
+#idp.oidc.idToken.defaultLifetime = PT1H
+
+# Lifetime of entries in revocation cache for authorize code
+#idp.oidc.revocationCache.authorizeCode.lifetime = PT6H
+# Storage for revocation cache. Requires server-side storage
+#idp.oidc.revocationCache.StorageService = shibboleth.StorageService
+
+# Signing keys for id tokens / userinfo response
+idp.signing.oidc.rs.key = %{idp.home}/credentials/idp-signing-rs.jwk
+idp.signing.oidc.es.key = %{idp.home}/credentials/idp-signing-es.jwk
+# Request object decryption key
+idp.signing.oidc.rsa.enc.key = %{idp.home}/credentials/idp-encryption-rsa.jwk
+
+# Set false to preclude issuing unencrypted ID/UserInfo tokens without specific overrides
+#idp.oidc.encryptionOptional = true
+
+#PKCE/AppAuth related properties
+#idp.oidc.forcePKCE = false
+#idp.oidc.allowPKCEPlain = false
+
+# Store user consent to authorization code & access/refresh tokens instead of exploiting consent storage
+#idp.oidc.encodeConsentInTokens = false
+
+# The location for the policy JSON file for unregistered clients (when no client metadata is registered
+# and shibboleth.UnverifiedRelyingParty is enabled
+# Related to OIDC.SSO, OAUTH2.Token, OIDC.UserInfo, OAUTH2.Introspection, OAUTH2.Revocation configurations
+#idp.oidc.DefaultUnregisteredClientPolicyFile = %{idp.home}/conf/oidc-unregistered-client-policy.json
+
+# shibboleth.ClientInformationResolverService properties
+#idp.service.clientinfo.failFast = false
+#idp.service.clientinfo.checkInterval = PT0S
+#idp.service.clientinfo.resources = shibboleth.ClientInformationResolverResources
+
+# Special claim handling rules
+# "Encoded" attributes are encrypted and embedded into the access token
+#idp.oidc.encodedAttributes =
+# "Always included" attributes are forced into ID tokens for all response_types
+#idp.oidc.alwaysIncludedAttributes =
+# "Denied" attributes are omitted from the UserInfo token
+#idp.oidc.deniedUserInfoAttributes =
+
+# The source attribute used in generating the sub claim
+idp.oidc.subject.sourceAttribute = uid
+
+# The digest algorithm used in generating the sub claim
+#idp.oidc.subject.algorithm = SHA
+
+# The salt used in generating the subject
+# Do *NOT* share the salt with other people, it's like divulging your private key.
+# It is suggested you move this property into credentials/secrets.properties
+idp.oidc.subject.salt = this_too_should_be_ch4ng3d
+
+# Bean to determine whether SAML metadata should be exploited for trusted OIDC RP resolution
+#idp.oidc.metadata.saml = shibboleth.Conditions.TRUE
+
+# Upgrade interval to the remote JWKs
+#idp.oidc.jwksuri.fetchInterval = PT30M
+
+# Bounds on the next file refresh of the OP configuration resource
+#idp.oidc.config.minRefreshDelay = PT5M
+#idp.oidc.config.maxRefreshDelay = PT4H
+
+# Bean used for extracting login_hint from the authentication request. The default function parses login_hint as is.
+#idp.oidc.LoginHintLookupStrategy = DefaultRequestLoginHintLookupFunction
+
+# Bean used for generating session identifiers, stored as sid claim in the id_token and claims sets.
+#idp.oidc.SessionIdentifierGenerationStrategy = shibboleth.DefaultIdentifierGenerationStrategy
+
+# Bean used for creating SPSessions needed for SLO. By default builds protocol-independent BasicSPSession, as SLO is not yet supported.
+#idp.oidc.SPSessionCreationStrategy = DefaultSPSessionCreationStrategy
+
+# Set to true to hide protocol-scheme, IP-address and port for endpointURI in PROTOCOL_MESSAGE.OAUTH2 logging. Defaults to false.
+#idp.oidc.logging.removeIpAddressFromProtocolMessage = true
+
+# Settings for issue-registration-access-token flow
+#idp.oidc.admin.registration.logging = IssueRegistrationAccessToken
+#idp.oidc.admin.registration.nonBrowserSupported = true
+#idp.oidc.admin.registration.authenticated = false
+#idp.oidc.admin.registration.resolveAttributes = false
+#idp.oidc.admin.registration.lookup.policy = shibboleth.oidc.admin.DefaultMetadataPolicyLookupStrategy
+#idp.oidc.admin.registration.defaultTokenLifetime = P1D
+#idp.oidc.admin.registration.accessPolicy = AccessByIPAddress
+#idp.oidc.admin.registration.policyLocationPolicy = AccessByAdmin
+#idp.oidc.admin.registration.policyIdPolicy = AccessByAdmin
+#idp.oidc.admin.registration.clientIdPolicy = AccessByAdmin
+
+# Settings for the configuration flow
+# Flow is available at /oidc/configuration, usually it should be wired from /.well-known/openid-configuration
+#idp.oidc.discovery.template = %{idp.home}/static/openid-configuration.json
+#idp.oidc.discovery.resolver = shibboleth.oidc.DefaultOpenIdConfigurationResolver
+#idp.oidc.discovery.resolver.values = shibboleth.oidc.discovery.DefaultDynamicValueResolvers
+
+#
+# OAuth2 Settings - these typically involve generic OAuth 2.0 use cases
+#
+# Defaults to always requiring OIDC authentication request as inbound message in the authorization endpoint.
+# Set to 'shibboleth.Conditions.FALSE' to always allow plain OAuth2 authorization requests
+#idp.oauth2.requireAuthenticationRequestPredicate =
+# Default predicate exploits the configuration property above to control whether or not to require OIDC authentication request.
+#idp.oauth2.authorizationRequestTypeValidationStrategy =
+
+# Supported grant_type values for token requests
+#idp.oauth2.grantTypes = authorization_code,refresh_token
+
+# Default handling of generic OAuth tokens (for use against arbitrary resource servers)
+#idp.oauth2.accessToken.defaultLifetime = PT10M
+# Set to JWT if desired as a default.
+#idp.oauth2.accessToken.type =
+
+# Set false to preclude issuing unencrypted JWT access tokens without specific overrides
+#idp.oauth2.encryptionOptional = true
+
+# Default scope/audience values if you allow unverified clients without metadata.
+#idp.oauth2.defaultAllowedScope =
+#idp.oauth2.defaultAllowedAudience =
+
+# Regular expression matching OAuth login flows to enable.
+# For most deployments, the default is sufficient to accomodate a variety of methods
+#idp.oauth2.authn.flows = OAuth2Client
+
+# Set true to enforce refresh token rotation (defaults to false)
+#idp.oauth2.enforceRefreshTokenRotation = true
+
+# Set to false to disable id_token issuance via refresh_tokens (defaults to true)
+#idp.oidc.issueIdTokenViaRefreshToken = false
+
+# Revocation method: set to TOKEN to revoke single tokens (defaults to full chain (value = CHAIN))
+#idp.oauth2.revocationMethod = TOKEN
+
+# Bean used to validate audience claim in the JWT authentication.
+#idp.oauth2.jwtAuth.audienceValidator = DefaultAuthenticationAudienceClaimsValidator
+# The default pattern also accepts token endpoint URL as the audience in introspection and revocation endpoints.
+#idp.oauth2.jwtAuth.audienceValidator.endpointTargets = /profile/oauth2/introspection,/profile/oauth2/revocation
+
+# Bean to determine whether refresh token is issuance is activated
+#idp.oauth2.refreshToken.activation = DefaultRefreshTokenActivationCondition
\ No newline at end of file
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/relying-party.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/relying-party.xml
new file mode 100644
index 0000000..517228c
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/conf/relying-party.xml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption-rsa.jwk b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption-rsa.jwk
new file mode 100644
index 0000000..1c9c7bc
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption-rsa.jwk
@@ -0,0 +1,13 @@
+{
+ "p": "753E_KQTGxFLmi5sC_SBaBbCDSxv0NS0PfE-D_Bt0VlI0TsDGMKUG86zorZ9SUZvPSkhHAD-s1dVEess0vlvWpnnuoHhoOmgxnt-bXFDJnY73jbKzuhsse01dayxBTGyvIw0bmB3r9m8vOSIsnqw574QzUxib6IOVKJPTO5ZYIk",
+ "kty": "RSA",
+ "q": "09spyNixYMB5XEYVcQR_8hE46pirVX18Srg3EjSalClI0hO-OH8_wPhiCKvWEQYq_RIU-XrtgWGA4H5LdFHjO6W4OiqZTMc1n4VJPMf7eUG2q4Z3I7BOaUFOfYql7adnrSUSiSfPRnUNhuBKuYZR2bVXPIFZTmWQrxEydbOdIcU",
+ "d": "BA6HYzQ7OMBfgXsG6CPVOFiPAj7OG7kXa4W2ZaDDVAsHpZcm2BVhZLsUrkKqZ1PGnjhza1zfJ76m3-xNKEs09ZEtzYiVyjyWkAzBhxODGnFXcR-D_nG44y4tiYpwQNh3EInWmXOW3eO2QxUjhi20lKtQscEgZpIq6Un3va9xUMNoNtVjz_5nYhnD9quwGHzuaQX61pJ9k4BO-fXl426OcYvnog5z_yKV-H-qKPZc849Wr0o14ghfFIFDQNzDl5xt-qAZChgENdVsFf1TWyyu5NsceswvKBBeP5FLncVUKjOKzbgyWYfygJyy6jk7TYMg7khouYjoNhLRM8n-gEt7mQ",
+ "e": "AQAB",
+ "use": "enc",
+ "kid": "defaultRSAEnc",
+ "qi": "TEWxxitP_JUOWJzrSD-r90ZmzqJm5cWETK1ecHCLFhpUsCIm36Ns8DbOQMTFzpYY20wgBLscZI0ZYx4Bx0PqlbJRXasKb4mj5JxQgCKpx541BAw4oDDbzbNJgagaS8JIxrjn7atLTcYH7DFWallJ94Kfu7pisTRlaWVziAwq8TQ",
+ "dp": "OCUDjx7yyxjWWh4eev6jg7wxY9zRpmDwisMIA7wWP0NoaH4nT5noEkvwk2OnH5A9aFtGwsUI6QTBjh1It3ZyvQvq3CyqrYWQgnFVQleToGN7y6mTA8A6F8a5DAWWxNzMQJmpf2NjJ_Ug4DG8RfWxldtXHIOVXQrfyLzvT9tZXeE",
+ "dq": "KazHP3dBDWNPfFNdDGpyMNAqfhuiOKMCvEAYtUAb2GF2rbysgrildfRmdIY5CghIlJfmAF2qMvVXQNIXTb5-ENG8t9SBa5UUe1jg21ALrAK9SGifLyoTgqkSI6gOk_2Ga40LZGesYpPMIWglyvEdUNJXYtOfGcjo-UdMwdKfanE",
+ "n": "xkwscAH9nChWRqc9d1WPqsyoXqtvLdDFKkUzF9mc9i_2MI4kCWYZgu5GCzxqWd7coMhqgf0jrg0Br1zDcXBeFtftCtB4cqKLmhmZuIBYNGbkvKN3FwBlwFWtXZpJR2edSSiNilKkM9rLyXfhs5K80Esbpsw82ff6KwiM2I8DPNC8Z-lPUoQdNeWgF1tmMG4en2QZuBbt_iempJCNRqzRaNvaAQMbDDCVPWWDBmS2LGOqesYJT3uS-Ve9EZgPnKqUKKGobj6-4eLXf7Bjh2S6pfPX3PwOPAkFTpnxajbPoDIK2KiAbjkgIm96mdhX9EzgXagZcyiTfqDtw3zZ7z3ybQ"
+}
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption.crt b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption.crt
new file mode 100644
index 0000000..5587059
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIJAJ2AOdYo1M8xMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
+BAMMEGlkcC51bmljb24ubG9jYWwwHhcNMjAwNTI3MTgxMDE0WhcNMjUwNTI2MTgx
+MDE0WjAbMRkwFwYDVQQDDBBpZHAudW5pY29uLmxvY2FsMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAp3MXVm6QP7qEhSQ16mIDjFAoUuBeqD7hzFlh4neY
+9N1rlU3Ut+qUWQWPeuJtjl3c3RMR9Uctbaw9H7wrI0pn8YBRAOhJg3Xu4mwpQfMl
+R4/QnE+Wno/S0khksfWtBU8B5DqR7UzhwjjRjJPfHCcKP+GXxVkfKNzNjf8VodVG
+e0Nn81cJP3PbYYgMkax4jEKUcZ/6YZzc1UY53Vnjbi4nqQU7pDUhfAtusi7rRXFm
+tB5z6qiwTM79aeW0SExYF1up6/06ImIU5RQY3f1ouonSUVSgmXc2/lGXQJdFJe7C
+9ELkOUmzgLacGQ8OUA6Xy5lbz0xiTHqc8h+1v4/PTYRJVQIDAQABo2cwZTBEBgNV
+HREEPTA7ghBpZHAudW5pY29uLmxvY2FshidodHRwczovL2lkcC51bmljb24ubG9j
+YWwvaWRwL3NoaWJib2xldGgwHQYDVR0OBBYEFCMykG71ww3BiwZl9Mv9QyqjyJTL
+MA0GCSqGSIb3DQEBCwUAA4IBAQA83eXZlUb9mPl9a9cgUdTaVvGLQ+mZj1AB5gS4
+GxOsDiUi648LDEjiCjhbvB9SM4j3n2mQ0G+hPk15Mv18EKOJkV8ft0N7JmZz6D+f
+JVUO39ynWVKGnMM1H/93IltgzYwOHnfIoWcrErqCRjXxjHQgweZ6yCoYSLxHjVI/
+KsYkds46PY5Hrs7cnnFMehylmVnCqopUUwFBn6/XgQtj/ESkz8L/zJc0zuxJbCLB
+rs3HcGkhBFOn77YBwQMsAKooiA07QLeqQYtYo+JcTD+t57eE40qNaMkioY06QlFr
+gduIdTOHEVXbEPawoSgdYlg8qOG1dPyuKrhZu+Cbyq7bs8cG
+-----END CERTIFICATE-----
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption.key b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption.key
new file mode 100644
index 0000000..e188b6b
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-encryption.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCncxdWbpA/uoSF
+JDXqYgOMUChS4F6oPuHMWWHid5j03WuVTdS36pRZBY964m2OXdzdExH1Ry1trD0f
+vCsjSmfxgFEA6EmDde7ibClB8yVHj9CcT5aej9LSSGSx9a0FTwHkOpHtTOHCONGM
+k98cJwo/4ZfFWR8o3M2N/xWh1UZ7Q2fzVwk/c9thiAyRrHiMQpRxn/phnNzVRjnd
+WeNuLiepBTukNSF8C26yLutFcWa0HnPqqLBMzv1p5bRITFgXW6nr/ToiYhTlFBjd
+/Wi6idJRVKCZdzb+UZdAl0Ul7sL0QuQ5SbOAtpwZDw5QDpfLmVvPTGJMepzyH7W/
+j89NhElVAgMBAAECggEAHPLWvAiNQ5c5RdNGxuh++Ij7D6jedHO6kZt6Qq6ucNa+
+vKch+VHCp8lATtxKWGx9vHKJjj/p6KX4Qz5Cru00Hxox5thBrUp8LATK9S3V6hNA
+22UfAvaWWehOED4K1XodN5mwlLfP58Xu5EDEN5fAO98CYAnSSzwxBTVuRfYbIz/y
+ZtbBnsrq+PSG1acPjlftbzRlSlVxSWmITCnNAH3zO5ugAnrbbvA2HPXQe042Xe25
+x0NS83zP/KK198THlzV+UeW1S08gyzWdF2sE+6UYL4Dp6weuPv4EafRRYWUgV0z8
+z8IE3PwPb8LdNgdP8v0Zhoz5lSC5Y3WL6YwbgRro2QKBgQDRdl7FLszcvr/yuHA4
+DFRnK6DrR1fqRnK7xlLTWgOIh27lC8wY/qRPP+7mVwOvECKasBE1sxRoURG/DDAa
+QNVqJWszBOwHlIRvwMhbze9JXO5D6M3hWLZu+ZbWn+dGdVeBlyTX2y95V32ZzaUv
+CNVjQ3FNF7U/6ZvqaCGeroZ/2wKBgQDMpyaexWYypvNOoExyoO46IH4fFVO7raCG
+aWgDgmhyifTLIysgCdDAs7tPPkNhxt5BgSc5Awa9MVmpK2scttJnjnGwsHQyaGmD
+fi6UTDkzN1ijL/hXtd5SnuynVWTDkdLvYfSr8t8zevmYddZRKjnzIaYG7IFueO0C
+oQtKfMX6jwKBgDYMlFHPTL+dXQx1uUdNLy5cHK75ft8OBKcdetvcu1Ksl9n0nFrK
+wn1Mowm+5E11HWjLC/XOWvK8EJc6vuLXXfqA41OL7pfaI/5uQYUm85r7puPRG+cN
+LC4gq2KAan5M4yKmbLRic7Kc9+ULIpercNynV4IsHvH6BuiKrDo1ELHHAoGAE/EN
+sFbn2HOwLa8tA9ZuoDdeUsUPPbBzfeVzfzQL3W1X7xtkLmEGeGCLFfOpOTPZoGRn
+YATNeU3/wJ48d7XQ1spohaEMEYVfErMO8uBiin0QJAaeml1cZoyZ3sxRX0UsWqse
+3kpyOV/4RkTlN094ChrzRKVzD0K1RZZPtVhnKj0CgYAPqNvfgj1YB9Ejc0wM6zGx
+iElOKPAwmmUqr2odFs5YVmICp2sIi/OSIjL4WTzQ2PBtBaU8NVVFjchmrpYWQQNe
+D7k8ZaGBjRivTnswS+xTdIKbsY9VchFXhGkFFUBswHWCLG7myvgNd/0JTvZtkK3C
+4Bohg2T1ArE7WMcY4QgXNw==
+-----END PRIVATE KEY-----
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing-es.jwk b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing-es.jwk
new file mode 100644
index 0000000..0b24ded
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing-es.jwk
@@ -0,0 +1,9 @@
+{
+ "kty": "EC",
+ "d": "DUmUBbXdZBOeN31oNyWv6m4GVVzlyCySUq3cdGGfV_4",
+ "use": "sig",
+ "crv": "P-256",
+ "kid": "defaultECSign",
+ "x": "oI7eupWZ_1HXInWYJKAmaVzVxwu0peweRwWW17FaVfQ",
+ "y": "CumVJjt53vqWjNs2iDIQOYL7-_cWIY8Yc9kQel_9GWw"
+}
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing-rs.jwk b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing-rs.jwk
new file mode 100644
index 0000000..fe432c8
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing-rs.jwk
@@ -0,0 +1,13 @@
+{
+ "p": "4-Acy7bcgdF_kMHgLSPkB2Ku5eHOm8ikFh3kjYUID7sWzAL7NWoDsL0Fnz72ij4I46Si4-wKSKEESubK-urfE6-tPiB12Vcy08oi-E_3g-0u-Mv9RQDDgRGkDnr5AEaq5c7_YbGjvPLIL17R6UiJxzQNrI6Bkp3PG24PNSNYmd0",
+ "kty": "RSA",
+ "q": "yvTcAisAtjhnrIZfjfEFZu4V7G2BccACGP3JUDFFWWbcksrA406XW3R12C99341Ph-ZLGmsMn-y_mVTNmY2sKIUNv4muCHWEMvHg_sZj9TgmPXAqp4wkZEu_I5-tioiOGUXbkTadvfCMxWUDyMkSi3IUzffe2_Hl4gant91oEIc",
+ "d": "FlqsqLxzc9eTvbMxBdJczf07BTrwd-d17wgnA3QejDcSDbaWZfU0toVhIKTs7Mx9YBivETKFEG8W9cMotb_RKeO7eZjgLbME-o6P1-4vxhnT4xD_IzIj-pH-i8NyCQGDslXRg6vgKY-aE6Sj20ZdI-etqGnDIEYVe2t3otGXUhvH8JKe49bAzvYFsa4xB7uNshjxwbxxKT2cj5xE2N0nXv4ZC2YlYrPW5fjSWTXfjzOSfj1mbr-1gv_ha7ewwGYzpTH3SKoh5UpbCTQ6rGVLIb6K-b3EUwtAvaDtHfFwKRrTEiEybW3-sq3YU_f7IIWH6tSgax2WW04f4TZw3PG1wQ",
+ "e": "AQAB",
+ "use": "sig",
+ "kid": "defaultRSASign",
+ "qi": "P7pq4fxk2McYCLwXxcJbRz2ZcwJiec3KlskvmVKEinBFSwhncaoNarGCuuLz5nM60J_kJyJFitzjhfDvX98WpyiVTojGskTiK1ouIB6XF0fHmdz7pQwNY3oHpCNIfDSikMC4S142q7Vz9ErO3qY0DIM97DSm0MN-XmWQ5RDQVCM",
+ "dp": "FXQSAfPTSr2Ifv5htp48Z52Yzbe2leAL4rEpxVES8zgv60EUmXDDrC3_i4CIAXfZqmTjmQWt6iyOlOapkXnvSpEthD3WGoIlHN9Y73vH17nKxE2gKJDr1wjsIxjcvHPqvvv_-xiYS7-nrR4GMSpNHl3-M5KvDDijOPfhoqUTQFk",
+ "dq": "rii8eqfILpXscSHF8Zm31wHLklzNzXzE0AlHrSb6qaMY-GZAa05Pl80yKtdmHmW2r5mxLPRbmwifycX5wCDQcNzsVUaiLuQZE1Z4imhX8l_CgMo18BzURbSySrGFS_GuboWByvShHBLF2cW7H5tb7IlyzOQ9O2Qyrmijl6XI3RU",
+ "n": "tKjMKrc62mG5HcRbtQQKHPBftZomeiWlSZl832-a_bxuQx0sQVsAdFKSf_sKaK8VshHSAumNb6xjJvWY55qGfm3GgMTKlUXfQrNNEFp8udeSIKYT_986EQZu4ddauKQNbCN6culOttZxv8_qck5jJ6JFCGZk1MSqGMecGuSfujuUyds9NSF4MrHuJBa8MdjZkw_drMhxDIZgsDQxuGLM750VhxRt21PhJhvYTk3MMiW2GgmAHNxIhgWxlYnSGHVOlLUnwUA_j6XyjwnlbbzxKQFuObzzZRLy3KPvT7lsamG0UKz15Pxpe8MT-EpYLWln9Wj1QV40lmoq-lgIeB7ziw"
+}
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing.crt b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing.crt
new file mode 100644
index 0000000..1e8cc50
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIJAN45D3DbemrtMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
+BAMMEGlkcC51bmljb24ubG9jYWwwHhcNMjAwNTI3MTgxMDE0WhcNMjUwNTI2MTgx
+MDE0WjAbMRkwFwYDVQQDDBBpZHAudW5pY29uLmxvY2FsMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAoDNLPFL/47cSWKbfb89lVz3EsIlb4z8lZbZUNyzF
+m3my5mioe9b6xrS8QF16l1ALb8SEwQzECPKuyRp1LQ5Rj79Ba38TDl+4BezjC7Ui
+f9OwzXIYfcetEFZ85tjufIl3ryVbY2kQ1TRypqk72pF1uDLEnqXrnystRxi4x22f
+wTu+KkTy0tL/5oV2tjJY0vtO3YAsjNpqqI6WqcbjewtJVIrG4OuOF3r9CPCU7hOY
+fc4BtvSQhOgryJM+dF9PmpvALJO8LrMBsNdAO3gz37+mA1F/tD7WYP2XLvrHh+Wd
+c0QJ/f8AzCJm5QV4lA/UH/0tKMQS178ti7+4Jyw38iHkYQIDAQABo2cwZTBEBgNV
+HREEPTA7ghBpZHAudW5pY29uLmxvY2FshidodHRwczovL2lkcC51bmljb24ubG9j
+YWwvaWRwL3NoaWJib2xldGgwHQYDVR0OBBYEFGFkPVcsjWlZDfUk1+SifxhP1l7I
+MA0GCSqGSIb3DQEBCwUAA4IBAQBZUq9P9A9DsypasD6WcHNP/EyP5spKRRu2CTWm
+Y645kOjg7qMIasHVwA5jSPU7ozgPRV6MpdjCJVWYjUpeSCwXx6YAEKFLZ9WXV26i
+e1GFTP1lJqlpnJZqs1RBgvF7q/JxFvxSl8UpjoxNufBANC14T6T3EMQ9EvWLTdCM
+cEuXxkwzpeEkh5MtCoicgQ1yvay2QGQBbfCauPAASd957+S7brRON4R2gPonCf18
+5rzh7Do7kFBc6pqAHCYGTUz7uY11EPktIC6AIlZmXV1J0wBCP6SoiZDFjwZsj6m6
+S1N5qGtWDOT5vZiT1nF+mNd990c8qjVcyQST42VyXCBnJ7DR
+-----END CERTIFICATE-----
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing.key b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing.key
new file mode 100644
index 0000000..3e93b9f
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/idp-signing.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCgM0s8Uv/jtxJY
+pt9vz2VXPcSwiVvjPyVltlQ3LMWbebLmaKh71vrGtLxAXXqXUAtvxITBDMQI8q7J
+GnUtDlGPv0FrfxMOX7gF7OMLtSJ/07DNchh9x60QVnzm2O58iXevJVtjaRDVNHKm
+qTvakXW4MsSepeufKy1HGLjHbZ/BO74qRPLS0v/mhXa2MljS+07dgCyM2mqojpap
+xuN7C0lUisbg644Xev0I8JTuE5h9zgG29JCE6CvIkz50X0+am8Ask7wuswGw10A7
+eDPfv6YDUX+0PtZg/Zcu+seH5Z1zRAn9/wDMImblBXiUD9Qf/S0oxBLXvy2Lv7gn
+LDfyIeRhAgMBAAECggEASJM0UF3ho036t8LRkpvIc19+TePMhwTCcnPJbz2PQEI/
+8/YR7hiUf5S9fANdWFNg+v9yjOq1nMAkwuKDlyfXd2HTx1lITsi6W6TXryQePv6u
+KES6J7FgC/jCmOpKEI1OdUBdSIn+oDgkgLBGd1xSkmIdhSnxtqge2QiwHVjieO1a
+O4zR2lI4eywWJJWWYxgftDNTWwtL94vmfi33up95kAXk8hxIZtMJ0MnNxTrCr1sh
+i3yF/JETK0VzbI/eJecIXKtGZO0X01boWoeMSAZXJGkK/d0SGSSeISfADgFn4VxA
+aktuq6byui0dSVuT8arA0lC2n4W8p8BVceKrEvH36QKBgQDR7h7m9WckQ9HqTIdH
+ITdBNkevrId0GOdC8MRVvEMJQDBtVomdmmSVS4taQFdZ9yUqMw5PY2o6D7qI3KoK
+DyzyPJalNzMoOvSR5Xieg9IjBEdYrz8PZr4aFUc0+fTR0C1mPiLMVyO0IftJOQzR
+aCHJc+JIO6cYMirTKMjxdNVC5wKBgQDDW1pNrcGBmviEQAqdUfdZlFz26jv3jdgT
+81QAgTUq0ieSkbxMTtd0ugk0r48HaRGl+4+agGYHIx8LjuKEHGrezjWF4k9VSsjD
+vd1y6FSBVZKiKEOrrVRpuBi4bSDXM6anR6ovvWRjUoS24PrKdGgEYo8cib4QTTVh
+088rDmN9dwKBgBANJ/m629cPBHbowRM0O/hVgSeyhmzfFpestyZjDbEgYlOJ4V3W
+l0g/DXmqH8O2PPY8DyUM0et8lmOuk6XPQT2IWnBphxTVZSveotlj9OZOhnIGfEje
+LzzpUZeAYTLFuyLtL1X2d7lnO8J+hTdhweuYW73wKbeU5mdc3/huWXwTAoGAL4t2
+KN2W8MIUpasoai1es7CGB5nuSkt9QS3BTfYkSG2pL+TEHRY7Ha+BOg9YEgeiQfE9
+e+6v5iDIF3oI6vo3kE5DfHgdsrZmsiztTl/44RlAfLKr9YZTuv8RFSGKEpYBg0jP
+xJqlaf7VSeTrZIZ8IkUSa3GijjkcOtjf3Ky9zfUCgYB6Hk6Ixb2ksM2tdLFFm+/x
+w+pzI6kaK5KW0kaNax2WwyzrvF0W3pQwVeFwPVgeWjdL0F4pXtHc4HGKwTNMEJfO
+4B5Gi5unIrff9gCNpkwMlfLSTmvvhthzs8dNGTGjWzAuGqug2xQlPCWLK/c0mZSq
+55MS3HX0pv+LFsKGr9+nZQ==
+-----END PRIVATE KEY-----
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/inc-md-cert-mdq.pem b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/inc-md-cert-mdq.pem
new file mode 100644
index 0000000..178dcf8
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/inc-md-cert-mdq.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEvjCCAyagAwIBAgIJANpi9/mkU/zoMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNV
+BAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRYwFAYDVQQK
+DA1JbnRlcm5ldDIuZWR1MREwDwYDVQQLDAhJbkNvbW1vbjEZMBcGA1UEAwwQbWRx
+LmluY29tbW9uLm9yZzAeFw0xODExMTMxNDI5NDNaFw0zODExMTAxNDI5NDNaMHQx
+CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRYw
+FAYDVQQKDA1JbnRlcm5ldDIuZWR1MREwDwYDVQQLDAhJbkNvbW1vbjEZMBcGA1UE
+AwwQbWRxLmluY29tbW9uLm9yZzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoC
+ggGBAJ0+fUTzYVSP6ZOutOEhNdp3WPCPOYqnB4sQFz7IeGbFL1o0lZjx5Izm4Yho
+4wNDd0h486iSkHxNf5dDhCqgz7ZRSmbusOl98SYn70PrUQj/Nzs3w47dPg9Tpb/x
+y44PvNLS/rE56hPgCz/fbHoTTiJt5eosysa1ZebQ3LEyW3jGm+LGtLbdIfkynKVQ
+vpp1FVeCamzdeB3ZRICAvqTYQKE1JQDGlWrEsSW0VVEGNjfbzMzr/g4l8JRdMabQ
+Jig8tj3UIXnu7A2CKSMJSy3WZ3HX+85oHEbL+EV4PtpQz765c69tUIdNTJax9jQ2
+1c3wL0K27HE8jSRlrXImD50R3dXQBKH+iiynBWxRPdyMBa1YfK+zZEWPbLHshSTc
+9hkylQv3awmPR/+Plz5AtTpe5yss/Ifyp01wz1jt42R+6jDE+WbUjp5XDBCAjGEE
+0FPaYtxjZLkmNl367bdTN12OIn/ixPNH+Z/S/4skdBB9Gc4lb2fEBywJQY0OYNOd
+WOxmPwIDAQABo1MwUTAdBgNVHQ4EFgQUMHZuwMaYSJM5mlu3Wc4Ts5xq4/swHwYD
+VR0jBBgwFoAUMHZuwMaYSJM5mlu3Wc4Ts5xq4/swDwYDVR0TAQH/BAUwAwEB/zAN
+BgkqhkiG9w0BAQsFAAOCAYEAMr4wfLrSoPTzfpXtvL+2vrKBJNnRfuJpOYTbPKUc
+DOP2QfzRlczi7suYJvd5rLiRonq8rjyPUyM8gvTfbTps+JhJ6S9mS6dTBxOV1qPZ
+3Ab+XKmq8LUtguGRabKgJgmJH0+inR/wVoal7EVHcWXfij9AT8DZOXW88shc6grh
+jUaFZBu/2+q8c8ee0e4ip8B+CVEnCwDKI0d+nTcSmPvAE34CNa33F+QGpXawv5yv
+VvIpSaLAeFQhc/jKcnNHfy+Zi7JmSnKZiMvQCbWANQmDjHg7pGmBW9nyQcm6P2/B
+0AVcEj1YTpAR8Mbh1pUdIhoB+chaNnFEIZsXeRsdbbAFpxodInlJ7WekfuvSQ6sU
+EXpoyBGOeuuTmR1va8k3QeL8Wc4yNu/g5LwjmtvPrh2jBF8xujc4J6VzP8K2BjA4
+xk4LnXgjHOT93dBAJhVYJkykDHwyvHUvsBHoP6lfjrt5P8zunK2mdP/AZKik+Rdt
+1GGlErV2AyWShTOaDLW6NxdP
+-----END CERTIFICATE-----
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/sealer.jks b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/sealer.jks
new file mode 100644
index 0000000..fe7529f
Binary files /dev/null and b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/sealer.jks differ
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/sealer.kver b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/sealer.kver
new file mode 100644
index 0000000..81a9ede
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/sealer.kver
@@ -0,0 +1,2 @@
+#Thu Feb 06 17:19:55 UTC 2020
+CurrentVersion=1
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/secrets.properties b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/secrets.properties
new file mode 100644
index 0000000..e196330
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/credentials/secrets.properties
@@ -0,0 +1,14 @@
+# This is a reserved spot for most properties containing passwords or other secrets.
+# Created by install at Wed May 27 18:10:14 UTC 2020
+
+# Access to internal AES encryption key
+idp.sealer.storePassword = e1ef1671-661c-43d6-be51-ae9888fa3879
+idp.sealer.keyPassword = e1ef1671-661c-43d6-be51-ae9888fa3879
+
+# Default access to LDAP authn and attribute stores.
+idp.authn.LDAP.bindDNCredential = admin
+idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential:undefined}
+
+# Salt used to generate persistent/pairwise IDs, must be kept secret
+#idp.persistentId.salt = changethistosomethingrandom
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/edit-webapp/index.jsp b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/edit-webapp/index.jsp
new file mode 100644
index 0000000..087cee2
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/edit-webapp/index.jsp
@@ -0,0 +1,31 @@
+<%@ page pageEncoding="UTF-8" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
+
+
+
+
+
+ ">
+
+
+
+
+
+
+
" alt="">
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/metadata/idp-metadata.xml b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/metadata/idp-metadata.xml
new file mode 100644
index 0000000..d9f0a40
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/metadata/idp-metadata.xml
@@ -0,0 +1,36 @@
+
+
+
+ unicon.local
+
+
+
+
+
+MIIDIDCCAgigAwIBAgIJAN45D3DbemrtMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
+BAMMEGlkcC51bmljb24ubG9jYWwwHhcNMjAwNTI3MTgxMDE0WhcNMjUwNTI2MTgx
+MDE0WjAbMRkwFwYDVQQDDBBpZHAudW5pY29uLmxvY2FsMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAoDNLPFL/47cSWKbfb89lVz3EsIlb4z8lZbZUNyzF
+m3my5mioe9b6xrS8QF16l1ALb8SEwQzECPKuyRp1LQ5Rj79Ba38TDl+4BezjC7Ui
+f9OwzXIYfcetEFZ85tjufIl3ryVbY2kQ1TRypqk72pF1uDLEnqXrnystRxi4x22f
+wTu+KkTy0tL/5oV2tjJY0vtO3YAsjNpqqI6WqcbjewtJVIrG4OuOF3r9CPCU7hOY
+fc4BtvSQhOgryJM+dF9PmpvALJO8LrMBsNdAO3gz37+mA1F/tD7WYP2XLvrHh+Wd
+c0QJ/f8AzCJm5QV4lA/UH/0tKMQS178ti7+4Jyw38iHkYQIDAQABo2cwZTBEBgNV
+HREEPTA7ghBpZHAudW5pY29uLmxvY2FshidodHRwczovL2lkcC51bmljb24ubG9j
+YWwvaWRwL3NoaWJib2xldGgwHQYDVR0OBBYEFGFkPVcsjWlZDfUk1+SifxhP1l7I
+MA0GCSqGSIb3DQEBCwUAA4IBAQBZUq9P9A9DsypasD6WcHNP/EyP5spKRRu2CTWm
+Y645kOjg7qMIasHVwA5jSPU7ozgPRV6MpdjCJVWYjUpeSCwXx6YAEKFLZ9WXV26i
+e1GFTP1lJqlpnJZqs1RBgvF7q/JxFvxSl8UpjoxNufBANC14T6T3EMQ9EvWLTdCM
+cEuXxkwzpeEkh5MtCoicgQ1yvay2QGQBbfCauPAASd957+S7brRON4R2gPonCf18
+5rzh7Do7kFBc6pqAHCYGTUz7uY11EPktIC6AIlZmXV1J0wBCP6SoiZDFjwZsj6m6
+S1N5qGtWDOT5vZiT1nF+mNd990c8qjVcyQST42VyXCBnJ7DR
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/metadata/oidc-grouper.json b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/metadata/oidc-grouper.json
new file mode 100644
index 0000000..bddd6ea
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/metadata/oidc-grouper.json
@@ -0,0 +1,7 @@
+{
+ "client_id": "grouper",
+ "client_secret": "thisisverysecret",
+ "response_types": ["code"],
+ "scope": "openid info profile email address phone",
+ "redirect_uris": ["https://grouper-ui.unicon.local/grouper/callback?client_name=client"]
+}
\ No newline at end of file
diff --git a/src/test/docker/shibboleth-idp/opt-shibboleth-idp/static/openid-configuration.json b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/static/openid-configuration.json
new file mode 100644
index 0000000..d33b4e7
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/opt-shibboleth-idp/static/openid-configuration.json
@@ -0,0 +1,139 @@
+{
+ "issuer":"https://idp.unicon.local",
+ "authorization_endpoint":"https://idp.unicon.local/idp/profile/oidc/authorize",
+ "registration_endpoint":"https://idp.unicon.local/idp/profile/oidc/register",
+ "token_endpoint":"https://idp.unicon.local/idp/profile/oidc/token",
+ "userinfo_endpoint":"https://idp.unicon.local/idp/profile/oidc/userinfo",
+ "introspection_endpoint":"https://idp.unicon.local/idp/profile/oauth2/introspection",
+ "revocation_endpoint":"https://idp.unicon.local/idp/profile/oauth2/revocation",
+ "jwks_uri":"https://idp.unicon.local/idp/profile/oidc/keyset",
+ "response_types_supported":[
+ "code",
+ "id_token",
+ "token id_token",
+ "code id_token",
+ "code token",
+ "code token id_token"
+ ],
+ "subject_types_supported":[
+ "public",
+ "pairwise"
+ ],
+ "grant_types_supported":[
+ "authorization_code",
+ "implicit",
+ "refresh_token"
+ ],
+ "id_token_encryption_alg_values_supported":[
+ "RSA1_5",
+ "RSA-OAEP",
+ "RSA-OAEP-256",
+ "A128KW",
+ "A192KW",
+ "A256KW",
+ "A128GCMKW",
+ "A192GCMKW",
+ "A256GCMKW"
+ ],
+ "id_token_encryption_enc_values_supported":[
+ "A128CBC-HS256"
+ ],
+ "id_token_signing_alg_values_supported":[
+ "RS256",
+ "RS384",
+ "RS512",
+ "HS256",
+ "HS384",
+ "HS512",
+ "ES256"
+ ],
+ "userinfo_encryption_alg_values_supported":[
+ "RSA1_5",
+ "RSA-OAEP",
+ "RSA-OAEP-256",
+ "A128KW",
+ "A192KW",
+ "A256KW",
+ "A128GCMKW",
+ "A192GCMKW",
+ "A256GCMKW"
+ ],
+ "userinfo_encryption_enc_values_supported":[
+ "A128CBC-HS256"
+ ],
+ "userinfo_signing_alg_values_supported":[
+ "RS256",
+ "RS384",
+ "RS512",
+ "HS256",
+ "HS384",
+ "HS512",
+ "ES256"
+ ],
+ "request_object_signing_alg_values_supported":[
+ "none",
+ "RS256",
+ "RS384",
+ "RS512",
+ "HS256",
+ "HS384",
+ "HS512",
+ "ES256",
+ "ES384",
+ "ES512"
+ ],
+ "token_endpoint_auth_methods_supported":[
+ "client_secret_basic",
+ "client_secret_post",
+ "client_secret_jwt",
+ "private_key_jwt"
+ ],
+ "claims_parameter_supported":true,
+ "request_parameter_supported":true,
+ "request_uri_parameter_supported":true,
+ "require_request_uri_registration":true,
+ "display_values_supported":[
+ "page"
+ ],
+ "scopes_supported":[
+ "openid",
+ "profile",
+ "email",
+ "address",
+ "phone",
+ "offline_access"
+ ],
+ "response_modes_supported":[
+ "query",
+ "fragment",
+ "form_post"
+ ],
+ "claims_supported":[
+ "aud",
+ "iss",
+ "sub",
+ "iat",
+ "exp",
+ "acr",
+ "auth_time",
+ "email",
+ "email_verified",
+ "address",
+ "phone",
+ "phone_number_verified",
+ "name",
+ "family_name",
+ "given_name",
+ "middle_name",
+ "nickname",
+ "preferred_username",
+ "profile",
+ "picture",
+ "website",
+ "gender",
+ "birthdate",
+ "zoneinfo",
+ "locale",
+ "updated_at"
+ ]
+}
\ No newline at end of file
diff --git a/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.idp.plugin.oidc.config/truststore.asc b/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.idp.plugin.oidc.config/truststore.asc
new file mode 100644
index 0000000..9e09694
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.idp.plugin.oidc.config/truststore.asc
@@ -0,0 +1,287 @@
+
+
Philip David Smart id B8A3DC52
+
-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: BCPG v1.76.0
+
+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
+AAEAEAAAkgoABQAAAAEAAAKqkhQAAwAAAAQAAAKyknwABwAAA+IAAAK6kpEAAgAA
+AAQ3MTAAkpIAAgAAAAQ3MTAAoAAABwAAAAQwMTAwoAIABAAAAAEAAACWoAMABAAA
+AAEAAADqohcAAwAAAAEAAgAAowEABwAAAAEBAAAApAIAAwAAAAEAAAAApAMAAwAA
+AAEAAAAApAUAAwAAAAEAHAAApAYAAwAAAAEAAAAApDIABQAAAAQAAAacpDMAAgAA
+AAYAAAa8pDQAAgAAACIAAAbCAAAAAAAAAAEAAAARAAAACQAAAAUyMDE4OjA3OjE2
+IDEwOjA3OjM4ADIwMTg6MDc6MTYgMTA6MDc6MzgAAAAKdAAAApMAAAhvAAAE+QAA
+KOIAAA/BAAAAAAAAAAEAAAGPAAAAZAXXBg4DvwPBQXBwbGUgaU9TAAABTU0AEwAB
+AAkAAAABAAAACQACAAcAAAIuAAAA+AADAAcAAABoAAADJgAEAAkAAAABAAAAAQAF
+AAkAAAABAAAA6AAGAAkAAAABAAAA8QAHAAkAAAABAAAAAQAIAAoAAAADAAADjgAM
+AAoAAAACAAADpgANAAkAAAABAAAAKAAOAAkAAAABAAAABAAPAAkAAAABAAAAAgAQ
+AAkAAAABAAAAAQARAAIAAAAlAAADtgAUAAkAAAABAAAABQAXAAkAAAABAAAAAAAZ
+AAkAAAABAAAAAAAaAAIAAAAGAAAD3AAfAAkAAAABAAAAAAAAAABicGxpc3QwME8R
+AgBHAkwCUQJVAlICSwJDAjsCLAIaAnMBzgCQAIgAiAB/AEsCUgJWAlYCTgJGAj4C
+MQIgAsoBjwB/AHkAgACBAIAATgJXAloCVgJOAkQCOAIlAg8CMwFwAHcAjACKAJYA
+jwBMAlYCVwJQAkYCOgIrAhIC4wGiAGUAkgCJAI4AjQCSAEoCUgJQAkcCOgIqAhYC
+9AFqAXgAdACRAIUAhQCMAIsASQJKAvYB+gC8AOIAjgGJAbEAcQBrAIMAeQB6AH4A
+gQBFAoEBTQDQALEA4QDiAL0ArgCZAIkAYwBoAHkAdQBuAEECBAF5ABgBtADHANUA
+uQCkAN0AyQCQAIMAfABqAGUAOwL2AHIAIgEEAb0ArACYAIYAuwDQAK8AXgBmAG8A
+eAAxAgkBUADvAIsAqwC/AJ0AbQB5AF8AZABvAHwAdAB1ACYC5gG3AHUAdgCuANwA
+DAHGAGIAYQBqAHEAdwBvAHAAHQIaAv8BtAGjAZ0BhwF4ATEBcwBtAHYAdQB0AGsA
+ZwAYAhkCDQL5AegB2gHFAagBcgGtAF8AdgBzAHIAagBoABUCGQIUAgkC/AHoAc0B
+sAGPARYBZgBmAHkAagBzAGYAEwITAg8CBAL4AeUBygGzAZsBfgHNAGEAcgBpAGsA
+YQAQAg0CCQL/AfQB4gHJAbMBoAGMAXwBUwEDAeAAcAByAAAIAAAAAAAAAgEAAAAA
+AAAAAQAAAAAAAAAAAAAAAAAAAgxicGxpc3QwMNQBAgMEBQYHCFVmbGFnc1V2YWx1
+ZVl0aW1lc2NhbGVVZXBvY2gQARMAAAU6zneKsRI7msoAEAAIERcdJy0vOD0AAAAA
+AAABAQAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAP///xsEAChy8//+2DAAAShH///v9
+AArWDwAAADsAAAEAAAAAZQAAAQA0MkRDQUE3RC0wMTU0LTRBNTktQjY2NS03QTZB
+QjZBRkM4OEQAAHE4MjVzAAA/1d8AD/+1AD/V3wAP/7UAAAAJAAAABQAAAAkAAAAF
+QXBwbGUAaVBob25lIDcgYmFjayBjYW1lcmEgMy45OW1tIGYvMS44AAANAAEAAgAA
+AAJOAAAAAAIABQAAAAMAAAeGAAMAAgAAAAJXAAAAAAQABQAAAAMAAAeeAAUAAQAA
+AAEAAAAAAAYABQAAAAEAAAe2AAwAAgAAAAJLAAAAAA0ABQAAAAEAAAe+ABAAAgAA
+AAJUAAAAABEABQAAAAEAAAfGABcAAgAAAAJUAAAAABgABQAAAAEAAAfOAB8ABQAA
+AAEAAAfWAAAAAAAAADMAAAABAAAAIAAAAAEAAA5QAAAAZAAAAAMAAAABAAAACwAA
+AAEAABWDAAAAZAAAWb0AAADZAAAArQAABJ4AAN2FAAABWAAA3YUAAAFYAAAACAAA
+AAH/4Q1XaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVn
+aW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBt
+ZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2
+LjAuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
+OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFi
+b3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIg
+eG1sbnM6bXdnLXJzPSJodHRwOi8vd3d3Lm1ldGFkYXRhd29ya2luZ2dyb3VwLmNv
+bS9zY2hlbWFzL3JlZ2lvbnMvIiB4bWxuczpzdEFyZWE9Imh0dHA6Ly9ucy5hZG9i
+ZS5jb20veG1wL3NUeXBlL0FyZWEjIiB4bWxuczphcHBsZS1maT0iaHR0cDovL25z
+LmFwcGxlLmNvbS9mYWNlaW5mby8xLjAvIiB4bWxuczpzdERpbT0iaHR0cDovL25z
+LmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIiB4bWxuczpwaG90
+b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpD
+cmVhdGVEYXRlPSIyMDE4LTA3LTE2VDEwOjA3OjM4LjcxMCIgeG1wOkNyZWF0b3JU
+b29sPSIxMS40IiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOC0wNy0xNlQxMDowNzozOCIg
+cGhvdG9zaG9wOkRhdGVDcmVhdGVkPSIyMDE4LTA3LTE2VDEwOjA3OjM4LjcxMCI+
+IDxtd2ctcnM6UmVnaW9ucyByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+IDxtd2ct
+cnM6UmVnaW9uTGlzdD4gPHJkZjpTZXE+IDxyZGY6bGk+IDxyZGY6RGVzY3JpcHRp
+b24gbXdnLXJzOlR5cGU9IkZhY2UiPiA8bXdnLXJzOkFyZWEgc3RBcmVhOnk9IjAu
+NTEyOTk5OTk5OTk5OTk5OSIgc3RBcmVhOnc9IjAuMjM3OTk5OTk5OTk5OTk5OTki
+IHN0QXJlYTp4PSIwLjM3MSIgc3RBcmVhOmg9IjAuMzE3OTk5OTk5OTk5OTk5OTUi
+IHN0QXJlYTp1bml0PSJub3JtYWxpemVkIi8+IDxtd2ctcnM6RXh0ZW5zaW9ucyBh
+cHBsZS1maTpBbmdsZUluZm9ZYXc9IjAiIGFwcGxlLWZpOkFuZ2xlSW5mb1JvbGw9
+IjI3MCIgYXBwbGUtZmk6Q29uZmlkZW5jZUxldmVsPSIxMDAwIiBhcHBsZS1maTpU
+aW1lc3RhbXA9IjEzNzk5OTkyMTQ1MCIgYXBwbGUtZmk6RmFjZUlEPSI5Ii8+IDwv
+cmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpsaT4gPC9yZGY6U2VxPiA8L213Zy1yczpS
+ZWdpb25MaXN0PiA8bXdnLXJzOkFwcGxpZWRUb0RpbWVuc2lvbnMgc3REaW06aD0i
+MzAyNCIgc3REaW06dz0iNDAzMiIgc3REaW06dW5pdD0icGl4ZWwiLz4gPC9td2ct
+cnM6UmVnaW9ucz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94Onht
+cG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0
+IGVuZD0idyI/PgD/7QB4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAD8cAVoAAxsl
+RxwCAAACAAIcAj8ABjEwMDczOBwCPgAIMjAxODA3MTYcAjcACDIwMTgwNzE2HAI8
+AAYxMDA3MzgAOEJJTQQlAAAAAAAQOGix0QQ3mMOAExf+M5Hq4v/iAkBJQ0NfUFJP
+RklMRQABAQAAAjBBREJFAhAAAG1udHJSR0IgWFlaIAfQAAgACwATADMAO2Fjc3BB
+UFBMAAAAAG5vbmUAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtQURCRQAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmNwcnQA
+AAD8AAAAMmRlc2MAAAEwAAAAa3d0cHQAAAGcAAAAFGJrcHQAAAGwAAAAFHJUUkMA
+AAHEAAAADmdUUkMAAAHUAAAADmJUUkMAAAHkAAAADnJYWVoAAAH0AAAAFGdYWVoA
+AAIIAAAAFGJYWVoAAAIcAAAAFHRleHQAAAAAQ29weXJpZ2h0IDIwMDAgQWRvYmUg
+U3lzdGVtcyBJbmNvcnBvcmF0ZWQAAABkZXNjAAAAAAAAABFBZG9iZSBSR0IgKDE5
+OTgpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EA
+AQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAY3VydgAAAAAAAAABAjMAAGN1cnYA
+AAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAWFlaIAAAAAAAAJwYAABPpQAABPxY
+WVogAAAAAAAANI0AAKAsAAAPlVhZWiAAAAAAAAAmMQAAEC8AAL6c/8AAEQgA6gCW
+AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQ
+AAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
+JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
+anN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TF
+xsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB
+AQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUh
+MQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4
+OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWW
+l5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp
+6vLz9PX29/j5+v/bAEMAGBgYGBgYKRgYKTopKSk6Tjo6OjpOY05OTk5OY3djY2Nj
+Y2N3d3d3d3d3d4+Pj4+Pj6enp6enu7u7u7u7u7u7u//bAEMBHR8fMCwwUiwsUsSF
+bYXExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
+xMTExP/dAAQACv/aAAwDAQACEQMRAD8A6KiiisiwpaSkJ4oAZK2xd3uB+fFP3CqL
+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
+=+Re0
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.idp.plugin.oidc.op/truststore.asc b/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.idp.plugin.oidc.op/truststore.asc
new file mode 100644
index 0000000..504aea2
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.idp.plugin.oidc.op/truststore.asc
@@ -0,0 +1,32 @@
+
+
Henri Mikkonen id 9355EBCA
+
-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: BCPG v1.76.0
+
+mQINBF46zL0BEACUeQllAAViSlyL8uFBCjlCXdH12GpDL9y8fubm+N50ofonIloA
+YLbJtETVrqpxfeh+SDiERbEG5W02fbM1y3wdSjef0jzAEP3PoXydv/SdNKvomvBP
+U7I9eALgHJI4Nkqzf8ggTrOBHcWbRIRGbVXFRhOE1Z86akmVz3fe3aQzddvzAS7I
+YYX0RxbKiNt8iaxUXUo+P1LopD9Zo2I1NTY8u27RuhtxBr5tnHnsuf38mzjG/l6U
+RzJ8qhHJr6D4E+MLqRo9ndTREOT/d1TeJUvQddXC59VEL75TrYCEc2v/NZ5m9fD6
+yg0+oqgyrQHmZhPVOqoJiz0lkd3rl7lUqCH9yjREr1H5PUchiuhBKBOogwtirqw3
+NMKH6bs0Bu6qUy5fIJRqjxKVv+6fOEty/xnp0xN7xoBEUPEt1M/V3ewwH1zhOwTo
+g4cr4zhTT9RNno3eM0eenEQYapQZ8dFmrNVmhvx9VJlshYGyakrxPwrF3coyC3hh
+HjWE9SzmoyGmmbRgvJVt//SqoGpDyaM+d1hPys9tX2N/E1TlwZiD2brWAtjr2K49
+NC9Skizw4qHAbphq4EMGCKzrp9ksnBvwZAY9JjL0JvdjAabqkyRFVh2Mpm5xSxbw
+d+Twryh5hXaT/EQXsKMC1WlQnIDREjHpm1UOXTzcsFPa9tEW8XUftPWbQQARAQAB
+tCZIZW5yaSBNaWtrb25lbiA8aGVucmkubWlra29uZW5AaWtpLmZpPokCVAQTAQgA
+PhYhBG0Y/WNwj8ygebaMzgJmkYOTVevKBQJeOsy9AhsDBQkHhh+ABQsJCAcCBhUK
+CQgLAgQWAgMBAh4BAheAAAoJEAJmkYOTVevKwWcP+gLrjnrNxqwEx7/Ly/KdjkGD
+0W7aMiQc8acvC9oo74/XXpAD0W1jkK/BXyLH1q/o5Lyjymmm6w7VvEWLSY1Q0+gC
+l+hUOqccH572767UrGEeZeJV8+tNhziTU2S7NagK2A0BelHoA3hIhfGmWLJ+ooJe
+HZXFCov4ThZOpGzu5d04dEYoOv2jVaWwnrjOBzoKcgws9J6RLX+6gOFhZ3Dh5Rxs
+UGhl0ZJuEBQCDT7X9jI4mHsA0Ngo27inb3gxfeCm/ziZhHDV2gZtl777dKVc/sQN
+fqGaRGVi1p37La6KKpfIA3KHRjGf4jfg17AQ1Ix+ZgRIpbPXb7fXQHtBElhIbbn/
+VR2CG0Jdchdc4UozelKU6WNsNlcMn3kfTNFosW7+gTiYEGSxZQC9ylSSl1s9oIFM
+dvk70u4AgTY6w+27TrTRuEpdARoNZG4NhBTJ8g0BkiX6cHVyc5ir5IOVpmewsxN5
+yLg0ed6OwpcK5V8SwGT60hgkkJp71OeBsnLzyzO3/YoI5GVAIgcwtdzptRUt0iL8
+GUccO3mO6Hm4EfJAZHFWRbxX3ITTfCzw4blbXURlIXkPefprptAYX2+rn/z4iC1F
+mJUANl+4WilKuPoAimKGDNi6CvlbckQW2i2i5gsoM3iMxRMsExoZUnoMpfY70Trg
+ToF/jwURMQSCsJnZvyQD
+=g4uH
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.oidc.common/truststore.asc b/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.oidc.common/truststore.asc
new file mode 100644
index 0000000..9e09694
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/plugin-truststore/net.shibboleth.oidc.common/truststore.asc
@@ -0,0 +1,287 @@
+
+
Philip David Smart id B8A3DC52
+
-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: BCPG v1.76.0
+
+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
+AAEAEAAAkgoABQAAAAEAAAKqkhQAAwAAAAQAAAKyknwABwAAA+IAAAK6kpEAAgAA
+AAQ3MTAAkpIAAgAAAAQ3MTAAoAAABwAAAAQwMTAwoAIABAAAAAEAAACWoAMABAAA
+AAEAAADqohcAAwAAAAEAAgAAowEABwAAAAEBAAAApAIAAwAAAAEAAAAApAMAAwAA
+AAEAAAAApAUAAwAAAAEAHAAApAYAAwAAAAEAAAAApDIABQAAAAQAAAacpDMAAgAA
+AAYAAAa8pDQAAgAAACIAAAbCAAAAAAAAAAEAAAARAAAACQAAAAUyMDE4OjA3OjE2
+IDEwOjA3OjM4ADIwMTg6MDc6MTYgMTA6MDc6MzgAAAAKdAAAApMAAAhvAAAE+QAA
+KOIAAA/BAAAAAAAAAAEAAAGPAAAAZAXXBg4DvwPBQXBwbGUgaU9TAAABTU0AEwAB
+AAkAAAABAAAACQACAAcAAAIuAAAA+AADAAcAAABoAAADJgAEAAkAAAABAAAAAQAF
+AAkAAAABAAAA6AAGAAkAAAABAAAA8QAHAAkAAAABAAAAAQAIAAoAAAADAAADjgAM
+AAoAAAACAAADpgANAAkAAAABAAAAKAAOAAkAAAABAAAABAAPAAkAAAABAAAAAgAQ
+AAkAAAABAAAAAQARAAIAAAAlAAADtgAUAAkAAAABAAAABQAXAAkAAAABAAAAAAAZ
+AAkAAAABAAAAAAAaAAIAAAAGAAAD3AAfAAkAAAABAAAAAAAAAABicGxpc3QwME8R
+AgBHAkwCUQJVAlICSwJDAjsCLAIaAnMBzgCQAIgAiAB/AEsCUgJWAlYCTgJGAj4C
+MQIgAsoBjwB/AHkAgACBAIAATgJXAloCVgJOAkQCOAIlAg8CMwFwAHcAjACKAJYA
+jwBMAlYCVwJQAkYCOgIrAhIC4wGiAGUAkgCJAI4AjQCSAEoCUgJQAkcCOgIqAhYC
+9AFqAXgAdACRAIUAhQCMAIsASQJKAvYB+gC8AOIAjgGJAbEAcQBrAIMAeQB6AH4A
+gQBFAoEBTQDQALEA4QDiAL0ArgCZAIkAYwBoAHkAdQBuAEECBAF5ABgBtADHANUA
+uQCkAN0AyQCQAIMAfABqAGUAOwL2AHIAIgEEAb0ArACYAIYAuwDQAK8AXgBmAG8A
+eAAxAgkBUADvAIsAqwC/AJ0AbQB5AF8AZABvAHwAdAB1ACYC5gG3AHUAdgCuANwA
+DAHGAGIAYQBqAHEAdwBvAHAAHQIaAv8BtAGjAZ0BhwF4ATEBcwBtAHYAdQB0AGsA
+ZwAYAhkCDQL5AegB2gHFAagBcgGtAF8AdgBzAHIAagBoABUCGQIUAgkC/AHoAc0B
+sAGPARYBZgBmAHkAagBzAGYAEwITAg8CBAL4AeUBygGzAZsBfgHNAGEAcgBpAGsA
+YQAQAg0CCQL/AfQB4gHJAbMBoAGMAXwBUwEDAeAAcAByAAAIAAAAAAAAAgEAAAAA
+AAAAAQAAAAAAAAAAAAAAAAAAAgxicGxpc3QwMNQBAgMEBQYHCFVmbGFnc1V2YWx1
+ZVl0aW1lc2NhbGVVZXBvY2gQARMAAAU6zneKsRI7msoAEAAIERcdJy0vOD0AAAAA
+AAABAQAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAP///xsEAChy8//+2DAAAShH///v9
+AArWDwAAADsAAAEAAAAAZQAAAQA0MkRDQUE3RC0wMTU0LTRBNTktQjY2NS03QTZB
+QjZBRkM4OEQAAHE4MjVzAAA/1d8AD/+1AD/V3wAP/7UAAAAJAAAABQAAAAkAAAAF
+QXBwbGUAaVBob25lIDcgYmFjayBjYW1lcmEgMy45OW1tIGYvMS44AAANAAEAAgAA
+AAJOAAAAAAIABQAAAAMAAAeGAAMAAgAAAAJXAAAAAAQABQAAAAMAAAeeAAUAAQAA
+AAEAAAAAAAYABQAAAAEAAAe2AAwAAgAAAAJLAAAAAA0ABQAAAAEAAAe+ABAAAgAA
+AAJUAAAAABEABQAAAAEAAAfGABcAAgAAAAJUAAAAABgABQAAAAEAAAfOAB8ABQAA
+AAEAAAfWAAAAAAAAADMAAAABAAAAIAAAAAEAAA5QAAAAZAAAAAMAAAABAAAACwAA
+AAEAABWDAAAAZAAAWb0AAADZAAAArQAABJ4AAN2FAAABWAAA3YUAAAFYAAAACAAA
+AAH/4Q1XaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVn
+aW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBt
+ZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2
+LjAuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
+OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFi
+b3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIg
+eG1sbnM6bXdnLXJzPSJodHRwOi8vd3d3Lm1ldGFkYXRhd29ya2luZ2dyb3VwLmNv
+bS9zY2hlbWFzL3JlZ2lvbnMvIiB4bWxuczpzdEFyZWE9Imh0dHA6Ly9ucy5hZG9i
+ZS5jb20veG1wL3NUeXBlL0FyZWEjIiB4bWxuczphcHBsZS1maT0iaHR0cDovL25z
+LmFwcGxlLmNvbS9mYWNlaW5mby8xLjAvIiB4bWxuczpzdERpbT0iaHR0cDovL25z
+LmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIiB4bWxuczpwaG90
+b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpD
+cmVhdGVEYXRlPSIyMDE4LTA3LTE2VDEwOjA3OjM4LjcxMCIgeG1wOkNyZWF0b3JU
+b29sPSIxMS40IiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOC0wNy0xNlQxMDowNzozOCIg
+cGhvdG9zaG9wOkRhdGVDcmVhdGVkPSIyMDE4LTA3LTE2VDEwOjA3OjM4LjcxMCI+
+IDxtd2ctcnM6UmVnaW9ucyByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+IDxtd2ct
+cnM6UmVnaW9uTGlzdD4gPHJkZjpTZXE+IDxyZGY6bGk+IDxyZGY6RGVzY3JpcHRp
+b24gbXdnLXJzOlR5cGU9IkZhY2UiPiA8bXdnLXJzOkFyZWEgc3RBcmVhOnk9IjAu
+NTEyOTk5OTk5OTk5OTk5OSIgc3RBcmVhOnc9IjAuMjM3OTk5OTk5OTk5OTk5OTki
+IHN0QXJlYTp4PSIwLjM3MSIgc3RBcmVhOmg9IjAuMzE3OTk5OTk5OTk5OTk5OTUi
+IHN0QXJlYTp1bml0PSJub3JtYWxpemVkIi8+IDxtd2ctcnM6RXh0ZW5zaW9ucyBh
+cHBsZS1maTpBbmdsZUluZm9ZYXc9IjAiIGFwcGxlLWZpOkFuZ2xlSW5mb1JvbGw9
+IjI3MCIgYXBwbGUtZmk6Q29uZmlkZW5jZUxldmVsPSIxMDAwIiBhcHBsZS1maTpU
+aW1lc3RhbXA9IjEzNzk5OTkyMTQ1MCIgYXBwbGUtZmk6RmFjZUlEPSI5Ii8+IDwv
+cmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpsaT4gPC9yZGY6U2VxPiA8L213Zy1yczpS
+ZWdpb25MaXN0PiA8bXdnLXJzOkFwcGxpZWRUb0RpbWVuc2lvbnMgc3REaW06aD0i
+MzAyNCIgc3REaW06dz0iNDAzMiIgc3REaW06dW5pdD0icGl4ZWwiLz4gPC9td2ct
+cnM6UmVnaW9ucz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94Onht
+cG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0
+IGVuZD0idyI/PgD/7QB4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAD8cAVoAAxsl
+RxwCAAACAAIcAj8ABjEwMDczOBwCPgAIMjAxODA3MTYcAjcACDIwMTgwNzE2HAI8
+AAYxMDA3MzgAOEJJTQQlAAAAAAAQOGix0QQ3mMOAExf+M5Hq4v/iAkBJQ0NfUFJP
+RklMRQABAQAAAjBBREJFAhAAAG1udHJSR0IgWFlaIAfQAAgACwATADMAO2Fjc3BB
+UFBMAAAAAG5vbmUAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtQURCRQAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmNwcnQA
+AAD8AAAAMmRlc2MAAAEwAAAAa3d0cHQAAAGcAAAAFGJrcHQAAAGwAAAAFHJUUkMA
+AAHEAAAADmdUUkMAAAHUAAAADmJUUkMAAAHkAAAADnJYWVoAAAH0AAAAFGdYWVoA
+AAIIAAAAFGJYWVoAAAIcAAAAFHRleHQAAAAAQ29weXJpZ2h0IDIwMDAgQWRvYmUg
+U3lzdGVtcyBJbmNvcnBvcmF0ZWQAAABkZXNjAAAAAAAAABFBZG9iZSBSR0IgKDE5
+OTgpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EA
+AQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAY3VydgAAAAAAAAABAjMAAGN1cnYA
+AAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAWFlaIAAAAAAAAJwYAABPpQAABPxY
+WVogAAAAAAAANI0AAKAsAAAPlVhZWiAAAAAAAAAmMQAAEC8AAL6c/8AAEQgA6gCW
+AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQ
+AAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
+JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
+anN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TF
+xsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB
+AQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUh
+MQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4
+OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWW
+l5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp
+6vLz9PX29/j5+v/bAEMAGBgYGBgYKRgYKTopKSk6Tjo6OjpOY05OTk5OY3djY2Nj
+Y2N3d3d3d3d3d4+Pj4+Pj6enp6enu7u7u7u7u7u7u//bAEMBHR8fMCwwUiwsUsSF
+bYXExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
+xMTExP/dAAQACv/aAAwDAQACEQMRAD8A6KiiisiwpaSkJ4oAZK2xd3uB+fFP3CqL
+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
+=+Re0
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/test/docker/shibboleth-idp/tomcat/server.xml b/src/test/docker/shibboleth-idp/tomcat/server.xml
new file mode 100644
index 0000000..90ead0d
--- /dev/null
+++ b/src/test/docker/shibboleth-idp/tomcat/server.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/java/edu/internet2/middleware/grouper/authentication/Pac4JConfigFactoryTest.java b/src/test/java/edu/internet2/middleware/grouper/authentication/Pac4JConfigFactoryTest.java
new file mode 100644
index 0000000..94d0219
--- /dev/null
+++ b/src/test/java/edu/internet2/middleware/grouper/authentication/Pac4JConfigFactoryTest.java
@@ -0,0 +1,372 @@
+package edu.internet2.middleware.grouper.authentication;
+
+import edu.internet2.middleware.grouper.authentication.plugin.ConfigUtils;
+import edu.internet2.middleware.grouper.authentication.plugin.GrouperAuthentication;
+import edu.internet2.middleware.grouper.authentication.plugin.Pac4jConfigFactory;
+import edu.internet2.middleware.grouper.cfg.GrouperHibernateConfig;
+import edu.internet2.middleware.grouper.ui.util.GrouperUiConfigInApi;
+import edu.internet2.middleware.grouperClient.config.ConfigPropertiesCascadeBase;
+import org.apache.commons.logging.LogFactory;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.pac4j.cas.client.CasClient;
+import org.pac4j.cas.config.CasConfiguration;
+import org.pac4j.cas.config.CasProtocol;
+import org.pac4j.core.config.Config;
+import org.pac4j.oidc.client.OidcClient;
+import org.pac4j.oidc.config.OidcConfiguration;
+import org.pac4j.saml.client.SAML2Client;
+import org.pac4j.saml.config.SAML2Configuration;
+import org.springframework.core.io.FileSystemResource;
+
+import java.io.IOException;
+import java.time.Period;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Map;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class Pac4JConfigFactoryTest {
+ MockedStatic frameworkUtilMockedStatic;
+
+ @SuppressWarnings("unchecked")
+ @Before
+ public void setup() throws Exception {
+ this.frameworkUtilMockedStatic = Mockito.mockStatic(FrameworkUtil.class);
+
+ Bundle bundle = mock(Bundle.class);
+ this.frameworkUtilMockedStatic.when(() -> FrameworkUtil.getBundle(GrouperAuthentication.class)).thenReturn(bundle);
+
+ BundleContext bundleContext = mock(BundleContext.class);
+ when(bundle.getBundleContext()).thenReturn(bundleContext);
+
+
+ ServiceReference logFactoryServiceReference = mock(ServiceReference.class);
+ when(bundleContext.getAllServiceReferences("org.apache.commons.logging.LogFactory", null)).thenReturn(new ServiceReference[]{logFactoryServiceReference});
+ when(bundleContext.getService(logFactoryServiceReference)).thenReturn(LogFactory.getFactory());
+
+ ServiceReference UIConfigPropertiesCascadeBaseServiceReference = mock(ServiceReference.class);
+ when(bundleContext.getServiceReferences(ConfigPropertiesCascadeBase.class, "(type=ui)")).thenReturn(Collections.singletonList(UIConfigPropertiesCascadeBaseServiceReference));
+ when(bundleContext.getService(UIConfigPropertiesCascadeBaseServiceReference)).thenReturn(GrouperUiConfigInApi.retrieveConfig());
+
+ ServiceReference HibernateConfigPropertiesCascadeBaseServiceReference = mock(ServiceReference.class);
+ when(bundleContext.getServiceReferences(ConfigPropertiesCascadeBase.class, "(type=hibernate)")).thenReturn(Collections.singletonList(HibernateConfigPropertiesCascadeBaseServiceReference));
+ when(bundleContext.getService(HibernateConfigPropertiesCascadeBaseServiceReference)).thenReturn(GrouperHibernateConfig.retrieveConfig());
+ }
+
+ @After
+ public void tearDown() {
+ this.frameworkUtilMockedStatic.close();
+ }
+
+ /*
+ reads configuration from the `grouper-ui.properties` file in the test resources directory to verify that
+ elconfig still works
+ */
+ @Test
+ public void testElConfig() {
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getConfigPropertiesCascadeBase("ui");
+ grouperConfig.propertiesOverrideMap().clear();
+ Map properties = grouperConfig.propertiesOverrideMap();
+
+ properties.put("external.authentication.provider.elConfig", "${\"cas\"}");
+ properties.put("external.authentication.cas.loginUrl.elConfig", "${\"login\"}");
+
+ Pac4jConfigFactory pac4jConfigFactory = new Pac4jConfigFactory();
+ Config config = pac4jConfigFactory.build();
+
+ Assert.assertTrue(config.getClients().getClients().get(0) instanceof CasClient);
+
+ CasConfiguration configuration = ((CasClient) config.getClients().getClients().get(0)).getConfiguration();
+ Assert.assertEquals("login", configuration.getLoginUrl());
+ }
+
+ /**
+ *
+ */
+ @Test
+ public void testPac4JConfigFactorCAS() {
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getConfigPropertiesCascadeBase("ui");
+ grouperConfig.propertiesOverrideMap().clear();
+ Map properties = grouperConfig.propertiesOverrideMap();
+ properties.put("external.authentication.provider","cas");
+ properties.put("external.authentication.grouperContextUrl","localhost");
+ properties.put("external.authentication.callbackUrl","http://callback");
+ properties.put("external.authentication.cas.encoding","UTF-8");
+ properties.put("external.authentication.cas.loginUrl","login");
+ properties.put("external.authentication.cas.prefixUrl","localhost");
+ properties.put("external.authentication.cas.restUrl","rest");
+ properties.put("external.authentication.cas.timeTolerance","1000");
+ properties.put("external.authentication.cas.renew","true");
+ properties.put("external.authentication.cas.gateway","false");
+ properties.put("external.authentication.cas.acceptAnyProxy","true");
+ properties.put("external.authentication.cas.postLogoutUrlParameter","logout");
+ properties.put("external.authentication.cas.customParams","param1=value1,param2=value2,param3=value3");
+ properties.put("external.authentication.cas.method","post");
+ properties.put("external.authentication.cas.privateKeyPath","file:/key");
+ properties.put("external.authentication.cas.privateKeyAlgorithm","AES");
+
+ Pac4jConfigFactory pac4jConfigFactory = new Pac4jConfigFactory();
+ Config config = pac4jConfigFactory.build();
+
+ Assert.assertTrue(config.getClients().getClients().get(0) instanceof CasClient);
+
+ CasConfiguration configuration = ((CasClient) config.getClients().getClients().get(0)).getConfiguration();
+
+ Assert.assertEquals(properties.get("external.authentication.cas.encoding"), configuration.getEncoding());
+ Assert.assertEquals(properties.get("external.authentication.cas.loginUrl"), configuration.getLoginUrl());
+ Assert.assertEquals(properties.get("external.authentication.cas.prefixUrl"), configuration.getPrefixUrl());
+ Assert.assertEquals(properties.get("external.authentication.cas.restUrl"), configuration.getRestUrl());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.cas.timeTolerance")), configuration.getTimeTolerance());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.cas.renew")), configuration.isRenew());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.cas.gateway")), configuration.isGateway());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.cas.acceptAnyProxy")), configuration.isAcceptAnyProxy());
+ Assert.assertEquals(properties.get("external.authentication.cas.postLogoutUrlParameter"), configuration.getPostLogoutUrlParameter());
+ Assert.assertEquals(properties.get("external.authentication.cas.method"), configuration.getMethod());
+ Assert.assertEquals(properties.get("external.authentication.cas.privateKeyPath"), configuration.getPrivateKeyPath());
+ Assert.assertEquals(properties.get("external.authentication.cas.privateKeyAlgorithm"), configuration.getPrivateKeyAlgorithm());
+ Assert.assertEquals(configuration.getCustomParams().size(), Arrays.asList(properties.get("external.authentication.cas.customParams").split(",")).size());
+ }
+
+ /**
+ *
+ */
+ @Test
+ public void testPac4JConfigFactorSAML() {
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getConfigPropertiesCascadeBase("ui");
+ grouperConfig.propertiesOverrideMap().clear();
+ Map properties = grouperConfig.propertiesOverrideMap();
+ properties.put("external.authentication.provider","saml");
+ properties.put("external.authentication.grouperContextUrl","localhost");
+ properties.put("external.authentication.callbackUrl","http://callback");
+ properties.put("external.authentication.saml.keystorePassword","changeme");
+ properties.put("external.authentication.saml.privateKeyPassword","secret");
+ properties.put("external.authentication.saml.certificateNameToAppend","cert");
+ properties.put("external.authentication.saml.identityProviderEntityId","idPid");
+ properties.put("external.authentication.saml.serviceProviderEntityId","sPEid");
+ properties.put("external.authentication.saml.maximumAuthenticationLifetime","500");
+ properties.put("external.authentication.saml.acceptedSkew","10");
+ properties.put("external.authentication.saml.forceAuth","true");
+ properties.put("external.authentication.saml.passive","false");
+ properties.put("external.authentication.saml.comparisonType","close");
+ properties.put("external.authentication.saml.authnRequestBindingType","urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");
+ properties.put("external.authentication.saml.responseBindingType","urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");
+ properties.put("external.authentication.saml.spLogoutRequestBindingType","urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");
+ properties.put("external.authentication.saml.spLogoutResponseBindingType","urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");
+ properties.put("external.authentication.saml.authnContextClassRefs","type1,type2,type3,type4");
+ properties.put("external.authentication.saml.nameIdPolicyFormat","####");
+ properties.put("external.authentication.saml.useNameQualifier","true");
+ properties.put("external.authentication.saml.signMetadata","false");
+ properties.put("external.authentication.saml.forceServiceProviderMetadataGeneration","true");
+ properties.put("external.authentication.saml.forceKeystoreGeneration","false");
+ properties.put("external.authentication.saml.authnRequestSigned","true");
+ properties.put("external.authentication.saml.spLogoutRequestSigned","false");
+ properties.put("external.authentication.saml.blackListedSignatureSigningAlgorithms","col1,col2,col3,col4");
+ properties.put("external.authentication.saml.signatureAlgorithms","RSA,ECDSA");
+ properties.put("external.authentication.saml.signatureReferenceDigestMethods","md5,sha256");
+ properties.put("external.authentication.saml.signatureCanonicalizationAlgorithm","qweafsdf");
+ properties.put("external.authentication.saml.wantsAssertionsSigned","true");
+ properties.put("external.authentication.saml.wantsResponsesSigned","false");
+ properties.put("external.authentication.saml.allSignatureValidationDisabled","true");
+ properties.put("external.authentication.saml.keystoreAlias","fred");
+ properties.put("external.authentication.saml.keystoreType","text");
+ properties.put("external.authentication.saml.assertionConsumerServiceIndex","5");
+ properties.put("external.authentication.saml.attributeConsumingServiceIndex","2");
+ properties.put("external.authentication.saml.providerName","paul");
+ properties.put("external.authentication.saml.attributeAsId","george");
+ properties.put("external.authentication.saml.mappedAttributes","key1=value1,key2=value2,key3=value3");
+ properties.put("external.authentication.saml.postLogoutURL","logout");
+ properties.put("external.authentication.saml.certificateExpirationPeriod","P2Y3M5D");
+ properties.put("external.authentication.saml.certificateSignatureAlg","SHA1WithRSA");
+ properties.put("external.authentication.saml.privateKeySize","15");
+ properties.put("external.authentication.saml.issuerFormat","urn:oasis:names:tc:SAML:2.0:nameid-format:entity");
+ properties.put("external.authentication.saml.nameIdPolicyAllowCreate","true");
+ properties.put("external.authentication.saml.supportedProtocols","urn:oasis:names:tc:SAML:2.0:protocol, urn:oasis:names:tc:SAML:1.0:protocol, urn:oasis:names:tc:SAML:1.1:protocol");
+
+ Pac4jConfigFactory pac4jConfigFactory = new Pac4jConfigFactory();
+ Config config = pac4jConfigFactory.build();
+
+ Assert.assertTrue(config.getClients().getClients().get(0) instanceof SAML2Client);
+
+ SAML2Configuration configuration = ((SAML2Client) config.getClients().getClients().get(0)).getConfiguration();
+
+ Assert.assertEquals(properties.get("external.authentication.saml.keystorePassword"), configuration.getKeystorePassword());
+ Assert.assertEquals(properties.get("external.authentication.saml.privateKeyPassword"), configuration.getPrivateKeyPassword());
+ Assert.assertEquals(properties.get("external.authentication.saml.certificateNameToAppend"), configuration.getCertificateNameToAppend());
+ Assert.assertEquals(properties.get("external.authentication.saml.identityProviderEntityId"), configuration.getIdentityProviderEntityId());
+ Assert.assertEquals(properties.get("external.authentication.saml.serviceProviderEntityId"), configuration.getServiceProviderEntityId());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.saml.maximumAuthenticationLifetime")), configuration.getMaximumAuthenticationLifetime());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.saml.acceptedSkew")), configuration.getAcceptedSkew());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.forceAuth")), configuration.isForceAuth());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.passive")), configuration.isPassive());
+ Assert.assertEquals(properties.get("external.authentication.saml.comparisonType"), configuration.getComparisonType());
+ Assert.assertEquals(properties.get("external.authentication.saml.authnRequestBindingType"), configuration.getAuthnRequestBindingType());
+ Assert.assertEquals(properties.get("external.authentication.saml.responseBindingType"), configuration.getResponseBindingType());
+ Assert.assertEquals(properties.get("external.authentication.saml.spLogoutRequestBindingType"), configuration.getSpLogoutRequestBindingType());
+ Assert.assertEquals(properties.get("external.authentication.saml.spLogoutResponseBindingType"), configuration.getSpLogoutResponseBindingType());
+ Assert.assertEquals(properties.get("external.authentication.saml.nameIdPolicyFormat"), configuration.getNameIdPolicyFormat());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.useNameQualifier")), configuration.isUseNameQualifier());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.signMetadata")), configuration.isSignMetadata());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.forceServiceProviderMetadataGeneration")), configuration.isForceServiceProviderMetadataGeneration());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.forceKeystoreGeneration")), configuration.isForceKeystoreGeneration());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.authnRequestSigned")), configuration.isAuthnRequestSigned());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.spLogoutRequestSigned")), configuration.isSpLogoutRequestSigned());
+ Assert.assertEquals(properties.get("external.authentication.saml.signatureCanonicalizationAlgorithm"), configuration.getSignatureCanonicalizationAlgorithm());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.wantsAssertionsSigned")), configuration.isWantsAssertionsSigned());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.wantsResponsesSigned")), configuration.isWantsResponsesSigned());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.allSignatureValidationDisabled")), configuration.isAllSignatureValidationDisabled());
+ Assert.assertEquals(properties.get("external.authentication.saml.keystoreAlias"), configuration.getKeyStoreAlias());
+ Assert.assertEquals(properties.get("external.authentication.saml.keystoreType"), configuration.getKeyStoreType());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.saml.assertionConsumerServiceIndex")), configuration.getAssertionConsumerServiceIndex());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.saml.attributeConsumingServiceIndex")), configuration.getAttributeConsumingServiceIndex());
+ Assert.assertEquals(properties.get("external.authentication.saml.providerName"), configuration.getProviderName());
+ Assert.assertEquals(properties.get("external.authentication.saml.attributeAsId"), configuration.getAttributeAsId());
+ Assert.assertEquals(properties.get("external.authentication.saml.postLogoutURL"), configuration.getPostLogoutURL());
+ Assert.assertEquals(Period.parse(properties.get("external.authentication.saml.certificateExpirationPeriod")), configuration.getCertificateExpirationPeriod());
+ Assert.assertEquals(properties.get("external.authentication.saml.certificateSignatureAlg"), configuration.getCertificateSignatureAlg());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.saml.privateKeySize")), configuration.getPrivateKeySize());
+ Assert.assertEquals(properties.get("external.authentication.saml.issuerFormat"), configuration.getIssuerFormat());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.saml.nameIdPolicyAllowCreate")), configuration.isNameIdPolicyAllowCreate());
+ Assert.assertEquals(configuration.getAuthnContextClassRefs().size(), Arrays.asList(properties.get("external.authentication.saml.authnContextClassRefs").split(",")).size());
+ Assert.assertEquals(configuration.getBlackListedSignatureSigningAlgorithms().size(), Arrays.asList(properties.get("external.authentication.saml.blackListedSignatureSigningAlgorithms").split(",")).size());
+ Assert.assertEquals(configuration.getSignatureReferenceDigestMethods().size(), Arrays.asList(properties.get("external.authentication.saml.signatureReferenceDigestMethods").split(",")).size());
+ Assert.assertEquals(configuration.getMappedAttributes().size(), Arrays.asList(properties.get("external.authentication.saml.mappedAttributes").split(",")).size());
+ Assert.assertEquals(configuration.getSupportedProtocols().size(), Arrays.asList(properties.get("external.authentication.saml.supportedProtocols").split(",")).size());
+ }
+
+ /**
+ *
+ */
+ @Test
+ public void testPac4JConfigFactorOidc() {
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getConfigPropertiesCascadeBase("ui");
+ grouperConfig.propertiesOverrideMap().clear();
+ Map properties = grouperConfig.propertiesOverrideMap();
+ properties.put("external.authentication.provider","oidc");
+ properties.put("external.authentication.grouperContextUrl","localhost");
+ properties.put("external.authentication.callbackUrl","http://callback");
+ properties.put("external.authentication.oidc.clientId","myClientId");
+ properties.put("external.authentication.oidc.secret","secret");
+ properties.put("external.authentication.oidc.discoveryURI","https://localhost/oidc");
+ properties.put("external.authentication.oidc.scope","PUBLIC");
+ properties.put("external.authentication.oidc.customParams","key1=value1, key2=value2, key3=value3");
+ properties.put("external.authentication.oidc.useNonce","true");
+ properties.put("external.authentication.oidc.disablePkce","false");
+ properties.put("external.authentication.oidc.maxAge","60000");
+ properties.put("external.authentication.oidc.maxClockSkew","10000");
+ properties.put("external.authentication.oidc.responseMode","token");
+ properties.put("external.authentication.oidc.logoutUrl","logout");
+ properties.put("external.authentication.oidc.connectTimeout","30000");
+ properties.put("external.authentication.oidc.readTimeout","15000");
+ properties.put("external.authentication.oidc.withState","false");
+ properties.put("external.authentication.oidc.expireSessionWithToken","true");
+ properties.put("external.authentication.oidc.tokenExpirationAdvance","5000");
+
+ Pac4jConfigFactory pac4jConfigFactory = new Pac4jConfigFactory();
+ Config config = pac4jConfigFactory.build();
+
+ Assert.assertTrue(config.getClients().getClients().get(0) instanceof OidcClient);
+
+ OidcConfiguration configuration = ((OidcClient) config.getClients().getClients().get(0)).getConfiguration();
+
+ Assert.assertEquals(properties.get("external.authentication.oidc.clientId"), configuration.getClientId());
+ Assert.assertEquals(properties.get("external.authentication.oidc.secret"), configuration.getSecret());
+ Assert.assertEquals(properties.get("external.authentication.oidc.discoveryURI"), configuration.getDiscoveryURI());
+ Assert.assertEquals(properties.get("external.authentication.oidc.scope"), configuration.getScope());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.oidc.useNonce")), configuration.isUseNonce());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.oidc.disablePkce")), configuration.isDisablePkce());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.oidc.maxAge")), configuration.getMaxAge().intValue());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.oidc.maxClockSkew")), configuration.getMaxClockSkew());
+ Assert.assertEquals(properties.get("external.authentication.oidc.responseMode"), configuration.getResponseMode());
+ Assert.assertEquals(properties.get("external.authentication.oidc.logoutUrl"), configuration.getLogoutUrl());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.oidc.connectTimeout")), configuration.getConnectTimeout());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.oidc.readTimeout")), configuration.getReadTimeout());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.oidc.withState")), configuration.isWithState());
+ Assert.assertEquals(Boolean.parseBoolean(properties.get("external.authentication.oidc.expireSessionWithToken")), configuration.isExpireSessionWithToken());
+ Assert.assertEquals(Integer.parseInt(properties.get("external.authentication.oidc.tokenExpirationAdvance")), configuration.getTokenExpirationAdvance());
+ Assert.assertEquals(configuration.getCustomParams().size(), Arrays.asList(properties.get("external.authentication.oidc.customParams").split(",")).size());
+ }
+
+ @Test
+ public void testPac4jForManualProvider() {
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getConfigPropertiesCascadeBase("ui");
+ grouperConfig.propertiesOverrideMap().clear();
+ Map overrides = grouperConfig.propertiesOverrideMap();
+ overrides.put("external.authentication.provider", "edu.internet2.middleware.grouper.authentication.plugin.config.SAML2ClientProvider");
+
+ Pac4jConfigFactory pac4jConfigFactory = new Pac4jConfigFactory();
+ Config config = pac4jConfigFactory.build();
+
+ Assert.assertTrue(config.getClients().getClients().get(0) instanceof SAML2Client);
+
+ Assert.assertTrue(true);
+ }
+
+ @Test
+ public void testPac4jConfigMethodFind() throws IOException {
+ // external.authentication.saml.identityProviderMetadataPath = file:/opt/grouper/idp-metadata.xml
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getConfigPropertiesCascadeBase("ui");
+
+ grouperConfig.propertiesOverrideMap().clear();
+ Map overrides = grouperConfig.propertiesOverrideMap();
+ overrides.put("external.authentication.provider","saml");
+ overrides.put("external.authentication.grouperContextUrl","localhost");
+ overrides.put("external.authentication.callbackUrl","http://callback");
+ overrides.put("external.authentication.saml.identityProviderMetadataPath", "file:/opt/grouper/idp-metadata.xml");
+
+ Pac4jConfigFactory pac4jConfigFactory = new Pac4jConfigFactory();
+ Config config = pac4jConfigFactory.build();
+
+ SAML2Configuration configuration = ((SAML2Client) config.getClients().getClients().get(0)).getConfiguration();
+
+ Assert.assertTrue(configuration.getIdentityProviderMetadataResource().isFile() && ((FileSystemResource)configuration.getIdentityProviderMetadataResource()).getPath().equals("/opt/grouper/idp-metadata.xml"));
+ }
+ @Test
+ public void testPac4jConfigEnum() throws IOException {
+ // external.authentication.saml.identityProviderMetadataPath = file:/opt/grouper/idp-metadata.xml
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getConfigPropertiesCascadeBase("ui");
+
+ grouperConfig.propertiesOverrideMap().clear();
+ Map overrides = grouperConfig.propertiesOverrideMap();
+ overrides.put("external.authentication.provider","cas");
+ overrides.put("external.authentication.cas.protocol", "CAS20");
+
+ Pac4jConfigFactory pac4jConfigFactory = new Pac4jConfigFactory();
+ Config config = pac4jConfigFactory.build();
+
+ CasConfiguration configuration = ((CasClient) config.getClients().getClients().get(0)).getConfiguration();
+
+ Assert.assertTrue(CasProtocol.CAS20.equals(configuration.getProtocol()));
+ }
+
+ @Test
+ public void testConfigTestRename() {
+ ConfigPropertiesCascadeBase grouperConfig = ConfigUtils.getConfigPropertiesCascadeBase("ui");
+
+ grouperConfig.propertiesOverrideMap().clear();
+ Map overrides = grouperConfig.propertiesOverrideMap();
+ overrides.put("external.authentication.provider","saml");
+ overrides.put("external.authentication.saml.keyStoreAlias","fred");
+ overrides.put("external.authentication.saml.keyStoreType","keystoretype");
+
+ Pac4jConfigFactory pac4jConfigFactory = new Pac4jConfigFactory();
+ Config config = pac4jConfigFactory.build();
+
+ Assert.assertTrue(config.getClients().getClients().get(0) instanceof SAML2Client);
+
+ SAML2Configuration configuration = ((SAML2Client) config.getClients().getClients().get(0)).getConfiguration();
+
+ Assert.assertEquals(overrides.get("external.authentication.saml.keyStoreAlias"), configuration.getKeyStoreAlias());
+ Assert.assertEquals(overrides.get("external.authentication.saml.keyStoreType"), configuration.getKeyStoreType());
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/grouper-ui.properties b/src/test/resources/grouper-ui.properties
new file mode 100644
index 0000000..88f1520
--- /dev/null
+++ b/src/test/resources/grouper-ui.properties
@@ -0,0 +1 @@
+grouperUi.config.hierarchy = classpath:grouper-ui-ng.base.properties, classpath:grouper-ui.properties
\ No newline at end of file
diff --git a/src/test/resources/grouper.client.properties b/src/test/resources/grouper.client.properties
new file mode 100644
index 0000000..706b439
--- /dev/null
+++ b/src/test/resources/grouper.client.properties
@@ -0,0 +1 @@
+grouperClient.config.hierarchy = classpath:grouper.base.properties, classpath:grouper.properties
\ No newline at end of file
diff --git a/src/test/resources/grouper.hibernate.properties b/src/test/resources/grouper.hibernate.properties
new file mode 100644
index 0000000..1662f72
--- /dev/null
+++ b/src/test/resources/grouper.hibernate.properties
@@ -0,0 +1 @@
+grouper.is.ui = true
\ No newline at end of file
diff --git a/src/test/resources/grouper.properties b/src/test/resources/grouper.properties
new file mode 100644
index 0000000..6145c4f
--- /dev/null
+++ b/src/test/resources/grouper.properties
@@ -0,0 +1,2 @@
+grouper.config.hierarchy = classpath:grouper.base.properties, classpath:grouper.properties
+grouper.osgi.enable = true
\ No newline at end of file
diff --git a/src/test/resources/log4j2.xml b/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..7176ce6
--- /dev/null
+++ b/src/test/resources/log4j2.xml
@@ -0,0 +1,47 @@
+
+
+
+ %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file