Importação dos Usuarios Ldap

1 resposta
F

Estou querendo desenvolver uma ferramenta de service desk e gostaria de saber como faço a importação dos usuarios Ldap/AD.

1 Resposta

T
private final String  dominio = "@dominio.com.br";
private final String host = "SERVER";
private final String searchBase = "DC=DOMINIO,DC=COM,DC=BR";
private Hashtable<String, String> envDC = new Hashtable<String, String>();

public String validarUsuario(String usuario, String senha) throws Exception{
		String userName = "";
		try{
		
			envDC.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
			envDC.put(Context.SECURITY_AUTHENTICATION, "simple");
			envDC.put(Context.SECURITY_PRINCIPAL, usuario + dominio);
			envDC.put(Context.SECURITY_CREDENTIALS, senha);
			envDC.put(Context.PROVIDER_URL, "ldap://" + host);
		
			envDC.put(Context.REFERRAL, "follow");
		
			envDC.put("java.naming.ldap.attributes.binary","objectGUID objectSid msSFUPassword");
		
			LdapContext ldapContext = null;
			ldapContext = new InitialLdapContext(envDC, null);
			SearchControls searchCtls = new SearchControls();
			String[] returnedAtts = { "givenName", "objectGUID", "displayName",
                "distinguishedName", "userPrincipalName", "samAccountName",
                "objectClass", "sn", "unicodePwd", "userPassword",
                "msSFUPassword" };
			searchCtls.setReturningAttributes(returnedAtts);
            searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
            String searchFilter = "sAMAccountName=" + usuario;
            NamingEnumeration answer = ldapContext.search(searchBase, searchFilter,searchCtls);
        

            if (answer.hasMoreElements()) {
            	SearchResult sr = (SearchResult) answer.next();
            	Attributes attrs = sr.getAttributes();
        
            	if (attrs.get("displayName") != null) {
            		userName = (String) attrs.get("displayName").get();
            	} else if (attrs.get("givenName") != null) {
            		userName = (String) attrs.get("givenName").get();
            	}
            }
		} catch (AuthenticationException erro) {
			throw new Exception("Usuário inválido ou senha incorreta");
		} catch (Exception erro){
			throw  erro;
		}
        return userName;
}

Só adpatar seus parâmetros.

Criado 21 de novembro de 2008
Ultima resposta 21 de nov. de 2008
Respostas 1
Participantes 2