Как получить токен доступа, отправленный в виде заголовка с помощью Autentication Basic в Springboot - PullRequest
0 голосов
/ 21 июня 2019

Я выполнил большую часть проекта, но теперь застрял с новой проблемой.Я должен извлечь токен доступа из запроса, который будет в заголовке в Authentication Basic.Это сбивает с толку, так как сначала я использовал простой метод GET и отправлял токен доступа в самом запросе и извлекал его с использованием @RequestParam.Я задавал подобный вопрос раньше, но это было для простого запроса из самого запроса, и теперь я должен сделать это из заголовка.

 @GetMapping("/persons")
     public String loadPersons(@RequestParam("access_token") String access_token) throws  ParseException{
        String decode_token = pd.testDecodeJWT(access_token);
        String token = pd.jsondata(decode_token);
........................ More Code........................

Я хочу получить этот токен из запроса в Authentication Basicformat.

Я пробовал некоторые учебные пособия на YouTube, но, поскольку я уже почти полностью выполнил свой проект, я хочу внести в него минимальные изменения, чтобы не возникало больше ошибок.

Заранее спасибо

1 Ответ

0 голосов
/ 22 июня 2019

Чтобы получить значение из заголовка HTTP, вы можете использовать @RequestHeader("headerValue").

Но что меня беспокоит, так это то, что вы используете обычную аутентификацию или JWT? Базовая аутентификация касается только имени пользователя и пароля и не имеет ничего общего с токеном доступа. Требуется HTTP-заголовок в формате:

Authorization: Basic <credentials>

, где <credentials> равно Base64Encode(username:password).

С другой стороны, если вы используете токен доступа, отформатированный в JWT, обычной практикой является использование Bearer в заголовке «Авторизация»:

Authorization: Bearer <JWT>

Поэтому, что бы вы ни использовали, я советую использовать @RequestHeader("Authorization"), чтобы сначала получить значение заголовка Authorization. Затем декодируйте значение в соответствии с вашими фактическими механизмами аутентификации:

 @GetMapping("/persons")
 public String loadPersons(@RequestHeader("Authorization") String authHeader) throws  ParseException{
      //decode authHeader
}
...