This is an implementation of a SecurityContext that checks a user's credentials against an LDAP directory. It expects to be able to bind to the LDAP directory as the user so that it can authenticate the user. The user's credentials are cached.