嗨,试图实现的是在 java spring boot RESTApi 控制器中获取从前端提交的不记名令牌,并使用假客户端向另一个微服务发出另一个请求?这就是我所做的
上图是我如何处理邮递员的请求,这是我的控制器代码:
@Operation(summary = "Save new")
@PostMapping("/store")
public ResponseEntity<ResponseRequest<TransDeliveryPlanning>> saveNewTransDeliveryPlanning(
@Valid @RequestBody InputRequest<TransDeliveryPlanningDto> request) {
TransDeliveryPlanning newTransDeliveryPlanning = transDeliveryPlanningService.save(request);
ResponseRequest<TransDeliveryPlanning> response = new ResponseRequest<TransDeliveryPlanning>();
if (newTransDeliveryPlanning != null) {
response.setMessage(PESAN_SIMPAN_BERHASIL);
response.setData(newTransDeliveryPlanning);
} else {
response.setMessage(PESAN_SIMPAN_GAGAL);
}
return ResponseEntity.ok(response);
}
这是我的服务的样子:
public TransDeliveryPlanning save(InputRequest<TransDeliveryPlanningDto> request) {
Future<List<PartnerDto>> initPartners = execs.submit(getDataFromAccount(transDeliveryPlanningDtSoDtoPartnerIdsSets));
}
public Callable<List<PartnerDto>> getDataFromAccount(Set<Long> ids) {
String tokenString = "i should get the token from postman, how do i get it to here?";
List<PartnerDto> partnerDtoResponse = accountFeignClient.getData("Bearer " + tokenString, ids);
return () -> partnerDtoResponse;
}
如您所见,在“tokenString”中我放了一个我质疑的字符串,我如何从邮递员那里得到它?
原文由 Ke Vin 发布,翻译遵循 CC BY-SA 4.0 许可协议
尽管建议的答案有效,但每次将令牌传递给
FeignClient
调用仍然不是最好的方法。我建议为假请求创建一个拦截器,您可以在那里从RequestContextHolder
中提取令牌并将其直接添加到请求标头中。像这样:这样你就有了一个干净的解决方案来解决你的问题