2
respostas

Como enviar usuário e senha por request param?

Estou tentando a comunicação com uma API em java que recebe como parametro usuário e senha com request param

@Operation(summary = "Auth Accounts", description = "Método responsável por autenticação de Accounts", tags = "account-controller")
    @RequestMapping(path = "/auth/", method = RequestMethod.GET, produces = "application/json")
    @ResponseBody
    @ApiResponses(value = { @ApiResponse(code = 200, message = "Retorno da auth de Account"),
            @ApiResponse(code = 403, message = "Não Permitido executar esta ação"),
            @ApiResponse(code = 500, message = "Erro interno do servidor, necessario atuação tecnica") })
    private ResponseEntity<?> authenticationAccount(@RequestParam String login, @RequestParam String senha) {

        return service.authenticationAccount(login,senha);
    }

Como posso estruturar o meu service do anguular para adequar a este método de envio? Tento da seguinte forma, mas não funciona

autenticar(usuario:string, senha:string): Observable<any>{
    let params = new HttpParams().set("login", usuario).set("senha",senha);

    return this.httpClient.get('http://localhost:8080/royale/account/auth',{params} )
  }

Obrigado

2 respostas

Mas qual url o browser envia para o servidor usando o método acima ? Pelo que entendo, deveria ser:

http://localhost:8080/royale/account/auth?login=usuario&senha=senha

É isso que ele está enviando ? Se for estaria correto, e o problema estaria no backend... tente logar o valor de login e senha no back para ver o que está chegando...

Ah, uma observação: sei que deve ser só uma aplicação para aprendizado, mas não é recomendado passar login e senha por queryparam - mude a API java, se possível, para um POST e envie no form - e se possível, use https, para mandar tudo encriptado.

Bom dia Leonardo. Sim, esse era o formato, mas como estava passando pela URL, resolvi alterar para enviar por método POST e BodyParam, assim fica mais ''seguro'' De qualquer forma, estou vendo como encriptar essa informação do lado do angular e assim validar do lado da API

Obrigado!!