为什么Subversion不允许用户名中包含"."和"@"?还是说允许?

3
我们希望在所有的开发工具中使用相同的用户ID,但是Subversion的限制不允许我们使用电子邮件地址作为用户名。
6个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
2

好的,既然您可以创建由多个用户组成的组,并且稍后可以使用@<groupname>来引用它们,那么在常规用户名中使用@可能会成为一个问题。

这是在创建新svn存储库时生成的默认authz文件示例中的内容:

[groups]
harry_and_sally = harry,sally
[repository:/baz/fuz]
@harry_and_sally = rw

这将给予组'harry_and_sally'的用户对'/baz/fuz'仓库的读写权限。


2
这真的取决于您如何设置Subversion。可能标准的svnserve内置身份验证不允许使用“.”和“@”(我没有尝试过)。我已经使用Apache而不是内置的svnserve来设置了我的Subversion存储库。在Apache下,您可以使用标准的Apache访问控制,例如htpasswd文件,甚至与LDAP或Microsoft Active Directory的集成。然后,您可以为Subversion用户使用电子邮件地址或AD登录名。

+1 我们使用带有 mod_auth_lsspi 的 Apache 对我们的 Windows 域进行身份验证。 - Wim Coenen

1

Subversion在内部实际上使用UTF-8存储所有数据,包括用户名,因此对于您可以为用户命名的内容没有真正的限制。例如,我刚刚创建了一个提交并使用了这个用户名:

'Й, ק,‎ م, ๗, あ, 叶, 葉, and 말.'

问题在于,其他程序可能会为特殊目的保留某些字符,例如 svn passwd 文件中的 [、= 和 #。Subversion 可以处理更广泛范围的用户名,但该特定文件格式不能。如果您发现自己无法使用某些字符,则是链中的其他链接的限制,例如 Apache 或您的 IDE 或数据库等。

这并不太有帮助,因为您可能无法轻松修复导致此问题的任何内容或切换工具,但这就是当今“奇怪”字符的状态。


0

它允许在用户名中使用“.”,但从未尝试过“@”。


在用户名中使用“.”是否安全?因为SourceForge企业版和流行的基于Web的管理工具USVN不允许在用户名中使用点。 - user104279
顺便提一下,另一个流行的管理工具VisualSVN服务器允许用户名中有点,并且它也可以与TortoiseSVN一起使用... - user104279
1
在工作中多年来一直使用名字.姓氏的用户名,一直运行良好。 - ismail

0

在我的$JOB公司,电子邮件地址是Subversion的标准用户名,因此它必须正常工作。

然而,在我的团队中,我们坚持要求使用我们的(也是全公司通用的)Windows用户名,这些用户名往往不超过8个字符。像Reallylongfirst.Andlastname@amazing-products.com这样的用户名在标准GUI日志查看器中会导致可用性问题,并且与svn blame不兼容。


0
构建包含用户名的URI的常规方式是protocol://user@host:port/path。svn也使用了这种方式,因此@字符是特殊的。我没有尝试过,但我相当有信心你可以转义它(如%40)使其正常工作。然而,在我的看法中,使用完整的电子邮件地址作为用户名是一个相当糟糕的主意。如果你在公司内部,为什么不能使用本地部分呢?其他所有内容很可能对所有用户都是相同的,因此你只是重复信息——并且它不会与日志视图很好地配合使用。 另请参见RFC 3986

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,