【问题标题】:Micronaut Get raw HttpRequestMicronaut 获取原始 HttpRequest
【发布时间】:2022-11-14 07:27:52
【问题描述】:

我的应用程序被部署到客户站点。 一些客户拥有执行用户身份验证然后转发特定 HTTP cookie/标头的代理。 这些可以是自定义格式。 我希望能够提供一个 micronaut URL,例如/customAuth 客户可以提供覆盖 允许他们从他们的代理转发请求并自己处理。

不幸的是,这在 micronaut 中被证明是非常困难的,因为:

  1. 它坚持我指定@Post/@Get 或HTTP 方法应该是什么。
  2. 它在转发之前解析标题/正文。

    我真正需要的是:

    @All(/customAuth) HttpResponse customAuth(String fullRawHttpRequestWithHeaders) {

    我在 raaw body (Get raw HttpRequest body in Micronaut) 上看到过这个问题。我分享他们的问题,我什至不知道是否会有尸体。

    我在获取标题时看到了这个问题: How to get full list of request headers in Micronaut

    似乎 micronaut 真的只是不想提供某些人真正需要的原始访问权限,例如就我而言。

    是这样吗?

【问题讨论】:

    标签: micronaut micronaut-rest


    【解决方案1】:

    一种解决方案是尽可能重新创建 raaw 请求。例如

        StringBuilder ms = new StringBuilder();
        // add cookies
        Map<String, Cookie> m = req.getCookies().asMap();
        m.forEach((t, u) -> ms.append(t + ":" + u.getValue()));
            
        // add headers
        req.getHeaders().asMap().entrySet().
        .. add body
    

    这似乎是一种巨大的精力浪费,效率低下并且可能出错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 2021-04-15
      • 1970-01-01
      相关资源
      最近更新 更多