将HTTP标头传递到Cloud Foundry应用程序

问题描述 投票:1回答:1

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

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

到目前为止,我似乎找不到任何能够实现这一目标的东西,但想知道是否还有其他人遇到过此问题。

cloud ibm-cloud cloudfoundry serverless
1个回答
2
投票

授权是可以包含敏感信息的特殊标头。默认情况下,Cloud Foundry上的PHP构建包将配置的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

© www.soinside.com 2019 - 2024. All rights reserved.