node-red - Nodered httpauth 节点 文件类型凭证
问题描述
我尝试使用 Nodered v0.18 创建一个简单的 REST 服务器。为了保护节点,我下载了 node-red-contrib-httpauth,它可以提供访问 http 节点的基本凭据。这个阶段很正常。
所以节点
输入:HTTP -> httpauth -> 输出:HTTP
输入:HTTP 属性
Method = GET
URL = /rest/test.json
Name = Auth
我想创建多个登录用户名/密码对。所以 httpauth 中最好的配置是使用“文件”。
我创建了一个包含这些内容的 .txt 文件
username1:realm1:password1
username2:realm1:password2
username3:realm1:password3
存储在 E:\somefilename.txt
然后我添加新的 node-red-contribs-httpauthfile
Name = anyname
Auth Type = Basic
Realm = realm1
File = E:\somefilename.txt
在编辑 HTTP 身份验证节点页面
Name = anyname
Auth Type = Basic
Realm = realm1
Username =
Password =
Hashed = false or untick
然后我转到 URL http://thisismytestdomain.com:1880/rest/test.json 弹出基本凭证对话框“至少这部分工作”
我尝试输入username1,username2无法登录或凭证错误。然后它通过 username3 我尝试改变层次结构
username3:realm1:password3
username2:realm1:password2
username1:realm1:password1
它总是底部的一个得到认证。
不知道为什么。尝试 google 并去 GitHub 了解代码。不走运 GitHub 中的代码看起来很合理,应该可以工作,但不确定为什么它总是只能选择最后一个条目。
解决方案
这有点猜测,因为我还没有真正尝试过。
查看源代码,这里它使用“\n”分割文件中的行。假设您的文件具有 CR/LF 结尾,则第一个密码将以 CR 为后缀,第二个到倒数第二个用户名将以 CR 为前缀。因此,唯一可以正确解释的是最后一个——这就是你所看到的。
如果是这种情况,您必须编辑文件以具有 Unix 样式的行尾(仅 LF)而不是 DOS/Windows 样式(CR/LF)。
顺便说一句,有人打电话oups13
(这是你吗?)在 2018 年 6 月对此提出了一个问题,但没有得到答复(请参阅https://github.com/endemecio02/node-red-contrib-httpauth/issues/5)。所以你不是唯一一个有问题的人。
推荐阅读
- javascript - 带有缩小脚本的 AngularJS 错误模块
- spring - Spring Data Mongodb:json字符串到BasicDBObject
- apache-spark - 如何使用 Apache Spark 提供 keras 模型?
- matlab - 如何使用 SURF 提取图像特定像素的特征?
- node.js - TypeError:无法读取未定义的属性“upgradeElements”,问题 2 是 TypeError:无法读取未定义的属性“downgradeElements”
- java - Java反应式编程中的分页
- html - Http post一个文件数据
- c - 强制编译时计算 C
- haskell - Wadler 中具有类型约束的数据类型 - 函数式编程论文的精髓,
- php - PHP Mysqli代码不显示查询结果