Пользовательский основной компонент Spring Security - PullRequest
0 голосов
/ 31 марта 2010

У меня есть веб-приложение, настроенное на использование сервера ldap по умолчанию / менеджер аутентификации / поставщик аутентификации / служба пользователя. У меня есть другой DAO, который уже выполняет большую часть работы, которую выполняют (помимо аутентификации пользователя) с использованием Spring-LDAP. Моя проблема в том, что я хочу, чтобы основной класс принадлежал моему собственному классу bean. Какой самый простой способ сделать это?

Изначально я думал о создании собственного провайдера аутентификации, но, поскольку по умолчанию он делает именно то, что я хочу, похоже, в этом нет необходимости. Я думаю, что мне просто нужно переопределить любой объект, который на самом деле возвращает Основной бин. Возможно ли это и может ли быть введено в контекст аутентификатора безопасности ldap?

Вот как я сейчас настроил:

 <ldap-server 
  url="ldap://HOST:3268/BASEDN"
  manager-dn="FULLDN" 
  manager-password="PASS"/>

    <authentication-manager>
 <ldap-authentication-provider user-search-filter="(samaccountname={0})"/>
 <authentication-provider>
      <ldap-user-service  user-search-filter="(samaccountname={0})"/>
 </authentication-provider>

</authentication-manager> 

Является ли 'ldap-user-service' тем, что связывает основной компонент с объектом аутентификации SecurityContext?

Проблема в том, что сейчас у меня есть 2-я конфигурация LDAP (почти идентичная конфигурации аутентификации), которая предназначена для DAO, когда пользователь заходит на страницу, я просто повторно ищу его учетную запись и возвращаю пользователя объект (который был бы хорош, если бы это был принципал SecurityContext) ...

1 Ответ

1 голос
/ 31 марта 2010

Используйте ldap-authentification-provider/@user-context-mapper-ref и реализуйте собственный org.springframework.security.ldap.userdetails.UserDetailsContextMapper.

...