весенняя безопасность - множественные аутентификации для разных шаблонов URL

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

  1. Я хочу, чтобы пользователи обращались к различным шаблонам URL, которые должны быть аутентифицированы соответствующей аутентификацией, и не пытайтесь сначала с одной аутентификацией, а если это не удается, попробуйте другой. Вот почему я думаю, что мне могут понадобиться два разных администратора аутентификации?
  2. Мое приложение должно быть в HTTPS для всех URL-адресов
  3. Мне нужно настроить tomcat таким образом, чтобы аутентификация клиента требовалась только для определенного шаблона URL, а не для всего приложения.

Вот что я до сих пор сделал для первой проверки подлинности, любая помощь будет оценена по достоинству:

безопасности applicationContext.xml:


    
    


    


    



    

Благодаря!

EDIT - 30.01.13:

Я добавил следующий раздел в свой контекст security.xml. Когда я отлаживаю приложение при доступе к обоим шаблонам URL, я вижу, что для первого шаблона URL (/ urlAuth1) getProviders() в authenticationManager возвращает только один провайдер, который является urlPreAuthProvider, а для второго шаблона URL (/ certAuthTest) он возвращает два провайдера - анонимный и preauthenticatedprovider, который, я думаю, зарегистрирован по умолчанию. Для меня это нормально, так как это означает, что каждый шаблон проходит через правильных поставщиков. Я хочу убедиться, что я ничего не пропустил, это кажется вам правильным?


    
    

regarding the web.xml configuration for clientAuth, I'll do some more reading and see if this works. Благодаря!

2
nl ja de
Возможно, вы сможете решить проблему, добавив другого поставщика проверки подлинности (а не диспетчера аутентификации). Для получения дополнительной информации см. stackoverflow.com/questions/4783063/… .
добавлено автор Ritesh, источник

1 ответы

You can declare separate authentication manager beans for each URL pattern you want and then assign them to the individual filter chains using the authentication-manager-ref attribute on the element.


    ...

Вы можете использовать стандартный компонент ProviderManager для отдельных менеджеров проверки подлинности.

Чтобы обеспечить соблюдение HTTPS для всех запросов, вы можете использовать стандартные настройки web.xml </а>.

Проверка подлинности сертификата клиента происходит, когда установлено соединение SSL. Так что у вас либо есть, либо нет. Исследуйте настройку коннектора tomcat clientAuth . Вы можете настроить его на «желать» запроса сертификата клиента, но не требовать его для успешного соединения SSL.

3
добавлено
В качестве части бухгалтерии боба элемент регистрирует внутренний менеджер проверки подлинности, который делегирует «родительский» (внешний, который вы определяете). Вот откуда берутся провайдеры аутентификации.
добавлено автор Shaun the Sheep, источник
Это отвлекает исходный вопрос, но вы можете посмотреть на источник, если хотите действительно понять, как работает пространство имен. Вы можете проверить ProviderManager , чтобы увидеть, как диспетчер аутентификации только при необходимости вызывает свой« родительский ». Это может быть то, что вы видите.
добавлено автор Shaun the Sheep, источник
Спасибо за ваши ответы. Я добавил обновление к исходному вопросу, если вы можете взглянуть.
добавлено автор michalv82, источник
но как же получилось, что для первой проверки подлинности HTTP найден только один провайдер (urlPreAuthProvider, который я определил в xml), а для другой проверки подлинности http у меня разные поставщики, которых я нигде не определял?
добавлено автор michalv82, источник
Кибербезопасность АСУ ТП: RUSCADASEC Community
Кибербезопасность АСУ ТП: RUSCADASEC Community
1 389 участник(ов)

Группа открытого независимого сообщества специалистов по кибербезопасности АСУ ТП / RUSCADASEC для интерактивного обмена информацией по теме Подробнее: www.ruscadasec.ru Наш канал для основных новостей и материалов @RUSCADASECnews

Spring Framework and more
Spring Framework and more
839 участник(ов)

чат о spring framework и связанных с ним технологиях. We're discussing: job, tech questions, beer meet up/networking: tech review ,LinkedIn skills, SOF q/a raise up& etc. languages: russian,java,eng.

secinfosec
secinfosec
697 участник(ов)

Эта группа про информационную безопасность. Целевая аудитория: пентестеры, ресерчеры, ибшники всех мастей. Реклама, криминал, политика и прочая чушь карается родовыми проклятьями. Митапы: https://www.youtube.com/channel/UCagEjp1FmxY9gsVxi6_d4SQ

Linux Security
Linux Security
652 участник(ов)

Данная группа принципиально про безопасность и в частности про безопасность Linux. Прочие темы просим обсуждать в профильных чатах.

Chat Security / ИБач чат
Chat Security / ИБач чат
601 участник(ов)

Чат канала @ibach Обсуждение всего, что касается информационной безопасности Правила: https://t.me/chat_security/65