Client (application em uma máquina qualquer, celular, cliente javascript, etc.)
authorization server - servidor que dá autorização
resource server - servidor que contém os recursos
Os servidores podem estar na mesma máquina, ou não.
O usuário está usando uma aplicação cliente, e precisa acessar o resource server. Na nossa aplicação é o cara que guarda os lançamentos, categorias. Para isso, solicita um token ao authorization server.
Vale ressaltar que o usuário e senha passados no BasicAuth já não servem mais, pois não estamos utilizando BasicAuth para validar a execução do serviço. No entanto, necessitaremos passar algumas informações, via BASIC Authentication, para requisitar o Token.
É preciso criar uma nova requisição POST para buscar o Token.
localhost:8080/oauth/token - endpoint adicionado pela configuração feita
Em Authorization, com Basic Auth, informamos o usuário e senha do cliente (não do usuário): angular / @ngul@r0
No Body, selecionando a opção x-www-form-urlencoded (perceba que no momento que selecionamos essa opção já é inserido no HEADER a informação do CONTENt TYPE), informamos (key X value):
cliente: angular
username: admin (agora sim, do usuário)
password: admin
Grant_type: password
O retorno da requisição anterior será:
acces_token
tipo do token (bearer)
tempo de expiração
escopo do token (read write - conforme configurado na app para esse cliente)
Vamos criar um novo filtrar / listar lançamento, a partir do anterior:
Não precisamos mais do BasicAuth
No Header (Key X Value):
authorization: bearer (tipo do token retornado na requisição anterior) + ' ' (espaço) + token retornado na requisição anterior
Os servidores podem estar na mesma máquina, ou não.
O usuário está usando uma aplicação cliente, e precisa acessar o resource server. Na nossa aplicação é o cara que guarda os lançamentos, categorias. Para isso, solicita um token ao authorization server.