# 客户端1模块编写如下
# pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
# yml
spring:
application:
name: sso-client1 # Eureka页面显示
eureka:
client:
registerWithEureka: true # 服务注册开关
fetchRegistry: true # 服务发现开关
serviceUrl: # 注册到哪一个Eureka Server服务注册中心,多个中间用逗号分隔
defaultZone: http://localhost:6001/eureka
instance:
instanceId: ${spring.application.name}:${server.port} # 指定实例ID,页面会显示主机名
preferIpAddress: true #访问路径可以显示IP地址
# 将端口修改为网关的端口
security:
oauth2:
client:
client-id: client1 # 当前客户端id
client-secret: mengxuegu-secret # 客户端的密码
user-authorization-uri: http://localhost:7001/auth/oauth/authorize #请求认证的地址,获取授权码地址
access-token-uri: http://localhost:7001/auth/oauth/token # 请求令牌的地址
resource:
jwt:
# 当用户授权之后会响应一个授权码,重定向到当前应用的 http://localhost:9001/login?code=xxx
# 自动的会对 /login 去获取令牌,获取到令牌后会通过 key-uri 获取到的公钥进行解密然后本地身份认证和授权(Session)
key-uri: http://localhost:7001/auth/oauth/token_key # 获取公钥
# 启动类添加注解
@EnableEurekaClient
# 将配置类中的端口修改为网关端口
http://localhost:7001/auth/logout
# 客户端2模块中做同样的修改
- 测试:启动服务注册中心、网关、认证服务器、资源服务器、客户端1、客户端2
# 访问客户端1
http://localhost:9001/
# 访问客户端2
http://localhost:9002/
# 客户端1认证后,客户端2也可以直接访问了,测试成功
admin:1234