Pegar o Grupo que o usuário pertence no LDAP

9 respostas
D

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.

9 Respostas

A

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.

R

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’

D

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

B

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

F

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

D

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

Caso precisem de alguma coisa é so falar!!

abraço.

I

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

Alguém pode me ajudar!

D

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

I

Te mandei um e mail hoje mais em todo caso vou deixar meu e mail: [email removido]

Criado 2 de dezembro de 2008
Ultima resposta 16 de jul. de 2009
Respostas 9
Participantes 6