作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个充当网关的 spring boot 微服务,需要从请求中获取授权 header ,将其附加到新请求并将请求传递给另一个微服务。我目前正在执行以下操作并且它有效,但想知道是否有更好的方法来做到这一点。
@GetMapping
public List<Task> getTasks(HttpServletRequest request, HttpServletResponse httpresponse) {
String bearerToken = request.getHeader("Authorization");
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.set("Authorization", bearerToken);
HttpEntity<String> httpEntity = new HttpEntity <String> (httpHeaders);
String getTasksURL = "http://localhost:8082/tasks";
ResponseEntity<List<Task>> response = restTemplate.exchange(
getTasksURL,
HttpMethod.GET,
httpEntity,
new ParameterizedTypeReference<List<Task>>(){});
List<Task> taskslist = response.getBody();
return taskslist;
}
最佳答案
我看不出你的做法有什么问题。但是,如果您正在实现一个仅传递请求的网关(可能有一些速率限制或安全性,但不是真正的业务逻辑),我建议您查看 http://spring.io/projects/spring-cloud-netflix - Zuul 代理部分。只需几个类,包括配置在内的总共不到 200 行代码,您就可以拥有一个完全可用的 API 网关。它很不错!
关于spring-boot - spring boot 从请求中获取不记名 token 并调用另一个微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54582881/
我是一名优秀的程序员,十分优秀!