Пропустить приглашение на вход в Jackrabbit - PullRequest
1 голос
/ 24 января 2012

У меня есть автономное хранилище JackRabbit. Он заполняется через RMI с использованием некоторых учетных данных (доступ для записи). Доступ на чтение по HTTP включен для любых учетных данных (по умолчанию).

Одним из вариантов использования является создание URL-ссылок на элементы (файлы) репозитория на странице JSP, чтобы пользователи могли щелкнуть их, чтобы просмотреть в браузере или загрузить. Ссылки генерируются, но при нажатии на них мы получаем ошибку 403. Если эта ссылка скопирована на другую вкладку браузера, она запрашивает логин / пароль и отображает (или загружает) файл.

У меня была идея передать некоторые (возможно, пустые) логин / пароль на URL, например:

http://user:password@host:port/blahblah

Но это не разрешено для HTTP через RFC (хотя иногда это работает, но не всегда, и это меня не устраивает)

Вопрос в том, как удалить запрос логина / пароля для доступа по HTTP? Это кажется избыточным, потому что любые учетные данные разрешают доступ для чтения. Это можно настроить в repository.xml, security.xml или где-то еще?

1 Ответ

2 голосов
/ 24 января 2012

Вы можете настроить это в дескрипторе развертывания WEB-INF/web.xml в веб-приложении Jackrabbit. Запись конфигурации <servlet> для SimpleWebdavServlet содержит параметр missing-auth-mapping, который по умолчанию закомментирован:

<init-param>
     <param-name>missing-auth-mapping</param-name>
     <param-value>anonymous:anonymous</param-value>
     <description>
         Defines how a missing authorization header should be handled.
         1) If this init-param is missing, a 401 response is generated.
            This is suitable for clients (eg. webdav clients) for which
            sending a proper authorization header is not possible if the
            server never sent a 401.
         2) If this init-param is present with an empty value,
            null-credentials are returned, thus forcing an null login
            on the repository.
         3) If this init-param is present with the value 'guestcredentials'
            java.jcr.GuestCredentials are used to login to the repository.
         4) If this init-param has a 'user:password' value, the respective
            simple credentials are generated.
     </description>
 </init-param>

Включение этого параметра должно решить вашу проблему.

...