Uploaded image for project: 'Crowd'
  1. Crowd
  2. CWD-2030

License Updates are causing Crowd to loose contact with the PasswordEncoder jar

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • High
    • Resolution: Fixed
    • 2.0.4, 2.0.5, 2.0.6
    • 2.1.0-beta4, 2.1
    • None
    • None

    Description

      (Set as Critical because it can bring the instance down (if the count is higher than the current allowed value) and block any updates to the license)

      Going to Crowd Administration -> Licensing and updating the license may cause Crowd to report the following exception:

      com.atlassian.crowd.exception.PasswordEncoderNotFoundException: The PasswordEncoder 'atlassian-sha1' was not found in the Internal Encoders list by the PasswordEncoderFactory
      at com.atlassian.crowd.password.factory.PasswordEncoderFactoryImpl.getInternalEncoder(PasswordEncoderFactoryImpl.java:35)
      at com.atlassian.crowd.integration.directory.internal.InternalDirectory.authenticate(InternalDirectory.java:357)
      at com.atlassian.crowd.integration.directory.internal.InternalDirectory.processAuthentication(InternalDirectory.java:198)
      at com.atlassian.crowd.integration.directory.internal.InternalDirectory.authenticate(InternalDirectory.java:170)
      at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.authenticateUser(ApplicationServiceGeneric.java:215)
      at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.authenticateUser(ApplicationServiceGeneric.java:150)
      at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.authenticateUser(ApplicationServiceGeneric.java:233)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:20)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy16.authenticateUser(Unknown Source)
      at com.atlassian.crowd.console.action.License.doValidation(License.java:110)
      at com.atlassian.crowd.console.action.License.doUpdate(License.java:50)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      

      How to reproduce:
      1. Update your Crowd instance to use a small license (ie. 10 user max limit) going to Admin -> Licensing.
      2. Add more than 10 users to the the directory and ensure that they have permission to authenticate with Crowd.
      3. Logout
      4. Crowd will display a screen requesting for a license that supports more than 10 users.
      5. Even if you provide a correct user name, password and license code, the exception will be displayed once you click update.

      Steps that have helped customers to recover access to Crowd:

      1. Backup the current <Crowd-Home-Directory>/crowd.cfg.xml file and then open it and change the license value at the <property name="license"> tag to a Unlimited Evaluation license obtained at http://my.atlassian.com OR to the new license that you are trying to apply to Crowd. Restart Crowd.

      2. Change the current.license.resource.total entry value in the Crowd DB (table CWD_PROPERTY) to zero if it is different than zero and then restart Crowd.

      3. Move <atlassian-crowd-2.0.4>/crowd-webapp/WEB-INF/lib/crowd-password-encoders-2.0.4.jar to the desktop and then run Crowd. Move the JAR back to the Crowd installation and then try to update the license again.

      Attachments

        Activity

          People

            onevalainen Olli Nevalainen
            rbattaglin Renan Battaglin
            Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: