как я могу получить текущий токен на предъявителя моего запроса?

Я пытаюсь сделать что-нибудь относительно простое.

У меня есть запрос, который получает токен oauth (Bearer asdf22324...) Мне нужно, чтобы он передал его моему воображаемому клиенту, чтобы он мог запросить другую службу с использованием того же токена.

Возможно ли это? Есть идеи / примеры?

Я пробовал вот так:

@PostMapping("/login")
ResponseEntity<Void> loginUser(@RequestHeader("Authorization") String authHeader);

Но authHeader всегда пуст ...

Я также пробовал перехватчик, но не уверен, как он повлияет на других (и не знаю, как его вызвать).

Имитация клиента - заголовок динамической авторизации

Идеи?


person jpganz18    schedule 22.02.2019    source источник
comment
Интерфейс @RequestHeader at feign успешно добавил за меня заголовок. проверьте еще где нибудь.   -  person tianzhipeng    schedule 22.02.2019


Ответы (1)


Может быть, вы можете попробовать реализовать Filter (скажем, TokenFilter), и внутри него вы можете прочитать заголовок Authorization из HttpServletRequest и извлечь токен.

String authTokenHeader = request.getHeader("Authorization");

// parse the token
// there can be type of token passed. So you may need to take the substring after the type and the whitespace. Eg: Bearer <TOKEN>
person the_tech_maddy    schedule 22.02.2019
comment
Обратите внимание, что request.getHeader (Authorization) может возвращать не только строку токена, но также тип токена в начале, например: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSl ... - person victory; 21.03.2020