3
respostas

Retornar Objeto De uma autenticacao LPAD

Bom dia! Me surgiu uma dúvida em relação a validação do Token, estou fazendo autenticação via LDAP (AD) no meu Projeto e consegui adaptar boa parte do código, só que no TOKEN ao inves de guardar o ID eu guardei o usarname do meu usuario de AD que sempre é diferente, agora para eu buscar isso na parte de depois de validar o Token, setar no Spring que está autenticado?

Meu código ->

 String usuario  = tokenService.getUserName(token);

      //com usuario precisa chamar algum metodo lpad aonde retorna as informaçoes para passar no principal

        //UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(principal, credentials, authorities)

        SecurityContextHolder.getContext().setAuthentication(authentication);
3 respostas

Oi Patrick,

Deslcupe a demora em responder.

Quando o usuário fizer login, você precisa guardar no token alguma informação dele que seja única no sistema(id, cpf, matricula, email, etc.).

E depois nesse código do filter precisa carregar o objeto Usuario do ldap junto com as permissões dele, para conseguir setar no UsernamePasswordAuthenticationToken.

Fala Rodrigo, beleza mano? Isso eu já sei, eu salvei o username lá que é unico no sistema, a minha duvida é agora retornar baseado só no username as mesmas informações para eu passar para o Objeto Princpal e poder utilizar também as permissões por grupo, isso que não consegui fazer, preciso pegar o username fazer um "select" no ldap só por username retornando as informações daquele usuario e assim segue o fluxo igual vc ensinou, porém não estou conseguindo fazer rs;

Oi Patrick,

Entendi. E porque você não está conseguindo buscar os dados do usuário?

Acho que no seu caso seria algo assim:

String userName  = tokenService.getUserName(token);
Usuario usuario = repository.findByUserName(userName);

UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(usuario, null, usuario.getAuthorities());

SecurityContextHolder.getContext().setAuthentication(authentication);

Funciona desse jeito?

Nunca trabalhie com LDAP, então não sei muito bem como que você está fazendo para buscar os dados do usuário...

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software