如何将 RequestHeader 与执行器端点一起使用? [英] How can I use RequestHeader with actuator endpoint?

查看:17
本文介绍了如何将 RequestHeader 与执行器端点一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经自定义了我的执行器/信息端点,我想使用标头中的信息来授权对另一个服务的 RestTemplate 调用.

I have customized my actuator/info endpoint and I want to use information from the header to authorize a RestTemplate call to another service.

我在这里实现了 InfoContributor:https://www.baeldung.com/spring-boot-info-actuator-自定义

I am implementing the InfoContributor as here: https://www.baeldung.com/spring-boot-info-actuator-custom

我想在 contribute() 方法中接受请求标头.对于任何用户定义的 REST 端点,我可以定义一个 @RequestHeader 参数和访问标头.

I want to accept request headers in the contribute() method. For any user defined REST endpoint, I can define a @RequestHeader parameter and access headers.

但不幸的是,InfoContributorcontribute() 方法只接受一个参数.

But unfortunately, the InfoContributor's contribute() method takes only one parameter.

如何访问 contribute() 方法中的请求标头?

How can I access a request header inside the contribute() method?

推荐答案

  • 您可以将 HttpServletRequest 自动连接到您的 InfoContributor
    • You can autowire HttpServletRequest into your InfoContributor
    •     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");
                ...
             }
          }
      

      • 或者你可以使用RequestContextHolder来获取它
      • @Component
        public class Custom implements InfoContributor {
        
            @Override
            public void contribute(Info.Builder builder) {
                ...
                HttpServletRequest request = 
                   ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes())
                                .getRequest();
                request.getHeader("your header");
               ...
            }
        }
        

        这篇关于如何将 RequestHeader 与执行器端点一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆