Exactly, I get the error message already mentioned:
ERROR [stderr] (Thread-131) javax.naming.InvalidNameException: ldap.role.ctx: [LDAP: error code 34 - 0000208F: NameErr: DSID-031001BA, problem 2006 (BAD_NAME), data 8350, best match of:
ERROR [stderr] (Thread-131) 'ldap.role.ctx'
ERROR [stderr] (Thread-131) ]; remaining name 'ldap.role.ctx'
The only way to make this error goes away was uncommenting the ldap.user.roles.ctx and defining it's value the same as the one defined in ldap.role.ctx
ldap.user.roles.ctx=OU\=Security,OU\=Groups,OU\=_company,DC\=company,DC\=com
And from the error message we can clearly see that the program is getting ldap.role.ctx="ldap.role.ctx".
That's why I'm poiting the line 236
String roleContext = this.config.getProperty(USER_ROLES_CTX, ROLE_CTX);
Because in this line seems to be where the problem rises, as we are passing the ROLE_CTX (which contains the string "ldap.role.ctx") as the default value in case the USER_ROLES_CTX is not defined in the properties file.