如何解决在Cloud Foundry上的passport-ci-oidc中的IDaaSOIDCStrategy的IDaaSOIDCStrategy的CACertPathList选项中的相对路径上找不到CACerts
我试图创建一个IDaaSOIDCStrategy。在选项中,我为CACerts指定了一个以“ /”开头的相对路径,在我的情况下是“ / local /”。
const Strategy = new openIdConnect.IDaaSOIDCStrategy(
{
...
addCACert: true,CACertPathList: [
'/local/<certificate-name>.pem','/local/<another-certificate-name>.pem',}
应该相对于应用程序根目录解析路径。但是,当我将应用程序部署到Cloud Foundry时,它崩溃并出现一个错误,即找不到CACertPathList
中的第一个文件:
ENOENT:没有这样的文件或目录
策略创建代码不是在应用程序根目录下查找,而是在 passport-ci-oidc 软件包的根文件夹下查找,该软件包是安装 node_modules 的位置。在我的Cloud Foundry部署中, node_modules 的根文件夹不是应用程序的根目录,它位于/home/vcap/deps/0/
下的其他位置。应用程序根目录位于/home/vcap/app
中。
我该怎么做才能确保正确解析CACerts的路径?
解决方法
对我有用的解决方案是一种解决方法,但是仍然可以解决。 (策略代码的行为从 passport-ci-oidc 包的根目录中找到相对路径,该行为与文档中的说明不匹配,该说明指出它使用了应用程序根目录,因此可能是一个缺陷。)
Cloud Foundry构建依赖项时,如果应用程序根目录下有一个 node_modules 目录,它将找到该目录并在其中查找依赖项,而不是创建 node_modules 目录在另一个位置。
就我而言,我最初将 node_modules 包含在 .cfignore 文件中,因此没有将 node_modules 推送到Cloud Foundry。当我从 .cfignore 中删除 node_modules 时,位于应用程序根目录下的本地 node_modules 文件夹被直接推到应用程序根目录下。结果, passport-ci-oidc 软件包的根与应用程序根相同,因此相对路径将从应用程序根扩展。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。