在 Spring 中保存以前的身份验证

Saving a previous authentication in Spring

作为身份验证,应用程序(Service-X)使用第三方内部服务(Service-Y),其中存储了有关员工的所有信息。公司内部所有服务均使用单点登录

Service-Y不可用时如何实现登录Service-X的功能? (如果我之前已经在Service-X中认证过了)

Spring 安全性附带的 remember-me 功能可能正是您需要的。

但是,这仍然有很多限制。如果您的 cookie 在关闭浏览器时被清除,这在很多大公司中很常见,那么这将不起作用。除了会话 cookie,您无法安全地记住用户。如果用户的 cookie 已被清除或已过期,您绝对需要 Service-Y 来识别用户。

OAuth2 的主要卖点是您使用 Service-Y 登录而 Service-X 不知道您的 username/password (除非用户名通过范围传输) ,因此虽然您可以要求用户在第一次使用 Service-Y 登录 Service-X 时提供密码,以防 Service-Y 出现故障,这将 可能修补你的问题,我真的不推荐它因为它有点违背了OAuth2的目的。

现在,如果尽管我不推荐,你还是接受了这个建议,你应该确保 Service-X 检查 Service-Y 在允许之前关闭用户使用他为 Service-X.

提供的密码登录

最好的情况是,如果您的浏览器 cookie 没有被清除,请使用记住我功能。我建议您阅读以下内容:http://www.baeldung.com/spring-security-oauth2-remember-me