mindoc-org / mindoc

Golang实现的基于beego框架的接口在线文档管理系统
https://mindoc.com.cn/docs/mindochelp
Apache License 2.0
7.29k stars 1.9k forks source link

LDAP 和本地用户名中带有符号“-”的无法登录 #440

Closed woocatcat closed 5 years ago

woocatcat commented 5 years ago

请按照一下格式提交issue,谢谢!

  1. 你当前使用的是哪个版本的 MinDoc(godoc_linux_amd64 version)? good_linux_amd64 v1.0.2

  2. 你当前使用的是什么操作系统? Centos7 64bit

  3. 你是如何操作的? LDAP配置已成功。AD用户可以正常登录。但是遇到用户名带符号“-”的用户无法登录。

  4. 你期望得到什么结果? AD用户名带符号“-”可以登录

  5. 当前遇到的是什么结果? [Member.go:144] 自动注册LDAP用户错误 账号只能由英文字母数字组成,且在3-50个字符

lifei6671 commented 5 years ago

改下正则,本地重新编译就行了,不通企业对用户名要求不一致。

woocatcat commented 5 years ago

改下正则,本地重新编译就行了,不通企业对用户名要求不一致。

你好,我修改了 conf/enumerate.go 中 const RegexpAccount = ^[a-zA-Z][a-zA-Z0-9\.-]{2,50}$ ,并运行 go build 重新编译了 mindoc 文件。但是还无法配置带符号“-”的用户名。

lifei6671 commented 5 years ago

你看下是因为用户名的问题还是因为你的域中用户没配置邮箱?

woocatcat commented 5 years ago

你看下是因为用户名的问题还是因为你的域中用户没配置邮箱?

你好,确认是用户名问题。因为不带符号的LDAP用户是可以正常登录的。而且我测试了本地用户名也无法使用符号“-”

woocatcat commented 5 years ago

正则表达式改为 ^[a-zA-Z][a-zA-Z0-9.-]{2,50}$ 用正则表达式测试器测试通过,支持符号“-”,但是编译后用户名还是无法使用符号“-”

lifei6671 commented 5 years ago

你的正则写错了,正确的应该是 ^[a-zA-Z][a-zA-Z0-9\.-]{2,50}$

woocatcat commented 5 years ago

^[a-zA-Z][a-zA-Z0-9.-]{2,50}$

你好,谢谢指点。按照上面的正则修改并编译后,还是无法使用符号“-”。 另外,我做了一个测试,将正则表达式改为 ^[a-zA-Z][a-zA-Z0-9]{2,50}$,编译后,发现符号“."仍然可以使用,而且用户名长度2位字符不能使用。貌似 const RegexpAccount 这个参数的修改并没有生效。