Pegar o Grupo que o usuário pertence no LDAP

Bom dia a todos,

Tenho uma aplicação que autentica pelo LDAP utilizando jaas, gostaria de verificar o grupo que o usuário pertence, mas nao estou conseguindo o método que faz isso, estava tentando com o request.isUserRole(“Administradores”), mas este método pelo que li faz a verificação somente nos roles, precisaria que um que ferificasse o grupo.

Obrigado.

Vc quer saber quais os grupos que o usuário pertence no LDAP?

Como é essa forma de autenticação pelo LDAP? Quando o usuário é autenticado o usuário fica guardado na sessão?

Acredito que vc terá que conectar no LDAP para listar os grupos do usuário.

Com JAAS bem provável que você vá utilizar as Roles de um determinado Principal.

Conectando direto na base, no active directory há um atributo ‘memberOf’

A altenticação está sendo feita pelo jboss através de jaas, se alguem tiver um exemplo ou alguma documentação para que eu possa dar uma olhada, eu precisaria verificar se o usuário logado pertende a algum grupo especifico no LDAP, o usuário eu consigo através do método request.getAuthUser(), eu nao estou conseguindo verificar a qual grupo este usuário pertence.

obrigado

Fala dfSilva,

Estava com um problema parecido, só que eu precisava pegar o Primary Group "Grupo Primário" do usuário autenticado para redirecionar após o logon. Após 1 dia inteiro de pesquisas consegui.

Estou postando 2 urls que mostram como fazer isso, poís outros poderam precisar. Mas o seu problema é bem mais tranquilo de se resolver veja o código abaixo:

Explicação do porque não se pega o "Grupo Primário" pelo menberof: http://support.microsoft.com/kb/297951/

Solução para pegar o "Grupo Primário": http://forums.sun.com/thread.jspa?threadID=585031

//Loop through the search results
while (answer.hasMoreElements()) {
    SearchResult sr = (SearchResult)answer.next();
 
    System.out.println(">>>" + sr.getName());
 
    //Print out the groups
    Attributes attrs = sr.getAttributes();
    if (attrs != null) {
        try {
            for (NamingEnumeration ae = attrs.getAll();ae.hasMore();) {
                Attribute attr = (Attribute)ae.next();
                System.out.println("Attribute: " + attr.getID());

                for (NamingEnumeration e = attr.getAll();e.hasMore();totalResults++) {
                     System.out.println(" " +  totalResults + ". " +  e.next());
                }
             }
        } catch (NamingException e)	{
	    System.err.println("Problem listing membership: " + e);
	}
    }
}

Créditos/Ref: http://forums.sun.com/thread.jspa?threadID=581444


Abs,

Bruno Tafarelo

Oracle LDAP? Se sim, da um toque pq tem um .jar especifico pra isso, com classes Member, Group, etc…

Fala pessoal, consegui fazer aqui, obrigado pela ajuda de vcs!!

Caso precisem de alguma coisa é so falar!!

abraço.

Estou precisando pegar apenas o nome do usuário que está logado em uma rede com domínio.

Alguém pode me ajudar!

Me passa teu email que te envio umas classes que fazem consultas no ldap para vc seguir como exemplo.

Te mandei um e mail hoje mais em todo caso vou deixar meu e mail: ivan_fit@hotmail.com.br