Поддержка как базовой, так и дайджест-аутентификации на одном и том же сопоставлении URI с помощью Spring Security.

У меня есть вариант использования для защиты службы RESTful, и я не совсем уверен, можно ли ее реализовать или нет - по сути, я хотел бы настроить как базовую, так и дайджест-аутентификацию. Настройка обоих фильтров в цепочке должна быть относительно простой, но я не уверен, как обращаться с точкой входа — насколько я могу судить, есть 2 точки входа для 2 типов аутентификации, но так, как должно быть. потенциально работа заключается в вызове правильной точки входа в случае, если заголовок авторизации поставляется с логикой аутентификации Basic или Digest.

Я знаю, что в Spring 3.1 у вас может быть несколько элементов, но я не думаю, что это может помочь в этом случае, так как эти 2 варианта аутентификации должны поддерживаться на одном и том же сопоставлении, и сопоставление кажется единственным способом, которым 2 элементы можно дифференцировать.

Мне также известен вопрос: Spring Security 3.x: как включить аутентификацию BASIC и DIGEST? Но это, похоже, не решает вопрос множественных точек входа.

Есть ли что-то, что я упускаю из виду или, возможно, не совсем понимаю? Любая помощь приветствуется. Спасибо. Ойген.




Ответы (1)


Я решил проблему - в итоге я использовал дайджест-аутентификацию (фильтр и точку входа) и добавил базовый фильтр сразу после дайджест-фильтра в цепочке. Таким образом, для запроса с учетными данными аутентификации (базовыми или дайджестами) правильный фильтр подберет его. Для анонимного запроса будет запущена точка входа дайджеста, и клиенту будет предложено ввести учетные данные дайджеста.

person Eugen    schedule 22.11.2011