Java LDAP与activiti的集成

Java LDAP与activiti的集成,java,configuration,ldap,activiti,Java,Configuration,Ldap,Activiti,我想用activiti引擎配置ldap,我接着说 但我不确定它是否正常工作,所以要测试它,我想从Active Directory获取所有用户,有人能帮我吗? 我正在使用activiti 5.21.0版本和java 这是我的配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w

我想用activiti引擎配置ldap,我接着说 但我不确定它是否正常工作,所以要测试它,我想从Active Directory获取所有用户,有人能帮我吗?
我正在使用activiti 5.21.0版本和java
这是我的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

  <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
    <property name="driverClass" value="org.h2.Driver" />
    <property name="url" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />
    <property name="username" value="sa" />
    <property name="password" value="" />
  </bean>

  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
  </bean>

  <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    <property name="dataSource" ref="dataSource" />
    <property name="transactionManager" ref="transactionManager" />
    <property name="databaseSchemaUpdate" value="true" />
    <property name="jobExecutorActivate" value="false" />

     <property name="configurators">
          <list>
              <bean class="org.activiti.ldap.LDAPConfigurator">

                <!-- Server connection params -->
                <property name="server" value="ldap://localhost" />
                <property name="port" value="10389" />
                <property name="user" value="uid=admin, ou=users, o=activiti" />
                <property name="password" value="pass" />

                <!-- Query params -->
                <property name="baseDn" value="o=activiti" />
                <property name="queryUserByUserId" value="((objectClass=inetOrgPerson)(uid={0}))" />
                <property name="queryUserByFullNameLike" value="((objectClass=inetOrgPerson)(|({0}=*{1}*)({2}=*{3}*)))" />
                <property name="queryGroupsForUser" value="((objectClass=groupOfUniqueNames)(uniqueMember={0}))" />

                <!-- Attribute config -->
                <property name="userIdAttribute" value="uid" />
                <property name="userFirstNameAttribute" value="cn" />
                <property name="userLastNameAttribute" value="sn" />
                <property name="userEmailAttribute" value="mail" />


                <property name="groupIdAttribute" value="cn" />
                <property name="groupNameAttribute" value="cn" />

              </bean>
          </list>
        </property>
  </bean>

  <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
    <property name="processEngineConfiguration" ref="processEngineConfiguration" />
  </bean>

  <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
  <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" />
  <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />
  <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" />
  <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" />


</beans>

如果您的目标LDAP是您建议的Active Directory,那么这一行几乎肯定是不正确的

<property name="user" value="uid=admin, ou=users, o=activiti" />

Active Directory基本DN的格式通常为dc=domain,dc=com,而的eDirectory通常以组织对象为根


uid=admin节点建议您从一个与OpenLDAP样式目录对话的示例中获取此信息。广告中的默认命名是cn=Username(通常cn=First-Last)

好的,谢谢,但是你知道如何在java中测试它吗?@WassimMakni首先,修复DN,并确保密码正确,我假设你为公众消费屏蔽了它。你想从广告中得到一个错误,说明它失败的原因。我决定使用ApacheDirectoryStudio作为OpenLDAP。层次结构是o=mojo ou=groups cn=admin cn=user ou=users cn=user1 cn=user2等等。你能建议我修改我的配置吗file@WassimMakni所以绑定DN是cn=admin,ou=Groups,如果我没看错的话。基本DN将是ou=Users,o=mojo?使用LDAP浏览器查看您的树,并查看目标对象的正确可分辨名称(Admin user的DN和容纳用户的容器的DN)。这就是我的树,因此我认为这一行
,因为我想获取mojo中的所有元素