rest - 缺少调用 RestAPI 方法的请求标头“authToken”
问题描述
我有这个 RestAPI 方法
@GetMapping(path = "/menus",
consumes = "application/json",
produces = "application/json")
public ResponseEntity<List<MenuPriceSummary>> allMenus(HttpServletRequest request, @RequestHeader(value="Authorization: Bearer") String authToken) {
String username = jwtTokenUtil.getUsernameFromToken(authToken);
User user = userService.findByUserName(username);
return ResponseEntity.ok(menuService.allMenus(user));
}
我从 curl 中调用
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJsb3Blei5hbnRvbmlvODVAZ21haWwuY29tIiwiZXhwIjoxNTk0MTkzNDYwLCJpYXQiOjE1MzM3MsM0NjB9.9pXvdiRMM5fjE4Ur5nqKvwvRLmNWyn6tY6y5fPXOg_BWEW2sJ8vnrLTXPfiA-Sc6Qk2XTwi6FhlIhFEQKip4aQ" "http://127.0.0.1:1133/canPeris/api/v1/users/menus"
但我得到了这个错误:
"status":400,"error":"Bad Request","message":"Missing request header 'Authorization: Bearer' for method parameter of type String"'authToken' for method parameter of type String","tr....
解决方案
你不能用@RequestHeader
那种方式。标头中的值被拆分:
并添加到 Map 中,因此每个包含 a 的值:
都是不可能的。
您必须将注释更改为@RequestHeader(value="Authorization")
,然后Bearer
从authToken
.
推荐阅读
- azure-eventhub - 如何使用基于分区键的 Azure Stream Analytics 查询数据
- c++ - 如何在 C++ 中绕过 << 调用,就像“#ifndef DEBUG”宏一样?
- javascript - QuillJS 在
标签
- jquery - 自动对焦 jQuery 脚本不针对下一个输入字段
- python - urllib3.ProxyManager 给出身份验证错误
- file - 比较两个文本文件中的字符串
- arrays - BigQuery - 从一组 Json 文件中提取数据
- docker - 获取失败............哈希和不匹配
- php - PHP - 如何显示在 HTML 页面中收到的 POST 数据
- python - GPU显存满了怎么办