因此,您想要实现的是:当客户端将用户重定向到您的授权服务器(授权代码或隐式授予)以获取令牌时,用户可以使用自己喜欢的社交网络登录。
如果我理解正确,您已经使用Twitter(
ProviderSignInController)推出了自己的单点登录(SSO)实现,现在您想知道如何在Twitter响应“确定”时生成令牌。
我认为您从错误的角度解决了这个问题:与其建立Twitter客户端并以编程方式生成令牌,不如说是将社交SSO集成到spring-security-
oauth2流程中,实际上是如何在其中集成社交SSO。spring安全。
最后,它是关于您的授权服务器如何保护AuthorizationEndpoint的
/oauth/authorize。由于您的授权服务器正常工作,因此您已经有了一个配置类扩展
WebSecurityConfigurerAdapter,可以处理
/oauth/authorizewith
的安全性
formLogin。 那是您需要集成社交内容的地方。
不必使用Spring Security内置的表单身份验证机制,您必须插入自己的安全性,该安全性要么允许用户使用表单登录,要么与其他提供程序一起启动SSO。
Spring
Security是由许多抽象组成的,但实际上只能归结为每个请求都
SecurityContext用一个
Authentication对象填充。
身份验证过程完成后,用户将继续
/oauth/authorize(同意客户端访问某些范围),并且将按通常的方式交付令牌,而无需通过编程方式生成令牌。
我已经使用SAML(Spring Security SAML扩展)完成了此操作,但是在您的情况下,您应该深入研究Spring
Social项目,该项目似乎支持所有主要的社交网络。
好消息是您已经有了很多可用的工具,“坏消息”是您必须在一定程度上了解它们的工作方式才能将它们连接在一起。



