AnsweredAssumed Answered

registering my own IdentityService

Question asked by christoph.rettig on Oct 13, 2012
Latest reply on Oct 15, 2012 by frederikheremans1
Hi, I have written my own identity service like

public class CspIdentityService implements IdentityService, org.activiti.engine.impl.interceptor.Session {

}

and bootstrap the activiti engine using spring

  <bean id="activiti.processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    …
    <property name="identityService" ref="activiti.identityService" />
    …
  </bean>

  <bean id="activiti.identityService" class="biz.i2z.connector.activiti.service.identity.CspIdentityService">
    …
  </bean>

I also see some of my identity service methods getting called but for some reasons fetching a users tasks only work
when the groups the tasks is assigned to is also created using the excitivi explorer in the engine persistency store itself.

In the Activiti In Action book the LDAP identity service is implemented by two classes that extend the existing
org.activiti.engine.impl.persistence.entity.UserManager and org.activiti.engine.impl.persistence.entity.GroupManager
and are configured with the activiti engine using a factory approach like

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
  <property name="customSessionFactories">
    <list>
      <bean class="org.bpmnwithactiviti.chapter10.ldap.LDAPUserManagerFactory">
        …
      </bean>
      <bean class="org.bpmnwithactiviti.chapter10.ldap.LDAPGroupManagerFactory">
        …
      </bean>
    </list>
  </property>
</bean>

So my question is do I really have to use this approach for my identity service to work?

I really do not want to extend from undocumented classes and also prefer to implement well-known interfaces
instead of extending existing classses.

  best regards, Chris

Outcomes