Spring boot 如何将RequestHeader与执行器端点一起使用?
我已经自定义了我的执行器/信息端点,我想使用标题中的信息来授权对另一个服务的Spring boot 如何将RequestHeader与执行器端点一起使用?,spring-boot,spring-boot-actuator,Spring Boot,Spring Boot Actuator,我已经自定义了我的执行器/信息端点,我想使用标题中的信息来授权对另一个服务的restemplate调用 我在这里实现InfoContributor: 我想接受contribute()方法中的请求头。对于任何用户定义的REST端点,我可以定义一个@RequestHeader参数和访问头 但不幸的是,InfoContributor的contributor()方法只接受一个参数 如何访问contribute()方法中的请求头? 您可以将HttpServletRequest自动连接到您的InfoCon
restemplate
调用
我在这里实现InfoContributor:
我想接受contribute()
方法中的请求头。对于任何用户定义的REST端点,我可以定义一个@RequestHeader
参数和访问头
但不幸的是,InfoContributor
的contributor()
方法只接受一个参数
如何访问contribute()
方法中的请求头?- 您可以将
自动连接到您的HttpServletRequest
InfoContributor
- 或者您可以使用
来获取它RequestContextHolder
如果我使用您的第一种方法,它不会创建一个请求对象的单例吗?我的应用程序将被多个用户访问。它将是
Custom
类的单例bean。但是spring将注入请求
是请求范围的代理,因此每个请求都将指向它自己的HttpServletRequest
。别忘了用spring boot
标记你的问题,因为很多人会跟着spring boot
标记,你会得到更快的答案。你原来的问题没有那个标签。这是迈克尔昨天才加的
import javax.servlet.http.HttpServletRequest;
@Component
public class Custom implements InfoContributor {
@Autowired
private HttpServletRequest request;
@Override
public void contribute(Info.Builder builder) {
...
request.getHeader("your header");
...
}
}
@Component
public class Custom implements InfoContributor {
@Override
public void contribute(Info.Builder builder) {
...
HttpServletRequest request =
((ServletRequestAttributes)RequestContextHolder.getRequestAttributes())
.getRequest();
request.getHeader("your header");
...
}
}