除了正确的 cookie身份验证外,Debian上的CouchDB(2.1.1)的全新设置似乎适用于各个方面(文档的CRUD,添加新用户,复制等)。
在require_valid_user = true
部分设置chttpd
后,CouchDB开始要求进行身份验证。基本身份验证按预期工作:
curl -u foo:XXXX http://localhost:5984/_session
{"ok":true,"userCtx":{"name":"foo","roles":[]},"info":{"authentication_db":"_users","authentication_handlers":["cookie","default"],"authenticated":"default"}}
...但Cookie身份验证不起作用:
curl http://localhost:5984/_session -H \
'Content-Type:application/x-www-form-urlencoded' -d 'name=foo&password=XXXX'
{"error":"unauthorized","reason":"Authentication required."}
BUT
在require_valid_user = false
部分设置chttpd
可使Cookie身份验证工作:
curl http://localhost:5984/_session -H 'Content-Type:application/x-www-form-urlencoded' -d 'name=foo&password=XXXX'
{"ok":true,"name":"foo","roles":[]}
(...显然,它同时完全不需要身份验证。)
我期望它工作的当前配置的相关部分如下所示:
[chttpd]
authentication_db = _users
require_valid_user = true
会出现什么问题?