Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-22061

Upgrade migration path for atlassian-user/osuser hybrid configuration.

    XMLWordPrintable

Details

    Description

      The Confluence upgrade will fail if osuser + LDAP configuration is present in atlassian-user.xml file.

      I replicated this setup:

      atlassian-user.xml file
      <atlassian-user>
          <repositories>
              <hibernate name="Hibernate Repository" key="hibernateRepository"  description="Hibernate Repository" cache="true"/> 
              <osuser name="OSUser Repository" key="osuserRepository"/>
            
          </repositories>
      </atlassian-user>
      
      osuser.xml file
      <opensymphony-user>
          <!--
      		Authenticators can take properties just like providers.
      
      		This smart authenticator should work for 'most' cases - it dynamically looks up
      		the most appropriate authenticator for the current server.
      	-->
          <authenticator class="com.opensymphony.user.authenticator.SmartAuthenticator"/>
      
      
      	<provider class="com.atlassian.confluence.user.ConfluenceLDAPCredentialsProvider">
      	 <property name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</property>
      	 <property name="java.naming.provider.url">ldap://crowd-ad1:389</property>
      	 <property name="searchBase">dc=sydney,dc=atlassian,dc=com</property>
      	 <property name="uidSearchName">cn</property>
      	 <property name="java.naming.security.principal">cn=Administrator,cn=Users,dc=sydney,dc=atlassian,dc=com</property>
      	 <property name="java.naming.security.credentials">atlassian</property>
      	 <property name="exclusive-access">true</property>
      	</provider>
      <!--
      
          <provider class="bucket.user.providers.CachingCredentialsProvider">
              <property name="chain.classname">com.atlassian.confluence.user.providers.jira.JiraJdbcCredentialsProvider</property>
              <property name="chain.datasource">java:comp/env/jdbc/JiraDS</property>
          </provider>
          <provider class="bucket.user.providers.CachingAccessProvider">
              <property name="chain.classname">com.atlassian.confluence.user.providers.jira.JiraJdbcAccessProvider</property>
              <property name="chain.datasource">java:comp/env/jdbc/JiraDS</property>
          </provider>
          <provider class="bucket.user.providers.CachingProfileProvider">
              <property name="chain.classname">com.atlassian.confluence.user.providers.jira.JiraJdbcProfileProvider</property>
              <property name="chain.datasource">java:comp/env/jdbc/JiraDS</property>
              <property name="chain.configuration.provider.class">bucket.user.BucketHibernateConfigProvider</property>
          </provider>
       -->
          <provider class="bucket.user.providers.CachingCredentialsProvider">
              <property name="chain.classname">com.opensymphony.user.provider.hibernate.HibernateCredentialsProvider</property>
              <property name="chain.configuration.provider.class">bucket.user.BucketHibernateConfigProvider</property>
          </provider>
          <provider class="bucket.user.providers.CachingAccessProvider">
              <property name="chain.classname">com.opensymphony.user.provider.hibernate.HibernateAccessProvider</property>
              <property name="chain.configuration.provider.class">bucket.user.BucketHibernateConfigProvider</property>
          </provider>
      
          <provider class="bucket.user.providers.CachingProfileProvider">
              <property name="chain.classname">com.opensymphony.user.provider.hibernate.HibernateProfileProvider</property>
              <property name="chain.configuration.provider.class">bucket.user.BucketHibernateConfigProvider</property>
          </provider>
          <!--<provider class="com.opensymphony.user.provider.memory.MemoryCredentialsProvider" />
          <provider class="com.opensymphony.user.provider.memory.MemoryAccessProvider" />
          <provider class="com.opensymphony.user.provider.memory.MemoryProfileProvider" />-->
      </opensymphony-user>
      

      The upgrade will fail with following error:

      2011-03-22 12:38:23,262 INFO [main] [confluence.upgrade.upgradetask.EmbeddedCrowdInitUpgradeTask] doUpgrade Created new crowd application object.
      2011-03-22 12:38:23,342 ERROR [main] [atlassian.confluence.upgrade.UpgradeLauncherServletContextListener] contextInitialized Upgrade failed, application will not start: java.lang.UnsupportedOperationException: Unrecognised user management configuration can not be upgraded.
      com.atlassian.confluence.upgrade.UpgradeException: java.lang.UnsupportedOperationException: Unrecognised user management configuration can not be upgraded.
              at com.atlassian.confluence.upgrade.AbstractUpgradeManager.upgrade(AbstractUpgradeManager.java:84)
              at com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager.upgrade(DefaultUpgradeManager.java:139)
              at com.atlassian.confluence.upgrade.UpgradeLauncherServletContextListener.contextInitialized(UpgradeLauncherServletContextListener.java:28)
              at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
      

      Attachments

        Activity

          People

            matt@atlassian.com Matt Ryall
            asridhar AjayA
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: