Caros:
Pretendo utilizar o WI para geração rápida de aplicações na Polícia Militar de Santa Catarina. Já estou montando alguma coisa e os tutoriais do Breno estão ajudando.
Mas, como temos aqui um sistema de autenticação centralizado, baseado em openLDAP, gostaria de saber se existe algum módulo ou outra coisa para que os usuários dos aplicativos sejam autenticados lá ao invés de no BD.
Agradecido,
Josemar Lohn
Autor: Josemar Lohn
1Um comentário
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext; import br.com.itx.integration.AbstractConnector;
import br.com.itx.integration.DatabaseAliases;
import br.com.itx.integration.InterfaceHeaders;
import br.com.itx.util.WIMap; public class AutenticaUsuario extends AbstractConnector {
private boolean autenticado = false;
/**Método getConexão
* @param host
* @param user
* @param pass
* @return Variável booleana com resultado da tentativa de autenticação
*
* Método que faz autenticação de usuário, via Ldap, com servidor de rede
*/
private boolean getConexao(String host, String host_reserva, String user, String pass) { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, host);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "uid="+user+",ou=people,dc=sei,dc=intranet");
env.put(Context.SECURITY_CREDENTIALS, pass); DirContext ctx = null;
try {
ctx = new InitialDirContext(env);
autenticado = true;
ctx.close();
} catch (Exception e) {
System.out.println("Autenticação do usuário "+user+" no servidor "+host+" falhou.");
autenticado = false;
e.printStackTrace();
try {
env.put(Context.PROVIDER_URL, host_reserva);
ctx = new InitialDirContext(env);
autenticado = true;
ctx.close();
} catch (Exception e2) {
autenticado = false;
System.out.println("Autenticação do usuário "+user+" no servidor "+host_reserva+" falhou.");
e2.printStackTrace();
} } return autenticado;
} public void execute(WIMap wiMap, DatabaseAliases db, InterfaceHeaders head){
if (this.getConexao(wiMap.get("host"),
wiMap.get("host_reserva"),
wiMap.get("tmp.txtLogin"),
wiMap.get("tmp.txtSenha"))){
wiMap.put("pvt.wilogin", wiMap.get("wi.session.ip"));
wiMap.put("pvt.login.login", wiMap.get("tmp.txtLogin"));
} else {
wiMap.remove("pvt.wilogin");
wiMap.remove("pvt.login.login");
}
}
}