While trying to fix
DERBY-1000 I tried to set up Derby's network server to use LDAP authentication, but I ran into something that looks like a bug, but could just as well be my own configuration mistake. I would appreciate any help in figuring this out. =)
The problem is a NullPointerException in the Network Server when it tries to initialize the LDAP authentication service. The attached derby.log shows the exception and its stacktrace. The attached derby.properties is what I put in the derby home directory.
I'm seeing this problem in the trunk as well as my own build of the 10.1 branch and the 10.1.2.1 release build available from the Derby web site. ( http://db.apache.org/derby/releases/release-10.1.2.1.cgi )
The problem is cause by the setInitDirContextEnv method in JNDIAuthenticationSchemeBase receiving a null dbProps argument, which it obviously doesn't expect. Adding a check for a null dbProps argument and returning immediately after creating the initDirContextEnv object fixes the NullPointerException and makes LDAP authentication work for me. This is a reasonable enough robustness fix and shouldn't have any negative impact, but if the source of the problem is that JNDIAuthenticationSchemeBase should never receive that null pointer in the first place, more patching is needed. I'm not sure about this, so I'm leaving it up to the experts to decide this. =)