Hi

 

I am using Apache DS version 1.5.1.

Now I would like to upgrade to version 1.5.4 but I can not find a server.xml file example.

 

 

Below you can find the old server.xml(1.5.1). The red coloured sections are my modifications.

 

  • 1 Authenticator
  • 1 Interceptor
  • 1 Partition

 

How can I configure that in the new server.xml 1.5.4.

 

Can you please give me a hint?

 

 

Greetings from Switzerland (Bad weather and cold)

 

Dominic Stampfli

 

 

<?xml version="1.0" encoding="UTF-8"?>

 

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

  "http://www.springframework.org/dtd/spring-beans.dtd">

 

<beans>

  <bean id="environment" class="org.springframework.beans.factory.config.PropertiesFactoryBean">

    <property name="properties">

      <props>

        <!-- JNDI security properties used to get initial contexts.         -->

        <prop key="java.naming.security.authentication">simple</prop>

        <prop key="java.naming.security.principal">uid=admin,ou=system</prop>

        <prop key="java.naming.security.credentials">secret</prop>

        <!-- Set this key to a space delimited set of attributeType descriptions

             and their OID's if you want an attributeType to be handled as

             binary content.

 

             The server will use the schema to derive the set of attributeTypes

             to treat as binary.  The union if the values you provide here

             will be taken as the set of binaries. Note to be consistent you

             must add both the OID and all the names an attributeType can have.

        -->

        <!--

        <prop key="java.naming.ldap.attributes.binary"></prop>

        -->

      </props>

    </property>

  </bean>

 

  <bean id="changePasswordConfiguration" class="org.apache.directory.server.changepw.ChangePasswordConfiguration">

    <!-- Whether to enable the Change Password protocol.                    -->

    <property name="enabled" value="false" />

    <!-- The port to run the Change Password protocol on.                   -->

    <property name="ipPort" value="464" />

  </bean>

 

  <bean id="ntpConfiguration" class="org.apache.directory.server.ntp.NtpConfiguration">

    <!-- Whether to enable the NTP protocol.                                -->

    <property name="enabled" value="false" />

    <!-- The port to run the NTP protocol on.                               -->

    <property name="ipPort" value="123" />

  </bean>

 

  <bean id="dnsConfiguration" class="org.apache.directory.server.dns.DnsConfiguration">

    <!-- Whether to enable the DNS protocol.                                -->

    <property name="enabled" value="false" />

    <!-- The port to run the DNS protocol on.                               -->

    <property name="ipPort" value="53" />

  </bean>

 

  <bean id="kdcConfiguration" class="org.apache.directory.server.kerberos.kdc.KdcConfiguration">

    <!-- Whether to enable the Kerberos protocol.                           -->

    <property name="enabled" value="false" />

    <!-- The port to run the Kerberos protocol on.                          -->

    <property name="ipPort" value="88" />

  </bean>

 

  <bean id="ldapsConfiguration" class="org.apache.directory.server.ldap.LdapConfiguration">

    <!-- Whether to enable the LDAPS protocol.                               -->

    <property name="enabled" value="false" />

    <!-- The port to run the LDAPS protocol on.                              -->

    <property name="ipPort" value="636" />

 

    <property name="enableLdaps" value="true" />

  </bean>

 

  <bean id="ldapConfiguration" class="org.apache.directory.server.ldap.LdapConfiguration">

    <!-- The port to run the LDAP protocol on.                              -->

    <property name="ipPort" value="3894" />

    <!-- Whether to allow anonymous access.                                 -->

    <property name="allowAnonymousAccess" value="false" />

   

    <!-- The list of supported authentication mechanisms.                   -->

    <property name="supportedMechanisms">

      <list>

        <value>SIMPLE</value>

        <value>CRAM-MD5</value>

        <value>DIGEST-MD5</value>

        <!--<value>GSSAPI</value>-->

      </list>

    </property>

   

    <!-- The FQDN of this SASL host, validated during SASL negotiation.     -->

    <property name="saslHost" value="ldap.example.com" />

   

    <!-- The Kerberos principal name for this LDAP service, used by GSSAPI. -->

    <property name="saslPrincipal" value="ldap/ldap.example.com@EXAMPLE.COM" />

   

    <!-- The desired quality-of-protection, used by DIGEST-MD5 and GSSAPI.  -->

    <property name="saslQop">

      <list>

        <value>auth</value>

        <value>auth-int</value>

        <value>auth-conf</value>

      </list>

    </property>

   

    <!-- The realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI. -->

    <property name="saslRealms">

      <list>

        <value>example.com</value>

        <value>apache.org</value>

      </list>

    </property>

   

    <!-- The base DN containing users that can be SASL authenticated.       -->

    <property name="searchBaseDn" value="ou=users,ou=system" />

   

    <!-- SSL CONFIG CAN GO HERE-->

   

    <!-- limits searches by non-admin users to a max time of 15000          -->

    <!-- milliseconds and has a default value of 10000                      -->

    <property name="maxTimeLimit" value="15000" />

 

    <!-- limits searches to max size of 1000 entries: default value is 100  -->

    <property name="maxSizeLimit" value="1000" />

 

    <!-- the collection of extended operation handlers to install           -->

    <property name="extendedOperationHandlers">

      <list>

        <!--<bean class="org.apache.directory.server.ldap.support.starttls.StartTlsHandler"/>-->

        <bean class="org.apache.directory.server.ldap.support.extended.GracefulShutdownHandler"/>

        <bean class="org.apache.directory.server.ldap.support.extended.LaunchDiagnosticUiHandler"/>

        <!-- The Stored Procedure Extended Operation is not stable yet and it may cause security risks.

        <bean class="org.apache.directory.server.ldap.support.extended.StoredProcedureExtendedOperationHandler"/>

        -->

      </list>

    </property>

  </bean>

 

  <bean id="configuration" class="org.apache.directory.server.configuration.MutableServerStartupConfiguration">

    <property name="workingDirectory" value="example.com" />

 

    <!-- Uncomment below to have the server load entries on startup!        -->

    <!-- ldifDirectory property can point to a relative file, directory or  -->

    <!-- can point to an absolute path to either using the URL path         -->

    <!-- notation: i.e. file:///Users/jack/apacheds/ldifs                   -->

 

    <property name="ldifDirectory">

      <value>./</value>

    </property>

 

    <!-- Entries will optionally be filtered using LdifLoadFilters in the   -->

    <!-- order specified.                                                   -->

    <!--

    <property name="ldifFilters">

      <list>

        <bean class="com.example.MyEntryFilter"/>

      </list>

    </property>

    -->

 

    <!-- the number of milliseconds before issuing a synch (flush to disk)  -->

    <!-- which writes out dirty pages back to disk.  To turn off synchs all -->

    <!-- together simply set this value to <= 0.  Make sure you turn on     -->

    <!-- synchOnWrite for all partitions if you do choose to do this or else-->

    <!-- writes may never persist to disk.                                  -->

    <property name="synchPeriodMillis" value="1500000" />

 

    <!-- maximum number of threads used by mina is set to 8: default is 4   -->

    <property name="maxThreads" value="40" />

 

    <property name="allowAnonymousAccess" value="false" />

    <property name="accessControlEnabled" value="false" />

   

    <!--

       It's more efficient to keep this feature turned off but you may not like

       having the creatorsName and modifiersName contain OIDs instead of short

       attributeType names instead.  So if you want the creatorsName to change

       from the normalized form which is the internal representation of

          

            '0.9.2342.19200300.100.1.1=admin,2.5.4.11=system'

      

       to a more human readabile form like:

 

            'uid=admin,ou=system'

 

       then set this property to true.

    -->

    <property name="denormalizeOpAttrsEnabled" value="true" />

 

    <property name="ntpConfiguration" ref="ntpConfiguration" />

    <property name="dnsConfiguration" ref="dnsConfiguration" />

    <property name="changePasswordConfiguration" ref="changePasswordConfiguration" />

    <property name="kdcConfiguration" ref="kdcConfiguration" />

    <property name="ldapConfiguration" ref="ldapConfiguration" />

    <property name="ldapsConfiguration" ref="ldapsConfiguration" />

 

    <property name="systemPartitionConfiguration" ref="systemPartitionConfiguration" />

 

    <property name="partitionConfigurations">

      <set>

        <ref bean="examplePartitionConfiguration"/>

        <ref bean="subscriberinfoPartitionConfiguration"/>

        <ref bean="subscriberaccessPartitionConfiguration"/>

      </set>

    </property>

   

    <property name="authenticatorConfigurations">

     <list>

        <bean class="org.apache.directory.server.core.configuration.MutableAuthenticatorConfiguration">

          <property name="name" value="normalizationService" />

          <property name="authenticatorClassName"

            value="org.apache.directory.server.core.authn.SisSimpleAuthenticator" />

        </bean>

                </list>

    </property>

   

    <property name="interceptorConfigurations">

      <list>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="normalizationService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.normalization.NormalizationService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="authenticationService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.authn.AuthenticationService" />

        </bean>

 

       

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="referralService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.referral.ReferralService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="authorizationService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.authz.AuthorizationService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="defaultAuthorizationService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.authz.DefaultAuthorizationService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="exceptionService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.exception.ExceptionService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="operationalAttributeService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.operational.OperationalAttributeService" />

        </bean>

        <!-- Uncomment to enable the password policy service

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="passwordPolicyService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.kerberos.PasswordPolicyService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="keyDerivationService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.kerberos.KeyDerivationService" />

        </bean>

        -->

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="schemaService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.schema.SchemaService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="subentryService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.subtree.SubentryService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="collectiveAttributeService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.collective.CollectiveAttributeService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="eventService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.event.EventService" />

        </bean>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="SisAdsLdapService" />

          <property name="interceptorClassName"

            value="ch.intersys.sis.ldap.ads.server.SisAdsLdapInterceptor" />

        </bean>

       

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">

          <property name="name" value="triggerService" />

          <property name="interceptorClassName"

            value="org.apache.directory.server.core.trigger.TriggerService" />

        </bean>

 

        <!-- Uncomment to enable replication service

        <bean class="org.apache.directory.mitosis.configuration.MutableReplicationInterceptorConfiguration">

          <property name="name" value="replicationService" />

          <property name="interceptorClassName"

            value="org.apache.directory.mitosis.service.ReplicationService" />

          <property name="replicationConfiguration">

            <bean class="org.apache.directory.mitosis.configuration.ReplicationConfiguration">

              <property name="replicaId">

                <bean class="org.apache.directory.mitosis.common.ReplicaId">

                  <constructor-arg>

                    <value>instance_a</value>

                  </constructor-arg>

                </bean>

              </property>

              <property name="serverPort" value="10390" />

              <property name="peerReplicas" value="instance_b@localhost:10392" />

            </bean>

          </property>

        </bean>

        -->

      </list>

    </property>

  </bean>

 

  <!-- use the following partitionConfiguration to override defaults for  -->

  <!-- the system partition                                               -->

  <bean id="systemPartitionConfiguration" class="org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration">

    <property name="id" value="system" />

    <property name="cacheSize" value="100" />

    <property name="suffix" value="ou=system" />

    <property name="partitionClassName"

      value="org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition" />

    <!-- the optimizer is enabled by default but may not always be what     -->

    <!-- you want if your queries are really simple                         -->

    <property name="optimizerEnabled" value="true" />

 

    <!--

      Synchronization on writes does not wait for synch operations

      to flush dirty pages.  Writes persist immediately to disk at

      a cost to performance with increased data integrity.  Otherwise

      the periodic synch operation will flush dirty pages using the

      synchPeriodMillis parameter in the main configuration.

    -->

    <property name="synchOnWrite" value="true" />

    <property name="indexedAttributes">

      <set>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.1" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.2" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.3" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.4" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.5" />

          <property name="cacheSize" value="10" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.6" />

          <property name="cacheSize" value="10" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.7" />

          <property name="cacheSize" value="10" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="ou" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="uid" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="objectClass" />

          <property name="cacheSize" value="100" />

        </bean>

      </set>

    </property>

    <property name="contextEntry">

      <value>

        objectClass: top

        objectClass: organizationalUnit

        objectClass: extensibleObject

        ou: system

      </value>

    </property>

  </bean>

 

 

 

            <bean id="subscriberaccessPartitionConfiguration" class="org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration">

    <property name="id" value="subscriberaccess" />

    <property name="cacheSize" value="100" />                                                                                                                                                                                             

    <property name="suffix" value="ou=subscriberaccessservice" />

   

    <!-- <property name="partitionClassName"

      value="org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition" />-->

   

   

                <property name="partitionClassName"

      value="ch.intersys.sis.ldap.ads.server.SisPartition" />

 

    <!-- the optimizer is enabled by default but may not always be what     -->

    <!-- you want if your queries are really simple                         -->

    <property name="optimizerEnabled" value="true" />

 

    <!--

      Synchronization on writes does not wait for synch operations

      to flush dirty pages.  Writes persist immediately to disk at

      a cost to performance with increased data integrity.  Otherwise

      the periodic synch operation will flush dirty pages using the

      synchPeriodMillis parameter in the main configuration.

    -->

    <property name="synchOnWrite" value="true" />

    <property name="indexedAttributes">

      <set>

 

      </set>

    </property>

    <property name="contextEntry">

      <value>

        objectClass: top

        objectClass: domain

        objectClass: extensibleObject

        ou: subscriberaccessservice

      </value>

    </property>

  </bean>

 

  <bean id="subscriberinfoPartitionConfiguration" class="org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration">

    <property name="id" value="subscribrinfo" />

    <property name="cacheSize" value="100" />

    <property name="suffix" value="ou=subscriberinformationservice" />

   

    <!-- <property name="partitionClassName"

      value="org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition" />-->

   

   

                <property name="partitionClassName"

      value="ch.intersys.sis.ldap.ads.server.SisPartition" />

 

    <!-- the optimizer is enabled by default but may not always be what     -->

    <!-- you want if your queries are really simple                         -->

    <property name="optimizerEnabled" value="true" />

 

    <!--

      Synchronization on writes does not wait for synch operations

      to flush dirty pages.  Writes persist immediately to disk at

      a cost to performance with increased data integrity.  Otherwise

      the periodic synch operation will flush dirty pages using the

      synchPeriodMillis parameter in the main configuration.

    -->

    <property name="synchOnWrite" value="true" />

    <property name="indexedAttributes">

      <set>

 

      </set>

    </property>

    <property name="contextEntry">

      <value>

        objectClass: top

        objectClass: domain

        objectClass: extensibleObject

        ou: subscriberinformationservice

      </value>

    </property>

  </bean>

 

  <bean id="examplePartitionConfiguration" class="org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration">

    <property name="id" value="example" />

    <property name="cacheSize" value="100" />

    <property name="suffix" value="dc=example,dc=com" />

    <property name="partitionClassName"

      value="org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition" />

 

    <!-- the optimizer is enabled by default but may not always be what     -->

    <!-- you want if your queries are really simple                         -->

    <property name="optimizerEnabled" value="true" />

 

    <!--

      Synchronization on writes does not wait for synch operations

      to flush dirty pages.  Writes persist immediately to disk at

      a cost to performance with increased data integrity.  Otherwise

      the periodic synch operation will flush dirty pages using the

      synchPeriodMillis parameter in the main configuration.

    -->

    <property name="synchOnWrite" value="true" />

    <property name="indexedAttributes">

      <set>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.1" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.2" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.3" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.4" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.5" />

          <property name="cacheSize" value="10" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.6" />

          <property name="cacheSize" value="10" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="1.3.6.1.4.1.18060.0.4.1.2.7" />

          <property name="cacheSize" value="10" />

        </bean>

 

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="dc" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="ou" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="krb5PrincipalName" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="uid" />

          <property name="cacheSize" value="100" />

        </bean>

        <bean class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">

          <property name="attributeId" value="objectClass" />

          <property name="cacheSize" value="100" />

        </bean>

      </set>

    </property>

    <property name="contextEntry">

      <value>

        objectClass: top

        objectClass: domain

        objectClass: extensibleObject

        dc: example

      </value>

    </property>

  </bean>

 

  <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">

    <property name="customEditors">

      <map>

        <entry key="javax.naming.directory.Attributes">

          <bean class="org.apache.directory.server.core.configuration.AttributesPropertyEditor"/>

        </entry>

      </map>

   </property>

  </bean>

</beans>

 

 

 

Dominic Stampfli

------------------------------------------------------------------

Intersys AG

Rötistrasse 6

4500 Solothurn

Tel 032 / 626 50 76

Fax 032 / 626 50 71

Mail dominic.stampfli@intersys.ch

URL http://www.intersys.ch