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
- WLS 10.3.2
- Start des WLS erzeugt N – Java Prozesse des WLS gestartet
- OEL 5.3
- OpenLDAP Security Provider im WLS
- OpenLDAP – Verzeichnis hat mehr als 500 User oder Gruppen
- 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.
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:
Keine Kommentare:
Kommentar veröffentlichen