[
https://issues.apache.org/jira/browse/COUCHDB-34?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12668724#action_12668724
]
Adam Kocoloski commented on COUCHDB-34:
---------------------------------------
So, the CouchDB replicator works with HTTP authentication already. Since we
have no restrictions on reader access, we only have to worry about two cases:
local target and remote target.
Local Target: specify credentials in the POST to replicate. Either of the
following works:
curl -X POST http://admin:mysecretpassw...@localhost:5984/_replicate works
curl -X POST http://localhost:5984/_replicate -H "Authorization:Basic
YWRtaW46bXlzZWNyZXRwYXNzd29yZA=="
Remote Target: specify credentials in the JSON body. This works in trunk:
{
"source":"test_suite_db_a",
"target":"http://admin:mysecretpassw...@localhost:5984/test_suite_db_b"
}
This works if you the header value in
couch_httpd_misc_handlers:handle_replicate_req using ?b2l:
{
"source":"test_suite_db_a",
"target":"http://localhost:5984/test_suite_db_b",
"target_options":{
"headers":{
"Authorization":"Basic YWRtaW46bXlzZWNyZXRwYXNzd29yZA=="
}
}
}
One thing we could do is format a nice 401 response if the replicator fails
because of missing credentials. Currently the replicator crashes when
update_docs fails and no response is sent to the client. In the local target
case returning a 401 is a no brainer.
In the remote target case it's a little weird because the credentials need to
be sent in the JSON body. One idea might be to set realm="target" in the
response. CouchDB-aware clients would know that means the credentials need to
go in the body, not the URL or Headers.
> Enable replicator to use HTTP authentication
> --------------------------------------------
>
> Key: COUCHDB-34
> URL: https://issues.apache.org/jira/browse/COUCHDB-34
> Project: CouchDB
> Issue Type: New Feature
> Components: Database Core
> Reporter: Christopher Lenz
> Priority: Blocker
> Fix For: 0.9
>
>
> You can currently give the CouchDB replicator HTTP URIs to remote databases.
> However, if one of those remote instances is behind HTTP authentication, the
> replication will fail. It should be possible to specify authentication
> credentials to the replicator, which it would then use in response to 401
> responses.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.