将 HTTP Headers 传递给 Cloud Foundry 应用程序
Passing HTTP Headers to a Cloud Foundry App
我正在尝试将 PHP 应用程序部署到 IBM Cloud 上的 public Cloud Foundry 应用程序。此应用使用带有 Bearer 令牌的授权 header 来验证 API 调用。但是,此令牌在到达我的代码之前被剥离,这阻止了 API 工作。
在 Cloud Foundry 应用程序的路由器日志中,我可以看到向应用程序发出的原始请求的原始 header 中的 none 已包含在内。有没有办法让原始 header 包含在这些 HTTP 请求中?
到目前为止,我似乎找不到任何可以实现此功能的东西,但想知道是否有其他人遇到过这个问题。
授权是一种特殊的 header,它可以包含敏感信息。默认情况下,Cloud Foundry 上的 PHP buildpack 将配置的 Apache HTTPD 不会将授权传递给脚本,因为这可能会将敏感信息泄露给脚本。
您应该可以通过添加以下设置来允许它:https://httpd.apache.org/docs/2.4/en/mod/core.html#cgipassauth
如果您将 .htaccess
文件添加到您的应用程序并将 CGIPassAuth On
放入该文件,那应该会使 Authorization
header 通过。或者,您可以这样配置 -> https://docs.cloudfoundry.org/buildpacks/php/gsg-php-config.html#engine-configurations
或者,您可以在使用 PHP buildpack 时启用 out-of-the-box 中存在的 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
我正在尝试将 PHP 应用程序部署到 IBM Cloud 上的 public Cloud Foundry 应用程序。此应用使用带有 Bearer 令牌的授权 header 来验证 API 调用。但是,此令牌在到达我的代码之前被剥离,这阻止了 API 工作。
在 Cloud Foundry 应用程序的路由器日志中,我可以看到向应用程序发出的原始请求的原始 header 中的 none 已包含在内。有没有办法让原始 header 包含在这些 HTTP 请求中?
到目前为止,我似乎找不到任何可以实现此功能的东西,但想知道是否有其他人遇到过这个问题。
授权是一种特殊的 header,它可以包含敏感信息。默认情况下,Cloud Foundry 上的 PHP buildpack 将配置的 Apache HTTPD 不会将授权传递给脚本,因为这可能会将敏感信息泄露给脚本。
您应该可以通过添加以下设置来允许它:https://httpd.apache.org/docs/2.4/en/mod/core.html#cgipassauth
如果您将 .htaccess
文件添加到您的应用程序并将 CGIPassAuth On
放入该文件,那应该会使 Authorization
header 通过。或者,您可以这样配置 -> https://docs.cloudfoundry.org/buildpacks/php/gsg-php-config.html#engine-configurations
或者,您可以在使用 PHP buildpack 时启用 out-of-the-box 中存在的 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