【问题标题】:Passing HTTP Headers to a Cloud Foundry App将 HTTP 标头传递给 Cloud Foundry 应用程序
【发布时间】:2019-10-17 03:03:55
【问题描述】:

我正在尝试将 PHP 应用程序部署到 IBM Cloud 上的公共 Cloud Foundry 应用程序。此应用程序使用 Authorization 标头和 Bearer 令牌来验证 API 调用。但是,此令牌在到达我的代码之前被剥离,这会阻止 API 工作。

在 Cloud Foundry 应用程序的路由器日志中,我可以看到对应用程序发出的原始请求中没有包含任何原始标头。有没有办法让这些 HTTP 请求中包含原始标头?

到目前为止,我似乎找不到任何可以实现这一点的东西,但想知道是否有其他人遇到过这个问题。

【问题讨论】:

    标签: cloud ibm-cloud cloud-foundry serverless


    【解决方案1】:

    授权是一个特殊的标头,可以包含敏感信息。默认情况下,Cloud Foundry 上的 PHP buildpack 将配置的 Apache HTTPD 不会将授权传递给脚本,因为这可能会将敏感信息泄露给脚本。

    您应该可以通过添加此设置来允许它:https://httpd.apache.org/docs/2.4/en/mod/core.html#cgipassauth

    如果您将.htaccess 文件添加到您的应用程序并将CGIPassAuth On 放入该文件中,这应该会使Authorization 标头通过。或者,你可以这样配置 -> https://docs.cloudfoundry.org/buildpacks/php/gsg-php-config.html#engine-configurations

    或者,您可以启用在使用 PHP buildpack 时开箱即用的 mod_openidc。这是启用基于 OAuth2 的登录的一种非常简单的方法。 https://github.com/zmartzone/mod_auth_openidc

    例如:https://github.com/dmikusa-pivotal/static-site-oidc-example

    希望有帮助!

    参考:https://github.com/cloudfoundry/php-buildpack/issues/190#issuecomment-433998851

    【讨论】:

    • .htaccess 方法完美运行!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2019-10-19
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多