Autenticação de usuario e senha via codigo java

Java

16/02/2017

Boa tarde a todos,

Eu estou criando um programinha em java bem simples no netbeans, nele eu seleciono um arquivo pdf no computador e o mesmo será salvo em uma pasta na rede, porém os usuários não terão privilégios para gravar nessa pasta. Eu queria fazer um código para que o programa se logasse com um usuário que teria permissão para gravar nessa pasta e após a gravação desse arquivo iria voltar para o usuário da pessoa sem os privilégios.

segue uma parte do meu código.


try{
Hashtable authEnv = new Hashtable(11);
authEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
authEnv.put(Context.PROVIDER_URL, "ldap:meuservidor.com.br");
authEnv.put(Context.SECURITY_AUTHENTICATION,"simple");
authEnv.put(Context.SECURITY_PRINCIPAL,"uid=admin,ou=system");
authEnv.put(Context.SECURITY_PRINCIPAL, "meuUsuario");
authEnv.put(Context.SECURITY_CREDENTIALS, "minhaSenha");
//authEnv.put(Context.SECURITY_PROTOCOL, "ssl");

//----------------------------------------------------------------
try
{
DirContext authContext = new InitialDirContext(authEnv);
FileInputStream fisOrigem = new FileInputStream(origem);
FileOutputStream fisDestino = new FileOutputStream(destino);
FileChannel fcOrigem = fisOrigem.getChannel();
FileChannel fcDestino = fisDestino.getChannel();
authEnv.put(DirContext.ADD_ATTRIBUTE, fcOrigem.transferTo(0, fcOrigem.size(), fcDestino));

fisOrigem.close();
fisDestino.close();
JOptionPane.showMessageDialog(null,"logado");
authContext.close();
}catch(IOException ex){
JOptionPane.showMessageDialog(null, ex);
}


Obrigado desde já
Leandro Silva

Leandro Silva

Curtidas 0

Respostas

Leandro Silva

Leandro Silva

16/02/2017

Ninguem?
GOSTEI 0
Paulo Hendrix

Paulo Hendrix

16/02/2017


class qualquer(){  //determina ela para todos os as chamadas usa Object

Hashtable <String, String> local = new Hashtable <>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://0.0.0.0:aporta");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "usuario");
env.put(Context.SECURITY_CREDENTIALS, "senha"));
env.put(Context.REFERRAL, "sedererrousa//try");
try {
    new InitialDirContext(env).close();
    return true;
} catch (AuthenticationException ex) {
    return false;
}

} //fim class


pronto agora e só vc pesquisar quase nada. o caminho esta dado. boa sorte; desculpe não criar um codg todo mas, vai la. isto já ajudara vc muito abraço;;;
GOSTEI 0
Paulo Hendrix

Paulo Hendrix

16/02/2017

Desculpe nesta linha vc troca om.sun.jndi.ldap.LdapCtxFactory << pelo seu projeto>
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
GOSTEI 0
Paulo Hendrix

Paulo Hendrix

16/02/2017

Desculpa o Código a Cima Usei como estava no Meu Evento. acabei deixando dados daqui No Lugar


public class NomeClass{
        public static void main (String[] args)
{

Hashtable local = new Hashtable();

local.put(Context.INITIAL_CONTEXT_FACTORY, "dadosDoSeuProjetoNomeDele+Class");
local.put(Context.PROVIDER_URL, "ldap://" + "IPdaMaquinaLocal" + "APortaDeCompatilhamento>noemalente:389<ouFTP-etc");
local.put(Context.SECURITY_AUTHENTICATION, "simple");

local.put(Context.SECURITY_PRINCIPAL, "seuUsuario" + "@" + "seuDominioFTP|| seforDiretorioColocaUsuarioSomente");
local.put(Context.SECURITY_CREDENTIALS, "SenhaPASS");

}// cria um Try e trata possíveis problemas para locar
GOSTEI 0
Paulo Hendrix

Paulo Hendrix

16/02/2017

você pode usar também
http://docs.oracle.com/javase/8/docs/api/java/lang/System.html#getProperties--

getProperty("") << para controlar quem esta logado, no momento para mantar padrão OFF inject. bom ai e só complementando
GOSTEI 0
POSTAR