пружинная безопасность AuthenticationManager по сравнению с AuthenticationProvider?

Может кто-то говорить мне различие между AuthenticationManager и AuthenticationProvider в безопасности Spring?

Как они используются и как их называют. Это - мое понимание это a SecurityFilter будет звонить AuthenticationManager пройти проверку подлинности Authentication объект? Но затем где делает AuthenticationProvider сыграть роль?

Спасибо!

55
задан David Newcomb 17 October 2016 в 23:58
поделиться

1 ответ

Я не знаю о «Best Practices», но это то, что я использую:

 var header = db.SalesOrderHeaders.SingleOrDefault(h => h.SaleHeaderNo == 14);
 IEnumerable<SalesOrderLine> list = header.SalesOrderLines.AsEnumerable();

 // now your list contains the "many" records for the header
 foreach (SalesOrderLine line in list)
 {  
      // some code
 }

Я пытался смоделировать его после вашего дизайна стола, но имена могут быть немного другими.

Теперь, является ли это «лучшим способом», я не уверен.

ОТРЕДАКТИРОВАНО: Вы заметили, что хотите обновить их все, возможно, переместитесь в другую таблицу. Поскольку LINQ-To-SQL не может выполнять групповые вставки/обновления, вероятно, для этого необходимо использовать T-SQL.

-121--5044238-

Стек можно рассматривать как последовательность триплетов x, y, z (x, y быть 2D плоскость, и z - высота), где x (i) > x (i + 1) и y (i) > y (i + 1). Цель состоит в том, чтобы максимизировать сумму z, выбирая триплеты из набора доступных триплетов - каждый триплет является одним типом коробки в конкретной ориентации. Довольно легко увидеть, что применение ограничения x > y не уменьшает пространство для решения. Таким образом, каждый блок генерирует 3 триплета, каждый из которых имеет координаты w, h, d.

Если рассматривать триплеты как направленный ациклический граф, где рёбра длины z существуют между двумя триплетами, когда между ними выполняются ограничения x, y, то задача состоит в нахождении самого длинного пути через этот граф.

-121--1338500-

Я думаю, что AuthentityManager делегирует выборку постоянной пользовательской информации одному или нескольким AuthentityProvider . Провайдеры аутентификации (например, DaoAuthentityProvider, JaasAuthentityProvider, Ldap AuthentityProvider, OpenIDAuthentityProvider ) специализируются на доступе к определенным репозиториям сведений о пользователях. Что-то еще упоминается в этой части справочного руководства. Это говорит:

Вы можете зарегистрировать дополнительные компоненты AuthentityProvider в ProvityManager, и вы можете сделать это с помощью элемента с атрибутом ref, где значением атрибута является имя компонента поставщика, который требуется добавить.

Другими словами, можно указать несколько провайдеров AuthentityProvider, например, один, который ищет пользователей в базе данных LDAP, и другой, который ищет в базе данных SQL.

36
ответ дан 7 November 2019 в 07:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: