Score
0
Watch 131 Star 404 Fork 176

XingFly / Spring Cloud基于Zuul的统一授权认证Java

Join us
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
使用了Spring Cloud OAuth2、Spring Cloud Security、Eureka、Zuul。实现了统一授权认证。使用JPA自动创建数据表免去导入麻烦。 spread retract

Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

Spring Cloud 基于网关的统一授权认证

本项目基于汪云飞记录本Github地址由于不好部署需要导入数据库等原因本人稍微做了一些改进,但总体上还是相似的,只是更容易跑起来,省去了导入数据库等麻烦的操作。 如果对Spring Boot开发感兴趣可以看看JavaEE开发的颠覆者: Spring Boot实战作者也是汪云飞.

使用OAuth2实现多个微服务的统一认证授权,通过向OAUTH服务发送某个类型的grant type进行集中认证和授权获得access token,这个access token是受其他微服务信任的。后续访问中可以通过这个access token来进行。

  • account: 用户微服务
  • xfauth: OAUTH2认证授权中心
  • gateway: 边界网关
  • eureka: 服务注册和发现

基础环境

  1. 开启MySql 修改xfauth配置文件bootstrap.yml中的datasource配置mysql用户名、密码、数据库名。
  2. 开启Redis 修改xfauth配置文件bootstrap.yml中的redis如果默认端口号是6379 host为 localhost 则不用修改。
  3. 项目中使用了lombok如果你的IDE是Eclipse需要安装相应的插件,如果是IDEA2017版本的不用安装插件已经支持。

运行

  1. 运行eureka 端口号8888

  2. 运行gateway 端口号8088

  3. 运行xfauth(因为使用了JPA会自动创建数据表不用导入数据库,只需要开启mysql) 端口号5000

    • 账户1: username:fpf password:fpf
    • 账户2: username:wl password:wl

    相关的设置可以在xfauth项目中的Init类中看到

  4. 运行account 端口号8083

测试

  1. 通关zuul网关访问认证服务获取 access token 8088是网关端口

  2. 通过access token访问xfauth中的/userAPI获取用户信息 或者在header中添加Authorization

  3. 使用相同的access token访问account中的/currentAPI获取用户信息 可以看到都是相同的用户信息

  4. 使用access token访问account中带权限/queryAPI

  5. 使用wl用户重新获取access token访问account中带权限/queryAPI

  6. 注销 20171014150795051578998.png

后序

想更清楚的了解OAuth2.0 可以看阮一峰:理解OAuth 2.0

如果对你有帮助点个Star把~ 本人博客 www.xingfly.com

Comments ( 36 )

Sign in for post a comment

Java
1
https://gitee.com/xingfly/Spring-CloudJiYuZuulDeTongYiShouQuanRenZheng.git
git@gitee.com:xingfly/Spring-CloudJiYuZuulDeTongYiShouQuanRenZheng.git
xingfly
Spring-CloudJiYuZuulDeTongYiShouQuanRenZheng
Spring Cloud基于Zuul的统一授权认证
master

Help Search