我能够使用@ImportResource注释集成Spring Boot和Spring Security SAML。
现在,我想继续如下:
通过使用UserDetailsService实现执行第4点和第5点是否有意义,还是让我设置定义身份验证提供程序,过滤器等的安全上下文?
答案 0 :(得分:2)
您应该实现 org.springframework.security.saml.userdetails.SAMLUserDetailsService 并将其插入 samlAuthenticationProvider bean。如果用户不存在,您应该抛出 UsernameNotFoundException 异常,否则只需填充并返回数据库中的数据。
最重要的是,您应该实现自己的 org.springframework.security.web.authentication.AuthenticationFailureHandler 并将其插入 samlWebSSOProcessingFilter bean。将使用作为参数发送的UsernameNotFoundException调用此实现,然后您可以将用户重定向到正确的注册页面作为对它的反应。