我有一个可能很简单的问题,但我已经坚持了一段时间。我有一个程序,该程序接收请求,然后在第三方应用程序的正确实例中转发它们。
我不断获得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;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句