Ускоренная / обходная аутентификация Spring Security 2.0 с использованием пользовательского AuthenticationManager - PullRequest
0 голосов
/ 25 февраля 2010

Для существующего работающего приложения я хочу предоставить вторичный AuthenticationProvider, вероятно, с DaoAuthenticationProvider . Допустим, это для аутентификации «резервного» пароля или предыдущего пароля, который был изменен из-за строгой политики паролей, и пользователь забыл новый пароль. ; -)

Для подтверждения концепции, как будет выглядеть реализация для этого вторичногоAuthenticationProvider, который всегда будет аутентифицировать пользователя независимо от входящих учетных данных? (то, что возвращает аутентифицированный Аутентификация объект)

К какому из МНОГИХ org.springframework.security.providers & классов и методов подпакетов мне следует обратиться?

Пример конфигурации:

<bean id="authenticationManager" class="org.springframework.security.providers.ProviderManager">
  <property name="providers">
    <list>
      <ref local="daoAuthenticationProvider"/>
      <ref local="secondaryAuthenticationProvider"/> <!-- new AuthProv -->
      <ref local="rememberMeAuthenticationProvider"/>
    </list>
  </property>
</bean>

Ответы [ 2 ]

0 голосов
/ 25 февраля 2010

Похоже, вы должны просто создать свой собственный UserDetailsService с таким поведением - это был бы самый простой способ сделать это.

0 голосов
/ 25 февраля 2010

Если у вас есть только один альтернативный пароль, вы можете объявить второй DaoAuthenticationProvider, подкрепленный специальным UserDetailsService, который выдаст UserDetails с этим альтернативным паролем.

В противном случае вы можете создать пользовательский AuthenticationProvider. Проверка учетных данных в DaoAuthenticationProvider происходит в additionalAuthenticationChecks(), поэтому, если вы хотите изменить эту логику, вы можете создать подкласс DaoAuthenticationProvider и переопределить этот метод в своей реализации.

Например, если вы хотите аутентифицировать пользователя независимо от его учетных данных, вы можете переопределить этот метод пустой реализацией.

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