Uploaded image for project: 'Kuali Rice Development'
  1. Kuali Rice Development
  2. KULRICE-14100

kimIdentityDelegateService bean definition in KIMLdapSpringBeans.xml is broken

    Details

    • Type: Bug Fix
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 2.4.2, 2.5.1
    • Fix Version/s: 2.6
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
    • Rice Module:
      KIM
    • KRAD Feature Area:
      KIM Integration
    • Sprint:
      Middleware 2.5.2 Sprint 5, Rice Sprint 2015-02-18
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes
    • Story Points:
      5

      Description

      The bean "kimIdentityDelegateService" is improperly defined in KIMLdapSpringBeans.xml

      <bean id="kimIdentityDelegateService" class="org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl"
      p:businessObjectService-ref="rice.kim.import.businessObjectService"
      p:criteriaLookupService-ref="rice.kim.import.criteriaLookupService">
      <property name="principalDao" ref="ldapPrincipalDao" />
      </bean>

      Two problems here.

      • the property businessObjectService was changed to dataObjectService in Rice 2.4.
      • the property criteriaLookupService is obsolete

      I think the bean definition should be changed to:

      <bean id="kimIdentityDelegateService" class="org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl"
      p:dataObjectService-ref="dataObjectService">
      <property name="principalDao" ref="ldapPrincipalDao" />
      </bean>

      The startup error when attempting to boot when using an ldap integration:

      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kimConfigurer' defined in class path resource [org/kuali/rice/config/RiceServiceSpringBeans.xml]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kimIdentityDelegateService' defined in class path resource [org/kuali/rice/kim/config/KIMLdapSpringBeans.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'businessObjectService' of bean class [org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl]: Bean property 'businessObjectService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)

        Attachments

          Activity

          dsiebert Daniel Seibert (Inactive) created issue -
          dsiebert Daniel Seibert (Inactive) made changes -
          Field Original Value New Value
          Assignee Daniel Seibert [ dsiebert ]
          dsiebert Daniel Seibert (Inactive) made changes -
          Description The bean "kimIdentityDelegateService" is improperly defined in KIMLdapSpringBeans.xml

          <bean id="kimIdentityDelegateService" class="org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl"
               p:businessObjectService-ref="rice.kim.import.businessObjectService"
                  p:criteriaLookupService-ref="rice.kim.import.criteriaLookupService">
                <property name="principalDao" ref="ldapPrincipalDao" />
           </bean>

          Two problems here.
          - the property businessObjectService was changed to dataObjectService in Rice 2.4.
          - the property criteriaLookupService is obsolete

          I think the bean definition should be changed to (untested):
          <bean id="kimIdentityDelegateService" class="org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl"
               p:dataObjectService-ref="rice.kim.import.businessObjectService">
                <property name="principalDao" ref="ldapPrincipalDao" />
              </bean>



          The startup error when attempting to boot when using an ldap integration:

          org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kimConfigurer' defined in class path resource [org/kuali/rice/config/RiceServiceSpringBeans.xml]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kimIdentityDelegateService' defined in class path resource [org/kuali/rice/kim/config/KIMLdapSpringBeans.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'businessObjectService' of bean class [org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl]: Bean property 'businessObjectService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
                  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)
          The bean "kimIdentityDelegateService" is improperly defined in KIMLdapSpringBeans.xml

          <bean id="kimIdentityDelegateService" class="org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl"
               p:businessObjectService-ref="rice.kim.import.businessObjectService"
                  p:criteriaLookupService-ref="rice.kim.import.criteriaLookupService">
                <property name="principalDao" ref="ldapPrincipalDao" />
           </bean>

          Two problems here.
          - the property businessObjectService was changed to dataObjectService in Rice 2.4.
          - the property criteriaLookupService is obsolete

          I think the bean definition should be changed to:

          <bean id="kimIdentityDelegateService" class="org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl"
               p:dataObjectService-ref="dataObjectService">
                <property name="principalDao" ref="ldapPrincipalDao" />
              </bean>



          The startup error when attempting to boot when using an ldap integration:

          org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kimConfigurer' defined in class path resource [org/kuali/rice/config/RiceServiceSpringBeans.xml]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kimIdentityDelegateService' defined in class path resource [org/kuali/rice/kim/config/KIMLdapSpringBeans.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'businessObjectService' of bean class [org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl]: Bean property 'businessObjectService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
                  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)
          ewestfal Eric Westfall made changes -
          Labels LDAP LDAP NearTerm
          ewestfal Eric Westfall made changes -
          Priority Major [ 3 ] Critical [ 2 ]
          Hide
          ewestfal Eric Westfall added a comment -

          It sounds to me like this the kim ldap support is pretty much broken until this is fixed.

          As a requirement of this, an integration test suite should be written which verifies the KIM ldap module functionality so we can ensure it never again just outright breaks like this without us knowing.

          Show
          ewestfal Eric Westfall added a comment - It sounds to me like this the kim ldap support is pretty much broken until this is fixed. As a requirement of this, an integration test suite should be written which verifies the KIM ldap module functionality so we can ensure it never again just outright breaks like this without us knowing.
          ewestfal Eric Westfall made changes -
          Rank Ranked higher
          ewestfal Eric Westfall made changes -
          Rank Ranked higher
          ewestfal Eric Westfall made changes -
          Story Points 5
          cniesen Claus Niesen made changes -
          Sprint Middleware 2.5.2 Sprint 5 [ 451 ]
          cniesen Claus Niesen made changes -
          Rank Ranked lower
          sonam Sona Sona (Inactive) made changes -
          Assignee Daniel Seibert [ dsiebert ] Sona Sona [ sonam ]
          cniesen Claus Niesen made changes -
          Fix Version/s 2.6 [ 17820 ]
          sonam Sona Sona (Inactive) made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Hide
          sonam Sona Sona (Inactive) added a comment - - edited

          Changed KIMLdapSpringBeans.xml to have

           <bean id="kimIdentityDelegateService" class="org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl">
                <property name="principalDao" ref="ldapPrincipalDao" />
              </bean>
          

          I had to add the following to sample-app-config.xml to enable LDAP and to test that there aren't any startup server errors and I can get to the login page. I cannot test anything else on the app since we do not have a LDAP server running.

          <param name="rice.ldap.username">uid=user,ou=Ldap Users,dc=localhost</param>
                <param name="rice.ldap.password">secret</param>
                <param name="rice.ldap.url">ldaps://localhost:636</param>
            <param name="rice.ldap.base">ou=People,dc=localhost</param>
              <param name="rice.kim.additionalSpringFiles">classpath:org/kuali/rice/kim/config/KIMLdapSpringBeans.xml</param>
          

          There is however an existing integration test LDAPIdentityServiceImplTest which uses LdapTestUtils to start and stop a test server and tests for basic operations.

          I also had to add the kim-ldap dependency to sample-app pom.

          <dependency>
                <groupId>org.kuali.rice</groupId>
                <version>${project.version}</version>
                <artifactId>rice-kim-ldap</artifactId>
           <dependency>
          
          Show
          sonam Sona Sona (Inactive) added a comment - - edited Changed KIMLdapSpringBeans.xml to have <bean id= "kimIdentityDelegateService" class= "org.kuali.rice.kim.service.impl.LdapIdentityDelegateServiceImpl" > <property name= "principalDao" ref= "ldapPrincipalDao" /> </bean> I had to add the following to sample-app-config.xml to enable LDAP and to test that there aren't any startup server errors and I can get to the login page. I cannot test anything else on the app since we do not have a LDAP server running. <param name= "rice.ldap.username" >uid=user,ou=Ldap Users,dc=localhost</param> <param name= "rice.ldap.password" >secret</param> <param name= "rice.ldap.url" >ldaps: //localhost:636</param> <param name= "rice.ldap.base" >ou=People,dc=localhost</param> <param name= "rice.kim.additionalSpringFiles" >classpath:org/kuali/rice/kim/config/KIMLdapSpringBeans.xml</param> There is however an existing integration test LDAPIdentityServiceImplTest which uses LdapTestUtils to start and stop a test server and tests for basic operations. I also had to add the kim-ldap dependency to sample-app pom. <dependency> <groupId>org.kuali.rice</groupId> <version>${project.version}</version> <artifactId>rice-kim-ldap</artifactId> <dependency>
          sonam Sona Sona (Inactive) made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          cniesen Claus Niesen made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          cniesen Claus Niesen made changes -
          Resolution Fixed [ 1 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          cniesen Claus Niesen made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          cniesen Claus Niesen made changes -
          Sprint Middleware 2.5.2 Sprint 5 [ 451 ] Middleware 2.5.2 Sprint 5, Rice 2.6.0-M1 Sprint 1 [ 451, 455 ]
          cniesen Claus Niesen made changes -
          Rank Ranked higher
          sonam Sona Sona (Inactive) made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          cniesen Claus Niesen made changes -
          Fix Version/s 2.5.3 [ 17927 ]
          Fix Version/s 2.6 [ 17820 ]
          Hide
          cniesen Claus Niesen added a comment -

          Please add this change to the 2.5 branch as well. Thanks.

          Show
          cniesen Claus Niesen added a comment - Please add this change to the 2.5 branch as well. Thanks.
          cniesen Claus Niesen made changes -
          Resolution Fixed [ 1 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          sonam Sona Sona (Inactive) made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          sonam Sona Sona (Inactive) made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          cniesen Claus Niesen made changes -
          Fix Version/s 2.6 [ 17820 ]
          Fix Version/s 2.5.3 [ 17927 ]
          Hide
          cniesen Claus Niesen added a comment -

          Commit was rolled back in the 2.5 branch.

          Show
          cniesen Claus Niesen added a comment - Commit was rolled back in the 2.5 branch.

            People

            • Assignee:
              sonam Sona Sona (Inactive)
              Reporter:
              dsiebert Daniel Seibert (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: