barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

четверг, 12 января 2012 г.

Spring Security: определение собственного authentication-provider

Путь, к примеру, нужно создать свой провайдер аутентификации на основе org.springframework.security.authentication.dao.DaoAuthenticationProvider. Пусть раньше провайдер определялся в конфиге так:
    <authentication-manager>
        <authentication-provider user-service-ref='userDetailsService'>
            <password-encoder hash="md5" />
        </authentication-provider>
    </authentication-manager>  
Тогда:

  1. Создаем свой класс, наследуя org.springframework.security.authentication.dao.DaoAuthenticationProvider. Пусть, к пример, наш класс будет называться my.package.MyAuthenticationProvider
  2. В конфиге пишем:
    <beans:bean id="md5PassEncoder"
          class="org.springframework.security.authentication.encoding.Md5PasswordEncoder">
    </beans:bean>
   
    <beans:bean id="authProvider" class="my.package.MyAuthenticationProvider">
        <beans:property name="userDetailsService" ref="userDetailsService"/>
        <beans:property name="passwordEncoder" ref="md5PassEncoder"/>
    </beans:bean>  
 
    <authentication-manager>
        <authentication-provider ref='authProvider'/>
    </authentication-manager>  
Такой конфиг будет аналогичен приведенном выше, однако будет использовать наш класс провайдера.

Комментариев нет:

Отправить комментарий