Spring SAML учетные данные и учетные записи платформы

1

Я смог интегрировать Spring SAML Spring и Spring SAML с помощью аннотации @ImportResource.

Теперь я хотел бы продолжить следующее:

  1. пользователь выбирает IdP [DONE].
  2. он выполняет вход (успешно) [DONE].
  3. SP получает пользовательские данные (путем синтаксического анализа объекта SAMLCredential) [DONE].
  4. webapp должен был проверить, существует ли идентификатор пользователя (например, электронная почта), полученный через SAML, в моем собственном БД.
  5. a) Если да, webapp читает из БД роль и устанавливает связанные привилегии.
    б) Если нет, webapp пришлось выполнить перенаправление на страницу регистрации, чтобы вставить пользователя в систему.

Сделать смысл выполнять точки 4 и 5 с помощью реализации UserDetailsService, или я должен настроить контекст безопасности, определяющий поставщиков, фильтры и т.д.?

Теги:
spring-security
saml
saml-2.0
spring-saml

1 ответ

1
Лучший ответ

Вы должны реализовать org.springframework.security.saml.userdetails.SAMLUserDetailsService и подключить его к компоненту samlAuthenticationProvider. Если пользователь не существует, вы должны вызывать исключение UsernameNotFoundException, иначе просто заполните и верните данные из своей БД.

Кроме того, вы должны реализовать свой собственный org.springframework.security.web.authentication.AuthenticationFailureHandler и подключить его к компоненту samlWebSSOProcessingFilter. Эта реализация будет вызвана с именем UsernameNotFoundException, отправленным как параметр, и вы можете перенаправить пользователя на правильную страницу регистрации в качестве реакции на него.

  • 0
    Спасибо вам большое!
  • 0
    Пожалуйста. V. Если вы удовлетворены ответом, примите его, нажав на флажок рядом с ответом, чтобы переключить его с пустого на зеленый.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню