Spring Security e LDAP

Bom dia pessoal. Gostaria de uma ajuda dos ninjas de spring.

Tenho uma aplicação web e gostaria que o usuário se autenticassem no LDAP com o usuário de rede do domínio.
Mas eu queria de uma forma que conecte no LDAP com as credenciais do usuário, e caso se conecte no LDAP é porque o usuário e senha está correto, pois eu não tenho acesso a chave de password e nem querem liberar.

Por exemplo, tenho um formulário de login com usuário e senha, quando clicar no logar o spring deve pegar esse usuário e senha e tentar se conectar no LDAP, se conectar abre o sistema, se não mostra mensagem de usuário ou senha invalida.

Todos os exemplo que encontrei eram de conectar com um usuário especifico no LDA e depois comparar a senha digitada do usuário com a chave do ldap.

Alguém sabe como eu poderia fazer ?

Desde já Muito Obrigado

http://docs.spring.io/spring-ldap/docs/1.3.x/reference/html/user-authentication.html
http://docs.spring.io/spring-security/site/docs/3.1.x/reference/ldap.html

package hello;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http
			.authorizeRequests()
				.anyRequest().fullyAuthenticated()
				.and()
			.formLogin();
	}

	@Autowired
	public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
		auth
			.ldapAuthentication()
				.userDnPatterns("uid={0},ou=people")
				.groupSearchBase("ou=groups")
				.contextSource().ldif("classpath:test-server.ldif");
	}
}

acredito que atende, não?

Olá Getulio, obrigado pela resposta, mas é quase isso.
Na verdade o que eu preciso seria algo tipo isso mas no spring:

try {

Hashtable<String, String> ldapEnv = new Hashtable<String, String>(11);
ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
ldapEnv.put(Context.PROVIDER_URL, "ldap://IP_SERVIDOR_ADLDAP:389/DC=empresa,DC=dom");
ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple");

ldapEnv.put(Context.SECURITY_PRINCIPAL, "USUARIO");
ldapEnv.put(Context.SECURITY_CREDENTIALS, "SENHA");
DirContext ldapContext = new InitialDirContext(ldapEnv);

System.out.println("Conectado.... Usuario e senha OK...");

} catch (Exception ex) {
System.out.println("Nao Conectou: " + ex);
}

Entendeu ?
Por exemplo, usar o spring para testar a senha para conectar, e não precisar de um usuário para se conectar no AD/LDAP e depois validar o usuário da tela de login.

Mas o spring exige um usuário para se conectar no LDAP:

DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource("ldap://IP_SERVIDOR_ADLDAP:389/..............."); contextSource.setUserDn("usuario"); contextSource.setPassword("senha"); contextSource.setReferral("follow"); contextSource.afterPropertiesSet();

LdapAuthenticationProviderConfigurer ldapAuthenticationProviderConfigurer = auth.ldapAuthentication();

ldapAuthenticationProviderConfigurer.userSearchFilter("(&(sAMAccountName={0}))").contextSource(contextSource);

Alguém tem alguma ideia ?