Autenticação de usuario e senha via codigo java
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á
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
Curtidas 0
Respostas
Leandro Silva
16/02/2017
Ninguem?
GOSTEI 0
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
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");
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
GOSTEI 0
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
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
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