Entretanto há situações em que voce precisa acessar o LDAP diretamente por meio de um portlet. Há várias bibliotecas na internet com sugestões de conexões, mas a mais recomendada para o ambiente WebSphere é utilizar o próprio mecanismo de JNDI disponibilizado pelo application server.
Abaixo um código de exemplo de como fazer este acesso.
//* Indica propriedades do LDAP
Hashtable
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=ibm,dc=com");
env.put(Context.SECURITY_CREDENTIALS, "password");
try {
//* Permite enviar controles na busca do LDAP. Exemplo: SORT
Control[] connectionControls = null;
LdapContext ctx = new InitialLdapContext(env, connectionControls);
Attributes attrs = ctx.getAttributes("uid=alexbc,ou=users,dc=ibm,dc=com");
System.out.println("sn: " + attrs.get("userPassword").get());
System.out.println("sn: " + attrs.get("cn").get());
} catch (NameNotFoundException nnf) {
System.out.println("Elemento nao encontrado");
} catch (NamingException e) {
System.err.println("Erro no acesso LDAP: " + e);
}
Nenhum comentário:
Postar um comentário