CouchDB访问被拒绝重定向

时间:2013-09-23 18:36:04

标签: security authentication redirect couchdb access-denied

当我打入安全数据库的URL时,它会在页面上显示以下消息:

{"error":"unauthorized","reason":"You are not authorized to access this db."}

虽然这条消息确实得到了重点,但我更愿意将用户重定向到不同的页面,例如登录页面。我已经尝试更改沙发配置中的authentication_redirect选项但没有成功。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

身份验证重定向仅在客户明确接受text/html内容类型(例如发送Accept: text/html标头)时才有效:

GET /db HTTP/1.1
Accept: text/html
Host: localhost:5984

在这种情况下,CouchDB将发送HTTP 302响应,而不是HTTP 401,它会在您的身份验证表单上重定向,使用authentication_redirect配置选项指定:

HTTP/1.1 302 Moved Temporarily
Cache-Control: must-revalidate
Content-Length: 78
Content-Type: text/plain; charset=utf-8
Date: Tue, 24 Sep 2013 01:32:40 GMT
Location: http://localhost:5984/_utils/session.html?return=%2Fdb&reason=You%20are%20not%20authorized%20to%20access%20this%20db.
Server: CouchDB/1.4.0 (Erlang OTP/R16B01)

{"error":"unauthorized","reason":"You are not authorized to access this db."}

Othewise CouchDB不知道是人从浏览器还是应用程序库发送的请求。在最后一种情况下,重定向到HTML表单而不是引发HTTP错误是不合适的解决方案。