概述
OAuth2是一个授权框架的标准,Spring Security对OAuth2.0的支持加以改造适配,支持用户使用已有的其他系统账户登陆应用(框架中默认支持包括GitHub, Facebook, Google, Okta)。
OAuth2.0 Login
Spring Security OAuth2.0 Login是基于OAuth2.0协议和OpenID Connect Core1.0协议,按照其中的授权码模式实现。
使用GitHub账号登陆
GitHub中注册应用
设置地址为:https://github.com/settings/applications/new
其中回调URL的格式为:{baseUrl}/login/oauth2/code/{registrationId}.
添加maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-client</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
配置application.yml
spring:
security:
oauth2:
client:
registration:
github:
client-id: e660bdf67960d1e3a486
client-secret: 6e201837d5d6c302d875f87299f2edb8a2c2c268
其中client-id和client-secret填入github生成的信息
启动应用
启动应用,在浏览器中输入测试地址http://localhost:8091/test,页面自动跳转至GitHub的授权页面,点击授权按钮完成OAuth2的登陆