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?