-
-
Notifications
You must be signed in to change notification settings - Fork 10.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
namespace大小写问题 #2260
Comments
创建namespace应该也是大小写不敏感的 |
如果发生了删除,但不是管理员工具删除,好像就会有问题,总之是可以配置大小写不敏感的同名配置的 |
恩,从功能上来说应该是需要支持大小写不敏感的,看上去是在某些分支上有漏洞,不知对你这边的场景是什么样的,我们看看是否可以重现 |
场景是这样的,他们创了两个namespace,一个是redis.json,另一个是Redis.json,然后在namespace的界面通过"删除namespace"按钮把Redis.json给删除了,最后在加载redis.json这个配置的时候,在configService里面经过'namespace = namespaceUtil.normalizeNamespace(appId, namespace);'这行代码把redis.json转换成了缓存里的Redis.json,就加载不到了 |
normalizeNamespace这个确实是一个问题,不过我测试了一下,正常情况下如果已经有了redis.json,程序是不允许创建Redis.json的。。。 |
那可能是有了Redis.json,然后再删除Redis.json,再建立redis.json导致的? |
尝试了一下也没能重现。。 |
我试了下,我们这边是能创建redis.json和Redis.json的,先创redis.json再创Redis.json之后只能用客户端拉redis.json会拿到Redis.json的内容。我们这边是基于1.2.0版本的,数据库是用的pg。 |
1.3添加了一个这个fix,是否跟这个有关,#1894 ,不过暂时没看到大小写转换,不知道大小写不同的情况是否会受到这个的影响 |
Mysql默认是不区分大小写的,所以apollo是依赖了这个特性做的大小写去重校验,是否是你们的mysql数据库开了区分大小写? |
我们用的是postgresql,pg默认是区分大小写的,mysql连内容也不区分大小写吗? |
mysql默认是不区分的 |
我觉得这个设计有点问题
建议把这层转换在代码里做掉会好一些,否者稍不注意就会引起问题 |
再创建namespace的时候是大小写敏感的,但是configservice里有个AppNamespaceServiceWithCache会缓存AppNamespace,并且是大小写不敏感的。这会导致加载namespace的时候会加载到同一个namespace。
The text was updated successfully, but these errors were encountered: