LDAP user synchronization using scheduler
hello,
is there ootb functionality available synchronize users ldap cq5?
if not, please me proceed in below scenario.
i have written scheduler, pull user details ldap , create user cq using usermanager. process not creating user same system creates when user logs in. finding difficulty in setting attribute rep:principalname , process throwing below given exception.
com.wem.ldap.scheduledperiodicjob repositoryexception while getting session javax.jcr.nodetype.constraintviolationexception: attempt modify protected property rep:principalname of user 'xxxx'
@ org.apache.jackrabbit.core.security.user.authorizableimpl.checkprotectedproperty(authoriz ableimpl.java:447)
@ org.apache.jackrabbit.core.security.user.authorizableimpl.setproperty(authorizableimpl.ja va:174)
@ org.apache.jackrabbit.core.security.user.userimpl.setproperty(userimpl.java:38)
@ com.wem.ldap.scheduledperiodicjob.run(scheduledperiodicjob.java:136)
@ org.apache.sling.commons.scheduler.impl.quartzjobexecutor.execute(quartzjobexecutor.java: 56)
@ org.quartz.core.jobrunshell.run(jobrunshell.java:213)
@ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886)
@ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908)
@ java.lang.thread.run(thread.java:662)
here code have written
resourceresolver = resourceresolverfactory.getadministrativeresourceresolver(null);
session = resourceresolver.adaptto(session.class);
jackrabbitsession jackrabbitsession = (jackrabbitsession) session;
usermanager manager = jackrabbitsession.getusermanager();
user = manager.createuser("xxxx", "xxxxx");
value = valuefactory.createvalue("xxxx");
user.setproperty("cq:first-name", value);
value = valuefactory.createvalue("xxxx");
user.setproperty("cq:last-name", value);
value = valuefactory.createvalue("xxx@xxxx.com");
user.setproperty("rep:e-mail", value);
value = valuefactory.createvalue("cn=xxxx,ou=users,dc=company,dc=com");
user.setproperty("rep:principalname", value);
jackrabbitsession.save();
can please provide code block create user, needs authenticated against ldap password.
thanks,
sastry
hi sastry,
for earlier cq5 can use [1]. cq5.5 please install latest update1 , can sync using jmx following[2].
[2]
* go /system/console/jmx , login admin
* search com.adobe.granite.ldap , click on it
* see 2 methods. syncuser & syncuserlist. supply necessary parameter in 5.4.
thanks,
sham
More discussions in Archived Spaces
adobe
Comments
Post a Comment