SpringCloud微服务实战系列(二十)Ouath2在真实场景中的应用之客户端接入(第二种写法)
一、概述
本篇就是对Oauth2的实际应用方法的客户端接入方式的另外一种方法进行介绍。这种方法跟第一种除配置外的区别是:用户信息接口需要手动调用。
Nginx配置无所谓,可以在配置中指明跳转地址。
如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。
在Spring Oauth2中,Oauth2的使用过程中将角色分为三种:ResourceServer,AuthorizationServer,OauthClient.
由于篇幅较大,这里将Oauth2的搭建分成三个部分。本篇介绍OauthClient的另外一种写法。
二、客户端接入
客户端接入是一个复杂的过程,按照spring-security-oauth2-boot官方文档的指引,我这里把完整的流程写出来。
下面讲述下这个过程是怎样的。
2.1 引入依赖
需要引入spring-boot-starter-web、spring-cloud-starter-security、spring-security-oauth2和spring-security-oauth2-autoconfigure相关jar包.
依赖如下:
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-security
org.springframework.security.oauth
spring-security-oauth2
${security.oauth2.version}
org.springframework.security.oauth.boot
spring-security-oauth2-autoconfigure
${security.oauth2.boot.version}
这里,security.oauth2.version版本是2.3.5.RELEASE,security.oauth2.boot.version是2.1.6.RELEASE。
2.2 配置文件
这里使用yaml文件写配置,配置文件application.yml:
application.yml:
server:
port: 8184
spring:
profiles:
active: loc
application:
name: oauthClient
这里应用名称为oauthClient
指定配置为loc。
application-loc.yml:
env: loc
security:
oauth2:
resource:
userInfoUri: http://res.pomit.cn/api/userInfo
preferTokenInfo: false
client:
clientId: FeiTestClient
clientSecret: 123456
grantType: authorization_code
scope: trust
accessTokenUri: http://sso.pomit.cn/oauth/token
userAuthorizationUri: http://sso.pomit.cn/oauth/authorize
preEstablishedRedirectUri: http://ow.pomit.cn/token/login
useCurrentUri: false
sso:
login-path: /token/login
remote:
ipUrl: http://res.pomit.cn/api/ip
这里配置的东西可能会让你产生疑惑,下面一一讲述:security.oauth2.client是客户端的配置,其中,clientId和clientSecret是客户端的密钥,需要在授权服务器加上这个客户端,accessTokenUri是token获取地址,后缀基本上都是/oauth/token;userAuthorizationUri是授权地址,后缀基本上都是/oauth/authorize;,grantType是授权类型,preEstablishedRedirectUri是授权成功的回调地址,并通过security.oauth2.sso.login-path对这个地址进行捕获来完成sso登录。
security.oauth2.resource是关于资源服务器的配置,是获取用户信息的地址。这个地址并不代表用户信息就能自动获取,需要用户信息的时候还是要手动通过OAuth2RestTemplate去获取。
remote.ipUrl是我自定义的配置。
基本配置就是这样了,如果中间出现问题,要多试几次查找问题。
2.3 启动
使用m