Wenn ein einzelner Benutzer (noch nicht in CRX registriert) versucht, sich anzumelden, authentifiziert CRX sich für LDAP und wenn die Authentifizierung erfolgreich ist, wird dieser Benutzer mit CRX synchronisiert. Wie erzwingen Sie die Synchronisierung von LDAP-Benutzern mit CRX, sodass Rechte zugewiesen werden können, bevor der Benutzer sich zuerst anmeldet?
Ab CQ 5.5 Service Pack-Update [1] ist das CRX, das die LDAP-Funktionalität bereitstellt, ein OSGi-Service. LDAP wird in der Registry Service als MBean registriert. Diese MBean steht in der JMX-Konsole zur Verfügung, die die ldap-Attribute und -Methoden enthält. Die Operation, die ausgeführt werden kann, ist unter [0] aufgeführt. Einige Möglichkeiten zur Synchronisierung des Benutzers sind
Manuelle Synchronisation von Benutzern, welche die Felix-Konsole verwenden
Verwenden der „CURL“
JMX-Client erstellen, bei dem LDAP MBean verwendet wird
Nachfolgend finden Sie Vorlagen-jmx-Clientcode, der die Liste der verwaisten Benutzer druckt
import javax.management.DynamicMBean;
import java.util.Hashtable;
import javax.management.MBeanServerConnection;
import javax.management.MBeanServerInvocationHandler;
import javax.management.ObjectName;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
public class LDAPSampleClient {
public static void main(String[] args) throws Exception{
String userid = "admin";
String password = "admin";
String serverUrl = "service:jmx:rmi:///jndi/rmi://localhost:9000/jmxrmi";
String OBJECT_NAME = "com.adobe.granite.ldap:host=localhost,port=389,type=Tools";
String[] buffer = new String[] { userid, password };
Hashtable<String, String[]> attributes = new Hashtable<String, String[]>();
attributes.put("jmx.remote.credentials", (String[]) buffer);
MBeanServerConnection server = (MBeanServerConnection) JMXConnectorFactory.connect(new JMXServiceURL(serverUrl), attributes).getMBeanServerConnection();
ObjectName name = new ObjectName(OBJECT_NAME);
LDAPUserMBean ldap = (LDAPUserMBean) MBeanServerInvocationHandler.newProxyInstance(server, name, LDAPUserMBean.class,false);
for(String user : ldap.listOrphanedUsers()) {
System.out.println(user);
}
}
public static interface LDAPUserMBean extends DynamicMBean {
public String[] listOrphanedUsers();
public String[] syncUsers(String[] users);
public void syncAllUsers();
public void syncUser(String user);
public void syncOrphanedUsers();
public void purgeOrphanedUsers();
}
}
[0]
[1] http://dev.day.com/packageshare/packages/public/day/cq550/update/cq-update-pkg.html
Anmerkung: - Wenn Sie die LDAP-Konfiguration ausgeschaltet haben „OR LDAP“ nicht konfiguriert ist, ist „Mbean“ in der JMX-Konsole nicht sichtbar.
CRX 2.3
Bei Ihrem Konto anmelden