Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-rus] Auth



Felix Milovanov <felix@gambit.msk.su> wrote:

> http://gambit.msk.su/test/, Login - guest, pass - guest.
> При хождении по линкам - работает, при LOGOUT - выдает окошко
> о плохой авторизации на том-же realm. Ну и что ни дави - старый
> пассворд Netscape забыла. BACK, правда, сработает ( из кэша ) -
> но вот на линки уже не пустит ...

 Мда. Если бы не работающий пример, так и пребывал бы в уверенности,
 что это невозможно. :-) А дело тут более тонкое. Согласно RFCям,
 realm для auth-type="basic" характеризуется только именем, и уже
 задача браузера - ассоциировать его с деревом URL'ов, серверу остается
 же ассоциировать его с деревом директорий. Казалось бы, достаточно
 сказать браузеру код 401, чтобы он забыл пароли для всех своих
 деревьев URL'ов, связанных одним общим именем realm'а.
 Ан нет!
 Нетскейп почему-то "забывает" credentials только для того дерева,
 которое начинается от директории скрипта, и не "забывает" для других
 деревьев. Что, по-моему, неправильно, т.к. обратную задачу он решает
 вполне корректно - получив код 401 для неперекрывающегося поддерева,
 смотрит на realm, находит credentials от уже авторизованной ветки и
 повторяет запрос с хедером "Authenticate". 

 Более того, обнаружилось, что если Нетскейп помнит несколько деревьев
 с одинаковым именем realm, то "забыть" уже ни одно не может. :-)
 Наверное, потому, что он очищает у себя в памяти информацию только
 об одном дереве, а при переходе на следующее с радостью находит
 у себя в памяти те credentials, о которых должен был бы забыть.═:))

 Taк что у меня получилось следующее: чтобы сделать кнопочку "LOGOUT",
 надо скрипт расположить обязательно наверху (!) того дерева, которое
 должно быть закрыто. Дерево должно быть одно. (!!) Иначе не выходит.

 Полистав спецификацию HTTP/1.1, я пришел к выводу, что это все-таки
 бага Нетскейпа, которую мозиллописцы из Стэка могут взять себе на
 заметку. Кину еще один камень в огород Мозиллы: для proxy-запросов
 NC-4.xx делает DNS lookup. Это явно лишнее.
--
 Eugene Berdnikov





Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.