Autenticação no windows

olá,
estou fazendo uma aplicação que tem se logar nas maquinas para acessar pastas para pegar arquivos como faço para autenticar? tenho q usar NTLM?
Grato.

você pode tentar assim…

import java.util.Hashtable;
import javax.naming.AuthenticationException;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

public class Login {
public static void main(String[] args) {
Hashtable authEnv = new Hashtable(11);
authEnv.put(Context.INITIAL_CONTEXT_FACTORY,“com.sun.jndi.ldap.LdapCtxFactory”);
authEnv.put(Context.PROVIDER_URL, “ldap://[dominio]:389”);
authEnv.put(Context.SECURITY_AUTHENTICATION, “simple”);
authEnv.put(Context.SECURITY_PRINCIPAL, “[usuario]@[dominio].com.br”);
authEnv.put(Context.SECURITY_CREDENTIALS, “[senha]”);
//----------------------------------------------------------------
try
{
DirContext authContext = new InitialDirContext(authEnv);
System.out.println(“logado”);
authContext.close();

    }
    catch (AuthenticationException authEx)
    {
        System.out.println("Erro na autenticação! Tente novamente.");
        authEx.printStackTrace();
    }
    catch (NamingException namEx)
    {
        //out.println("Problemas na conexão! ");
        System.out.println("Problemas na conexão! Sua maquina pode estar fora da rede. Contate o Suporte Tecnico");
        namEx.getCause().printStackTrace();
    }
}

}

olá, essa solução é se eu estiver em um ambiente com dominio não é?, mas se eu estiver em um grupo de trabalho como faz?

obs ainda nao testei a soluçao tenho criar uma maquina virtual com dominio para testar.
grato.

testei o codigo funcionou de boa aparece logado mas nao me da as permissoes que eu preciso
como pegar o campartilhamento de segurança
wlw.

algume sabe pq o codigo acima autentica mas nao me das os privilegios do usuario que deveria me daré como se ele estivesse somente escevendo logado e nao me da os privilegios, fiz uma modificações para testar e descobri q nao esta autenticando.

import java.io.File;
import java.io.IOException;
import java.util.Hashtable;
import javax.naming.AuthenticationException;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

public class login
{
    public static void main(String[] args) throws IOException
    {
        Hashtable authEnv = new Hashtable(11);
        authEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
        authEnv.put(Context.PROVIDER_URL, "ldap://172.16.0.1:389");
        authEnv.put(Context.SECURITY_AUTHENTICATION, "simple");
        authEnv.put(Context.SECURITY_PRINCIPAL, "tecnicos@xyz.br");
        authEnv.put(Context.SECURITY_CREDENTIALS, "xxxxxx")
//----------------------------------------------------------------
        try
        {
            DirContext authContext = new InitialDirContext(authEnv);
            System.out.println("logado");
            authContext.close();
        }
        catch (AuthenticationException authEx)
        {
            System.out.println("Erro na autenticação! Tente novamente.");
            authEx.printStackTrace();
        }
        catch (NamingException namEx) 
        {
        //out.println("Problemas na conexão! ");
            System.out.println("Problemas na conexão! Sua maquina pode estar fora da rede. Contate o Suporte Tecnico");
            namEx.getCause().printStackTrace();
        }
        File file = new File("\\\\172.16.0.200\\C$");
        String dir[] = file.list();
        
        for(int k=0; k<dir.length;k++)
        {
            System.out.println(dir[k]);

        }
        System.exit(0);
    }
}

sendo q a maquina q eu estou testando esta fora do dominio se eu rodar a aplicação ele aparece logado, mas nao recuepra lista de arquivos e pastas do C$ mas se antes de eu rodar a aplicação ja tiver acessado pela rede e digitado o usuario e senha ele funciona ou seja nao autenticou.

Grato.

Você tentou colocar o codigo dentro do try ?

testei o bloco de codigo dentro do try antes do authContext.close(); e depois tb e nao funcionou e como se ele nao tivesse autenticando.
grato.

algume sabe como posso resolver o problema acima?
so tem esse mode de autentincar em rede windows? uma outra duvida como eu sie se uma psta esta compartilhada ou nao com o java tem como?
Grato.

tem como autenticar de outro jeito?

ai nda estou com esse problema agluem sabe como resolver?