LDAP (Active Directory) STRUST - JBOSS

Olá
Pessoal

Tenho uma aplicação com um login.jsp e uma loginAction.java, quando faço submit do login.jsp e envia os seguinte campos : usuario e senha, ele a ele chama a action loginAction e entra no metodo execute, então eu tenho que validar o usuário que foi enviado pelo formulario com o usuário e senha do windows, tenho o seguinte codigo fazendo isso, como segue, porem ele valida qualquer usuario como sucesso, ou seja ele não válida o usuario do windows, se eu passar qualquer coisa no usuario e senha ele continua a validar como sucesso, enquanto ele só deveria da sucesso após ele verificar se o usuario e a senha do windows seja igual então daria sucesso, alguem saberia me dizer porque?

Grato

import javax.naming.AuthenticationException;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;

import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable;
class Demo
{

public static void main(String[] args) 
{
Hashtable authEnv = new Hashtable(11);
String userName = "eee";
String passWord = "zzzzz";
String base = "ou=People,dc=example,dc=com";
String dn = "uid=" + userName + "," + base;
authEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
authEnv.put(Context.PROVIDER_URL, "ldap://ldap.example.com:389");
authEnv.put(Context.SECURITY_AUTHENTICATION, "simple");
authEnv.put(Context.SECURITY_PRINCIPAL, dn);
authEnv.put(Context.SECURITY_CREDENTIALS, passWord);


try
{
DirContext authContext = new InitialDirContext();

   System.out.println("Authentication Success!"  );
} 
catch (AuthenticationException authEx) 
{
	
System.out.println("Authentication failed!");
}
catch (NamingException namEx) 
{
System.out.println("Something went wrong!");
namEx.printStackTrace();
}

}

}

[color=red]Por favor coloque seus códigos entre as tags [ code][/color]

Você está criando um DirContext sem informação nenhuma, por isso ele sempre cria. Você deve criar baseado nas informações que você definiu no seu Map.

Na linha 31, coloque:

DirContext authContext = new InitialDirContext(authEnv);

obrigado Rafael por responder-me, mais esta dando esse erro:

Subsituir:
DirContext authContext = new InitialDirContext();

por isso:
DirContext authContext = new InitialDirContext(authEnv);

Erro:
the constructor InitialDirContext(Hashtable) is undefined

Saberia me dizer porqu?

Grato

Dá uma olhada nos seus imports, você está importando o Hashtable errado.
Importe o java.util.Hashtable

Olá
Deu o seguinte erro:

javax.naming.CommunicationException: localhost:389 [Root exception is java.net.ConnectException: Connection refused: connect]
	at com.sun.jndi.ldap.Connection.<init>(Unknown Source)
	at com.sun.jndi.ldap.LdapClient.<init>(Unknown Source)
	at com.sun.jndi.ldap.LdapClient.getInstance(Unknown Source)
	at com.sun.jndi.ldap.LdapCtx.connect(Unknown Source)
	at com.sun.jndi.ldap.LdapCtx.<init>(Unknown Source)
	at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(Unknown Source)
	at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(Unknown Source)
	at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(Unknown Source)
	at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(Unknown Source)
	at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
	at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
	at javax.naming.InitialContext.init(Unknown Source)
	at javax.naming.InitialContext.<init>(Unknown Source)
	at javax.naming.directory.InitialDirContext.<init>(Unknown Source)
	at com.abnamro.br.jas.Demo.main(Demo.java:36)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(Unknown Source)
	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at com.sun.jndi.ldap.Connection.createSocket(Unknown Source)
	... 15 more

Saberia me dizer porque?

Ficou assim:

import javax.naming.AuthenticationException;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;

import java.util.Hashtable;

class Demo
{

public static void main(String[] args) 
{
Hashtable authEnv = new Hashtable(11);
String userName = "eee";   
String passWord = "zzzzz";   
String base = "ou=People,dc=example,dc=com";
String dn = "uid=" + userName + "," + base;
authEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
authEnv.put(Context.PROVIDER_URL, "ldap://localhost:389");
authEnv.put(Context.SECURITY_AUTHENTICATION, "simple");
authEnv.put(Context.SECURITY_PRINCIPAL, dn);
authEnv.put(Context.SECURITY_CREDENTIALS, passWord);


try
{
DirContext authContext = new InitialDirContext(authEnv);

   System.out.println("Authentication Success!"  );
} 
catch (AuthenticationException authEx) 
{
	
System.out.println("Authentication failed!");
}
catch (NamingException namEx) 
{
System.out.println("Something went wrong!");
namEx.printStackTrace();
}

}

}

Grato

Coloque seus códigos e stac trace dentro das tags [ code] [/ code] melhora muito a legibilidade.

E quanto a exceção, quer dizer que não foi possível conectar com o servidor de LDAP.
Tem certeza que o endereço dele é ‘localhost’? O Active Directory fica na sua máquina?
Você deve colocar o ip do active directory ao invés de localhost caso não esteja na sua máquina