2010-01-15

WLS und OpenLDAP: netscape.ldap.LDAPException: error result (4)

Fehlfunktion

Die Anmeldung an einer Web Applikation schlägt fehl. Im Logfile findet sich folgender StackTrace:

####<DD.MM.YYYY HH:MM Uhr MEZ> <Error> <Console> <blarc4tst> <AdminServer> <[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1263286974352> <BEA-240003> <Console encountered the following error java.lang.RuntimeException: netscape.ldap.LDAPException: error result (4)
    at weblogic.security.providers.authentication.LDAPAtnNameList.handleUnexpectedLDAPException(LDAPAtnNameList.java:183)
    at weblogic.security.providers.authentication.LDAPAtnNameList.advance(LDAPAtnNameList.java:107)
    at weblogic.security.providers.utils.ListerManager.advance(ListerManager.java:233)
    at weblogic.security.providers.authentication.LDAPAtnDelegate.advance(LDAPAtnDelegate.java:1284)
    at weblogic.security.providers.authentication.LDAPAuthenticatorImpl.advance(LDAPAuthenticatorImpl.java:67)
    at weblogic.security.providers.authentication.OpenLDAPAuthenticatorMBeanImpl.advance(OpenLDAPAuthenticatorMBeanImpl.java:235)
    at sun.reflect.GeneratedMethodAccessor476.invoke(Unknown Source)

Kontext / Fakten

  1. WLS 10.3.2
  2. Start des WLS erzeugt N – Java Prozesse des WLS gestartet
  3. OEL 5.3
  4. OpenLDAP Security Provider im WLS
  5. OpenLDAP – Verzeichnis hat mehr als 500 User oder Gruppen
  6. Konfiguration OpenLDAP Secuity Provider ist korrekt

 

Problem

Die Fehlermeldung:

netscape.ldap.LDAPException: error result (4)

besagt das, dass SIZELIMIT der LDAP Anfrage erreicht wurde. Das heißt die LDAP Anfrage vom WLS wird vom OpenLDAP Server abgebrochen, da die Menge der Anfrage über 500 Einträge beinhaltet.

OpenLDAP Sizelimit Default Parameter

If no sizelimit directive is defined the default is 500. Examples:

sizelimit 0

# do not logout idle clients

sizelimit 100

# limit responses to a maximum of 100

# extended form

sizelimit size=100

# behaves exactly the same as sizelimit 100

sizelimit size.soft=100 size.hard=200

# if no client limit = 100

# if client limit > 200 - rejected

# no limits to number of candidates searched

sizelimit size.unchecked=1000

# if no client limit = 500 max returned (default)

# else client limit

# if client limit > 500 - rejected (default)

# if more than 1000 candidates - rejected

Lösung

a.) Optimierung der User und Group Filter im WLS LDAP Provider, so dass eine kleinere Ergebnismenge erzeugt wird, die nicht durch das SIZELIMIT eingeschränkt wird.

1

b.) Das Sizelimit auf dem LDAP Server muss entsprechend der Systemumgebung angepasst werden.

[oracle@telde ~]# su
Passwort:

[root@telde ~]# cd /etc/openldap
[root@telde openldap]# service ldap stop

:

[root@telde openldap]# vi sldapd.conf

{i = Insert following lines}

# set sizelimit over default value (500)
sizelimit 100

{ESC : wq}

[root@telde openldap]# service ldap start

:

[root@telde openldap]# exit

Anmerkung

Weitere Informationen finden sich hier:

Chapter 6. LDAP Configuration

Keine Kommentare:

Kommentar veröffentlichen