2013-09-23 4 views
2

Когда я удар в URL для защищенной базы данных отображается следующее сообщение на странице:CouchDB Access Denied Перенаправление

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

Хотя это сообщение, безусловно, получает точку через Я предпочел бы перенаправить пользователя к на другой странице, например, на странице входа. Я попытался изменить параметр authentication_redirect в конфиге couch, но не успел. Как мне это сделать?

ответ

1

Authentication Перенаправление работает только тогда, когда клиент явно принимает 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 не знает, была просьба послать человека из браузера или б y. В последнем случае перенаправление на HTML-форму вместо повышения HTTP-ошибки не подходит.

+0

ОК, но есть ли решение, используя что-то еще? Есть ли способ сделать это сообщение понятным для человека? Это то, что я ищу. – skinneejoe

+0

Это сообщение отображается только перед переходом на браузер. Конечный пользователь увидит страницу в URL-адресе из заголовка 'Location', который может и должен быть читаемым человеком (: – Kxepal

+0

Спасибо за последующие действия! Я получаю это сообщение, когда я посещаю vhost, который забирает меня для перезаписи для конкретной базы данных Я думаю, что мне нужно немного изменить настройки, чтобы заставить его работать, как я хочу. Спасибо за вашу помощь! – skinneejoe