#1 2020-02-05 11:09:08

itatwork
Member
Registered: 2019-12-11
Posts: 21

LDAP-Zugriff einrichten

Hallo,

ich versuche den Reportserver Enterprise mit dem Active-Directory zu verbinden.
Leider bekomme ich beim Ausführen des Scripts "importldap.groovy" ein Problem mit dem Suchergebnis der AD-Benutzer.


LDAP-Konfiguration in "ldapimport.groovy":

lul.setProviderUrl("ldap://dc1.intern.r-m.de:389");
lul.setSecurityPrincipal("CN=Test,OU=Services,OU=Accounts,OU=IT-Support,OU=Teststadt,DC=intern,DC=r-m,DC=de");
lul.setSecurityCredentials("anypassword");
lul.setLdapBase("DC=intern,DC=r-m,DC=de");
OrganisationalUnit targetNode = (GLOBALS.findObject("/usermanager/external"));

if(null == targetNode){
	AbstractUserManagerNode umRoot = userManagerService.getRoots().get(0);
	targetNode = new OrganisationalUnit("external");
	umRoot.addChild(targetNode);
	userManagerService.persist(targetNode);
}

lul.setTargetNode(targetNode);
lul.run();

public class LdapUserLoader {

	private final Logger logger = Logger.getLogger(getClass().getName());
	private String ldapBase;
	private String ldapFilter = "(&(objectClass=user)(primaryGroupID=513)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(memberOf=cn=ReportUsers,ou=Groups,ou=Common,ou=Teststadt,dc=intern,dc=r-m,dc=de))";


Output von "ldapimport.groovy":

reportserver$ exec -c -t ldapimport.groovy
net.datenwerke.rs.scripting.service.scripting.exceptions.ScriptEngineException: javax.script.ScriptException: java.lang.RuntimeException: Error processing search result: CN=Christian Dalla Libera,OU=Employees,OU=Accounts,OU=IT-Support,OU=Teststadt,DC=intern,DC=r-m,DC=de
------- SCRIPT ERROR INFO -------
Script execution failed.
error message: javax.script.ScriptException: java.lang.RuntimeException: Error processing search result: CN=Christian Dalla Libera,OU=Employees,OU=Accounts,OU=IT-Support,OU=Teststadt,DC=intern,DC=r-m,DC=de (java.lang.RuntimeException)
script arguments:
file: ldapimport.groovy (id: 324301, line 429)
line number: 429 (45, 270)
line: loadFromDirectory();

at net.datenwerke.rs.scripting.service.scripting.engines.GroovyEngine.eval(GroovyEngine.java:79)
at net.datenwerke.rs.scripting.service.scripting.ScriptingServiceImpl.executeScript(ScriptingServiceImpl.java:217)
at net.datenwerke.rs.scripting.service.scripting.ScriptingServiceImpl.executeScript(ScriptingServiceImpl.java:263)
at net.datenwerke.rsenterprise.license.service.EnterpriseCheckInterceptor.invoke(EnterpriseCheckInterceptor.java:35)
at net.datenwerke.rs.scripting.service.scripting.ScriptingServiceImpl.executeScript(ScriptingServiceImpl.java:317)
at net.datenwerke.rsenterprise.license.service.EnterpriseCheckInterceptor.invoke(EnterpriseCheckInterceptor.java:35)
at net.datenwerke.rs.scripting.service.scripting.ScriptingServiceImpl.executeScript(ScriptingServiceImpl.java:288)
at net.datenwerke.rsenterprise.license.service.EnterpriseCheckInterceptor.invoke(EnterpriseCheckInterceptor.java:35)
at net.datenwerke.rs.scripting.service.scripting.terminal.commands.ExecScriptCommand.doTransactionExecute(ExecScriptCommand.java:345)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66)
at net.datenwerke.rs.scripting.service.scripting.terminal.commands.ExecScriptCommand$1$1.doFilter(ExecScriptCommand.java:269)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
at net.datenwerke.rs.scripting.service.scripting.terminal.commands.ExecScriptCommand$1.call(ExecScriptCommand.java:263)
at net.datenwerke.rs.scripting.service.scripting.terminal.commands.ExecScriptCommand$1.call(ExecScriptCommand.java:1)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: javax.script.ScriptException: java.lang.RuntimeException: Error processing search result: CN=Christian Dalla Libera,OU=Employees,OU=Accounts,OU=IT-Support,OU=Teststadt,DC=intern,DC=r-m,DC=de
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:347)
at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:41)
at net.datenwerke.rs.scripting.service.scripting.engines.GroovyEngine.eval(GroovyEngine.java:74)
... 23 more
Caused by: java.lang.RuntimeException: Error processing search result: CN=Christian Dalla Libera,OU=Employees,OU=Accounts,OU=IT-Support,OU=Teststadt,DC=intern,DC=r-m,DC=de
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:232)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:252)
at ldap.LdapUserLoader.loadFromDirectory(Script29.groovy:295)
at ldap.LdapUserLoader.run(Script29.groovy:429)
at ldap.LdapUserLoader$run$4.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:114)
at ldap.Script29.run(Script29.groovy:45)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:344)
... 25 more
Caused by: java.lang.IllegalStateException: Missing parent for CN=Christian Dalla Libera,OU=Employees,OU=Accounts,OU=IT-Support,OU=Teststadt,DC=intern,DC=r-m,DC=de
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:232)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:244)
at ldap.LdapUserLoader.loadFromDirectory(Script29.groovy:270)
... 32 more

Ist das ein Problem mit dem ldapFilter?

Gruß
Christoph Kneußel

Offline

#2 2020-02-05 13:50:07

itatwork
Member
Registered: 2019-12-11
Posts: 21

Re: LDAP-Zugriff einrichten

Die gleiche Abfrage mit ldapsearch hingegen, funktioniert einwandfrei:

ldapsearch -h dc1.intern.r-m.de -D CN=Test,OU=Services,OU=Accounts,OU=IT-Support,OU=Teststadt,DC=intern,DC=r-m,DC=de -w anypassword -b DC=intern,DC=r-m,DC=de -LLL "(&(objectClass=user)(primaryGroupID=513)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(memberOf=cn=ReportUsers,ou=Groups,ou=Common,ou=Teststadt,dc=intern,dc=r-m,dc=de))"

Erste Zeilen vom Output:

dn: CN=Christian Dalla Libera,OU=Employees,OU=Accounts,OU=IT-Support,OU=Weiter
 stadt,DC=intern,DC=r-m,DC=de
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Christian Dalla Libera
sn: Dalla Libera
givenName: Christian
instanceType: 4
whenCreated: 20160928141604.0Z
uSNCreated: 4383
name: Christian Dalla Libera
objectGUID:: XtJN+I8Oek6d+sJJmzPCMQ==
codePage: 0
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAA43AQ5jcJH2vS8sv8QwYAAA==
sAMAccountName: cdallalibera
sAMAccountType: 805306368
userPrincipalName: cdallalibera@intern.r-m.de
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=intern,DC=r-m,DC=de
unixUserPassword: ABCD!efgh12345$67890
uid: cdallalibera
msSFU30Name: cdallalibera
msSFU30NisDomain: intern
uidNumber: 10002
gidNumber: 50001
unixHomeDirectory: /home/cdallalibera
loginShell: /bin/sh
msDS-SupportedEncryptionTypes: 0
userAccountControl: 66048
mail: cdallalibera@r-m.de
otherIpPhone: test
initials: CDL

Gruß
Christoph Kneußel

Last edited by itatwork (2020-02-06 07:35:12)

Offline

#3 2020-02-06 12:32:48

jalbrecht
Administrator
Registered: 2016-10-21
Posts: 154

Re: LDAP-Zugriff einrichten

Hallo Christoph,

erst mal vielen Dank für den Spam Alarm. Diese Woche haben wir - Krankheit und Urlaubsbedingt - viele Abwesenheiten. Bitte hab daher ein wenig Geduld was ide Antworten auf Deine Fragen angeht.

viele Grüße
Jan

Offline

#4 2020-02-06 16:00:38

itatwork
Member
Registered: 2019-12-11
Posts: 21

Re: LDAP-Zugriff einrichten

Hallo Jan,

kein Thema, das verstehe ich.

Gruß
Christoph

Offline

#5 2020-02-10 09:00:38

eduardo
Administrator
Registered: 2016-11-01
Posts: 1,535
Website

Re: LDAP-Zugriff einrichten

Hi itatwork,

bitte versuch das:

im ldapimport Skript folgendes:

AbstractUserManagerNode parent = this.nodesInDirectoryByName.get(parentName);
					if(null == parent){
						if(parentName.equals(new LdapName(ldapBase))){
							/* root node */
							parent = targetNode;
						}else{
							throw new IllegalStateException("Missing parent for " + sr.getNameInNamespace());
						}
					}

durch

AbstractUserManagerNode parent = targetNode;

ersetzen.

Dann wird alles direkt in Deinen root importiert (per default hier : /usermanager/external)

In Deiner Fehlermeldung fehlt der parent-Node von einem User: Caused by: java.lang.IllegalStateException: Missing parent for ...

Viele Grüße
Eduardo

Offline

#6 2020-02-10 11:19:52

itatwork
Member
Registered: 2019-12-11
Posts: 21

Re: LDAP-Zugriff einrichten

Hallo Eduardo,

vielen Dank, das hat funktioniert und der User-Login mit AD-Passwort auch.

Wenn ich User aus der entsprechenden AD-Gruppe entferne und den LDAP-Import nochmal anstoße, werden die User im Reportserver nicht entfernt.
Kann man das einstellen?
Manuell kann ich sie nicht entfernen, da der "alte" User schreibgeschützt ist.

Gruß
Christoph

Offline

#7 2020-02-10 12:03:51

eduardo
Administrator
Registered: 2016-11-01
Posts: 1,535
Website

Re: LDAP-Zugriff einrichten

Hallo Christoph,

schau Dir bitte das an: https://forum.reportserver.net/viewtopi … 6979#p6979

Viele Grüße
Eduardo

Offline

#8 2020-02-11 07:57:42

itatwork
Member
Registered: 2019-12-11
Posts: 21

Re: LDAP-Zugriff einrichten

Hallo Eduardo,

das hat funktioniert, jedoch kommt beim nächsten Start des Import-Scripts folgende Fehlermeldung:

reportserver$ exec -c -t ldapimport.groovy
net.datenwerke.rs.scripting.service.scripting.exceptions.ScriptEngineException: javax.script.ScriptException: net.datenwerke.treedb.service.treedb.exceptions.UnsupportedChildException: Tried to add an object of type OrganisationalUnit to User. This is not possible.
------- SCRIPT ERROR INFO -------
Script execution failed.
error message: javax.script.ScriptException: net.datenwerke.treedb.service.treedb.exceptions.UnsupportedChildException: Tried to add an object of type OrganisationalUnit to User. This is not possible. (net.datenwerke.treedb.service.treedb.exceptions.UnsupportedChildException)
script arguments:
file: ldapimport.groovy (id: 324301, line 40)
line number: 40
line: umRoot.addChild(targetNode);

at net.datenwerke.rs.scripting.service.scripting.engines.GroovyEngine.eval(GroovyEngine.java:79)
at net.datenwerke.rs.scripting.service.scripting.ScriptingServiceImpl.executeScript(ScriptingServiceImpl.java:217)
at net.datenwerke.rs.scripting.service.scripting.ScriptingServiceImpl.executeScript(ScriptingServiceImpl.java:263)
at net.datenwerke.rsenterprise.license.service.EnterpriseCheckInterceptor.invoke(EnterpriseCheckInterceptor.java:35)
at net.datenwerke.rs.scripting.service.scripting.ScriptingServiceImpl.executeScript(ScriptingServiceImpl.java:317)
at net.datenwerke.rsenterprise.license.service.EnterpriseCheckInterceptor.invoke(EnterpriseCheckInterceptor.java:35)
at net.datenwerke.rs.scripting.service.scripting.ScriptingServiceImpl.executeScript(ScriptingServiceImpl.java:288)
at net.datenwerke.rsenterprise.license.service.EnterpriseCheckInterceptor.invoke(EnterpriseCheckInterceptor.java:35)
at net.datenwerke.rs.scripting.service.scripting.terminal.commands.ExecScriptCommand.doTransactionExecute(ExecScriptCommand.java:345)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66)
at net.datenwerke.rs.scripting.service.scripting.terminal.commands.ExecScriptCommand$1$1.doFilter(ExecScriptCommand.java:269)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
at net.datenwerke.rs.scripting.service.scripting.terminal.commands.ExecScriptCommand$1.call(ExecScriptCommand.java:263)
at net.datenwerke.rs.scripting.service.scripting.terminal.commands.ExecScriptCommand$1.call(ExecScriptCommand.java:1)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: javax.script.ScriptException: net.datenwerke.treedb.service.treedb.exceptions.UnsupportedChildException: Tried to add an object of type OrganisationalUnit to User. This is not possible.
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:347)
at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:41)
at net.datenwerke.rs.scripting.service.scripting.engines.GroovyEngine.eval(GroovyEngine.java:74)
... 23 more
Caused by: net.datenwerke.treedb.service.treedb.exceptions.UnsupportedChildException: Tried to add an object of type OrganisationalUnit to User. This is not possible.
at net.datenwerke.treedb.service.treedb.AbstractNode.addChild(AbstractNode.java:354)
at net.datenwerke.treedb.service.treedb.AbstractNode.addChild(AbstractNode.java:330)
at net.datenwerke.treedb.service.treedb.AbstractNode$addChild.call(Unknown Source)
at ldap.Script3.run(Script3.groovy:40)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:344)
... 25 more
reportserver$

Ich hatte diese Lösung probiert, hat aber nicht geholfen:

https://forum.reportserver.net/viewtopic.php?id=291

Vielleicht habe ich das falsch implementiert:

					if(objectClass.contains("organizationalUnit")) {
						try {
							umNode = createOUNode(sr, parent);
						}catch(net.datenwerke.treedb.service.treedb.exceptions.UnsupportedChildException e){
							throw new RuntimeException("NODE=" + sr.toString() + ", PARENT=" + parent.toString, e);
						}

					} else if(objectClass.contains("user")) {
						umNode = createUserNode(sr, parent);

					} else if(objectClass.contains("group")){
						umNode = createGroupNode(sr, parent);
					}

Danke und Gruß
Christoph

Offline

#9 2020-02-12 10:52:26

eduardo
Administrator
Registered: 2016-11-01
Posts: 1,535
Website

Re: LDAP-Zugriff einrichten

Hallo Christoph,

ich sehe die Ausgabe nicht,... kannst Du bitte mit dem Logger versuchen, eine Ausgabe zu erzeugen?
Ggf. musst Du den Logger zum Objekt mittels des Konstruktors überreichen, damit da benutzt werden kann.

import java.util.logging.Level;
import java.util.logging.Logger;
  
logger = Logger.getLogger(getClass().getName());

logger.log(Level.SEVERE, "NODE=" + sr.toString() + ", PARENT=" + parent.toString); 
       

Viele Grüße
Eduardo

Offline

#10 2020-02-13 10:54:08

itatwork
Member
Registered: 2019-12-11
Posts: 21

Re: LDAP-Zugriff einrichten

Hallo Eduardo,

ich habe das Logging bisschen ausgeweitet und es kam raus, dass es ein Problem mit dem "targetNode" gibt (siehe Notiz im Code):

lul.setProviderUrl("ldap://dc1.intern.r-m.de:389");
lul.setSecurityPrincipal("CN=Test,OU=Services,OU=Accounts,OU=IT-Support,OU=Teststadt,DC=intern,DC=r-m,DC=de");
lul.setSecurityCredentials("");

lul.setLdapBase("DC=intern,DC=r-m,DC=de");
OrganisationalUnit targetNode = (GLOBALS.findObject("/usermanager/external"));

if(null == targetNode){
	AbstractUserManagerNode umRoot = userManagerService.getRoots().get(0);
	targetNode = new OrganisationalUnit("external");
	
	/* Hier taucht der Fehler auf! */
	umRoot.addChild(targetNode);
	/* 
	Exception Message:
	net.datenwerke.rs.scripting.service.scripting.exceptions.ScriptEngineException: javax.script.ScriptException: net.datenwerke.treedb.service.treedb.exceptions.UnsupportedChildException: Tried to add an object of type OrganisationalUnit to User. This is not possible.
	*/

	userManagerService.persist(targetNode);
}

Gruß
Christoph

Offline

#11 2020-02-13 11:01:21

eduardo
Administrator
Registered: 2016-11-01
Posts: 1,535
Website

Re: LDAP-Zugriff einrichten

Hallo Christoph,

kannst Du bitte mit folgendem Skript prüfen, ob es neben dem eigentlichen Root (OU) andere Root-Nodes gibt? Z.B. Benutzer?

import java.util.Map.Entry
import java.util.logging.Level
import java.util.logging.Logger


import net.datenwerke.security.service.usermanager.UserManagerService
import net.datenwerke.security.service.usermanager.entities.AbstractUserManagerNode
import net.datenwerke.security.service.usermanager.entities.Group
import net.datenwerke.security.service.usermanager.entities.OrganisationalUnit
import net.datenwerke.security.service.usermanager.entities.User

UserManagerService userManagerService = GLOBALS.getRsService(UserManagerService.class);

Logger logger = Logger.getLogger(getClass().getName());
List<AbstractUserManagerNode> umRoots = userManagerService.getRoots();

for (AbstractUserManagerNode rootNode: umRoots) {
    
  logger.log(Level.SEVERE, rootNode.getName() + ": " + rootNode);
  
}

Viele Grüße
Eduardo

Offline

#12 2020-02-13 14:18:10

itatwork
Member
Registered: 2019-12-11
Posts: 21

Re: LDAP-Zugriff einrichten

Hallo Eduardo,

das stand, nach dem Script-Ausführen, im Log File:

13-Feb-2020 15:12:42.235 SEVERE [scriptExec-71] java_util_logging_Logger$log$1.call Test: Test
13-Feb-2020 15:12:42.236 SEVERE [scriptExec-71] java_util_logging_Logger$log$1.call User Root: net.datenwerke.security.service.usermanager.entities.OrganisationalUnit@4

Gruß
Christoph

Offline

#13 2020-02-17 11:40:25

eduardo
Administrator
Registered: 2016-11-01
Posts: 1,535
Website

Re: LDAP-Zugriff einrichten

Hallo Christoph,

bei Dir taucht der Fehler hier auf:

/* Hier taucht der Fehler auf! */
umRoot.addChild(targetNode);

Kannst Du mittels Logging herausfinden, was umRoot und targetNode sind ? also z.B. indem Du die Werte ausloggst, kurz bevor der Fehler passiert. Dann wissen wir vlt. warum das passiert.

Grüße
Eduardo

Offline

#14 2020-02-18 12:35:11

itatwork
Member
Registered: 2019-12-11
Posts: 21

Re: LDAP-Zugriff einrichten

Hallo Eduardo,

ich gehe von aus, dass der Wert von targetNode=null ist, da er sonst nicht in der Bedingung feststeckt und
eine neue OU anlegen will:

if(null == targetNode){
	AbstractUserManagerNode umRoot = userManagerService.getRoots().get(0);
	targetNode = new OrganisationalUnit("external");
	umRoot.addChild(targetNode);
	userManagerService.persist(targetNode);
}

Das ist der Original-Code vom ldapimport.groovy Script.

Was mich wundert ist, dass "/usermanager/" leer ist und man dort keine Ordner anlegen kann.
Wenn man ein Verzeichnis anlegen will, kommt die gleiche Fehlermeldung, wie beim ldapimport-Script.

reportserver$ ls -l usermanager/
reportserver$ ls -l usermanager/
reportserver$ cd usermanager/
reportserver$ mkdir external
Tried to add an object of type OrganisationalUnit to User. This is not possible.
reportserver$

Siehe auch mein Screenshot von "Users and Groups" wo man die angelegten OUs sieht.

Update:
Kann man Screenshots hier im Forum mitschicken?

Gruß
Christoph

Last edited by itatwork (2020-02-19 07:44:22)

Offline

Board footer

Powered by FluxBB