我已经使用spring-security-saml 2.0集成了我们的Spring应用程序。集成工作正常我可以从IDP获得成功验证消息,但是当我被重定向到我的Web应用程序页面时。应用程序创建自己的SecurityContextHolder,我将用户视为匿名身份验证对象不是由SAMLAuthenticationProvider创建的SAMLAuthentication。
在获得身份验证成功或错误后,我们需要知道如何集成现有Web应用程序的spring安全性?
SAMLAuthenticationProvider验证传入的SAML响应,并返回ExpiringUsernameAuthenticationToken的对象,该对象在传入的SAML断言的帮助下填充(例如具有声明的UserDetails和具有SAML令牌到期时间的令牌到期时间)。在此之后,Spring安全性会为其收到的每个请求引用此令牌以获取用户信息。
要将Spring SAML与现有的Spring安全应用程序集成,您可能需要自定义实现user-context-mapper,它可以将传入SAML响应中的权限映射到您的本地权限(组)。
希望这可以帮助。