【发布时间】:2020-12-18 06:06:35
【问题描述】:
我有一个可能非常简单的问题,但我已经坚持了一段时间了。我有一个程序接收请求,然后在第三方应用程序的正确实例中转发它们。
我不断收到 401/未经授权,我被告知要使其正常工作,我需要做的就是“我将收到来自客户端的带有身份验证标头的请求,并且我需要做的就是摆脱401 响应和获取 200 是将该身份验证标头添加到我的请求中。我不明白如何首先获取此标头,或者将其添加到我的请求中。
任何指针、链接或答案将不胜感激。 谢谢
@RestController @Slf4j
@RequestMapping(Endpoints.PROVIDER.ROOT)
@PreAuthorize("@permissions.checkIfAdmin()")
public class AdminController {
@PostMapping(Endpoints.ADMIN.ACTIONS)
public ResponseEntity<ActionResponse> actions(@RequestBody ActionRequest actionsRequest) {
【问题讨论】:
-
取决于您是否使用任何框架或库,但可以通过以下方式从低级传入 HttpServletRequest 访问客户端标头:
Header authHeader = request.getHeader(HttpHeaders.AUTHORIZATION);然后将authHeader添加到第三个传出请求派对。 -
谢谢。我使用 spring 框架,我的控制器类看起来像我在更新后发布的代码
-
标头是直接可用的 - 添加这个作为控制器参数:
@RequestHeader(HttpHeaders.AUTHENTICATION) String authHeader(如果标头将始终由客户端发送)。
标签: java spring request postman