如何解决传递身份验证标头并将其添加到下一个请求
我有一个可能非常简单的问题,但是我已经坚持了一段时间。我有一个程序可以接收请求,然后在第三方应用程序的正确实例中转发它们。
我不断获得401 / Unauthorized,并被告知要使其正常工作,我要做的就是:“我将从客户端收到一个带有身份验证标头的请求,而我所要做的就是摆脱它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
@Autowired
HttpServletRequest request;
然后通过方法request.getHeader(“ Authorization”)获取标头
注意-授权是我要提取的标头的名称。
以下是类似问题的示例。我正在从当前请求中读取授权标头,并将其作为标头参数传递给另一个请求
public class UserDetailsService
{
@Autowired
WebClient.Builder webClientBuilder;
@Autowired
HttpServletRequest request;
@Value("${common.serverurl}")
private String reqUrl;
Logger log = LoggerFactory.getLogger(UserDetailsService.class);
public UserReturnData getCurrentUser()
{
log.info("Making API Call to fetch current user");
try
{
UserReturnData userDetails = webClientBuilder.build()
.get()
.uri(reqUrl+"user/me")
.header("Authorization",request.getHeader("Authorization"))
.retrieve()
.bodyToMono(UserReturnData.class)
.block();
return userDetails;
}
catch(Exception e)
{
log.info("Error API Call to fetch current user " + e);
return null;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。