yhl452493373 / frps-panel

frps-panel 是 https://github.com/fatedier/frp 的一个服务端插件,用于支持多用户鉴权,同时用于展示服务器信息。
Apache License 2.0
47 stars 17 forks source link

从配置文件中读取配置时,配置项增加默认值 #2

Open jikunchong opened 11 months ago

jikunchong commented 11 months ago

现象:

  1. 第一个用户 abc 配置的端口和子域都能正常访问,而其它用户的不行。
  2. Frp 面板中,用户列表界面一直转圈,不能加载用户列表信息。

版本:1.7.1 frps-tokens.toml 配置如下:

# frps-tokens.toml
[tokens]
   [tokens.abc]
      user = "abc"
      token = "805e2bax-xxx"
      comment = "abc with token 805e2bax"
      ports = ["11000-11999", "16000-18999", "19000-19999"]
      subdomains = ["www", "asset", "code", "vault", "tools"]
      enable = true
   [tokens.def.ghi]
      user = "def.ghi"
      token = "88ecfd0x-yyy"
      comment = "def.ghi with token 88ecfd0x"
      # n5095: 21000-21999
      ports = ["21000-21999"]
      subdomains = ["n5095-unraid", "n5095-ds3622xs", "n5095-frpc"]
      enable = true
   [tokens.tao.wan]
      user = "tao.wan"
      token = "87caa9dx-zzz"
      comment = "tao.wan with token 87caa9dx"
      # x99: 22000-22999
      ports = ["22000-22999"]
      subdomains = ["x99-frpc"]
      enable = true
jikunchong commented 11 months ago

之前使用 fp_multiuser 插件时,都是正常工作的。

jikunchong commented 11 months ago

@yhl452493373 麻烦看一下问题呢,谢谢

jikunchong commented 11 months ago

附图: 用户列表

jikunchong commented 11 months ago

确认问题了,应该算是个 bug 吧:

  1. 用户名不能支持点号(例如:tao.wan),包括 [tokens.tao.wan] 段名。
  2. 不能缺少字段,即使是空也得加上(例如:我这里缺了 domains = [""])
jikunchong commented 11 months ago

另外发现新问题:未配置在 subdomains 中的子域名,也能访问。

yhl452493373 commented 11 months ago

确认问题了,应该算是个 bug 吧:

  1. 用户名不能支持点号(例如:tao.wan),包括 [tokens.tao.wan] 段名。
  2. 不能缺少字段,即使是空也得加上(例如:我这里缺了 domains = [""])

第1点:在前端添加用户时,限制了只能是字母数字下划线,用正则验证的,并且后端也做了校验:

username.trim() === '' || !/^\w+$/.test(username)

上面结果为true,就不符合要求。你如果是手写的配置,那可能绕过了这个限制。

第2点:我这边都是直接在前端建的用户,即使未填值,在写入配置文件时,会自动写为[""]。但是如果手写配置的话,由于没有设置默认值,就会出问题。后面我会给每个字段整个默认值

总之你尽量在页面建用户吧

jikunchong commented 11 months ago

好的。不过像 tao.wan 这样的姓名配置方式还是比较常见,后续是否能提供对句点符号的支持?

yhl452493373 commented 11 months ago

好的。不过像 tao.wan 这样的姓名配置方式还是比较常见,后续是否能提供对句点符号的支持?

这个我得去看下toml的格式要求了。如果toml允许,可以多加一个点号支持

yhl452493373 commented 11 months ago

另外发现新问题:未配置在 subdomains 中的子域名,也能访问。

这个我后面看下,先排查下原因。

jikunchong commented 11 months ago

新发现问题2:

图片

备注不用限定输入的字符吧,当保存在 toml 里面时,根据需要转义一下应该可以的