#
# Copyright (c) 2009-2013. Joshua Tree Software, LLC.  All Rights Reserved.
#

# Host name and port of LDAP DIT:
host=localhost
port=389

# These credentials are used for read/write access to all nodes under suffix:
admin.user=cn=Manager,dc=openldap,dc=org
# LDAP admin root pass is encrypted using 'encrypt' target in build.xml:
admin.pw=secret

# This is min/max connection pool settings for User's who access their accounts in ou=People:
min.admin.conn=1
max.admin.conn=10

# Used for SSL Connection to LDAP Server:
enable.ldap.ssl=${enable.ldap.ssl}
enable.ldap.ssl.debug=${enable.ldap.ssl.debug}
trust.store=${trust.store}
trust.store.password=${trust.store.password}
trust.store.set.prop=${trust.store.set.prop}

# This node contains fortress properties stored on behalf of connecting LDAP clients (in this case specific to Tomcat Realm connectivity):
config.realm=TOMCAT
config.root=ou=Config,dc=openldap,dc=org

# enable this to see trace statements when connection pool allocates new connections:
debug.ldap.pool=true

# Default for pool reconnect flag is false:
enable.pool.reconnect=true

crypto.prop=${crypto.prop}

ehcache.config.file=ehcache.xml