Go to file
wangiegie@gmail.com 451ff099d2 新增:用户列表展示配合ele-admin_ui 2017-11-03 16:52:04 +08:00
doc 修改readme 增加sql 2017-11-01 17:55:49 +08:00
pig-admin-service 新增:用户列表展示配合ele-admin_ui 2017-11-03 16:52:04 +08:00
pig-auth-service 加入feign调用、涉及基础数据的操作抽取到admin模块 2017-10-31 22:15:52 +08:00
pig-common 新增:用户列表展示配合ele-admin_ui 2017-11-03 16:52:04 +08:00
pig-config 优化: pom依赖,reidsConfig mybatisConfig 加入到common模块 2017-10-30 10:51:43 +08:00
pig-eureka 优化: pom依赖,reidsConfig mybatisConfig 加入到common模块 2017-10-30 10:51:43 +08:00
pig-gateway 修改:处理fetch跨域的options请求 2017-11-02 22:50:11 +08:00
.gitignore 【新增】初始化 2017-10-12 19:54:41 +08:00
LICENSE Initial commit 2017-10-12 16:56:22 +08:00
README.md 增加前端UI说明 2017-11-02 14:58:07 +08:00
pom.xml 优化: pom依赖,reidsConfig mybatisConfig 加入到common模块 2017-10-30 10:51:43 +08:00

README.md

2017年11月1日 1.0-ALPHA


ING 整合ele-admin前后端分离 PS VUE前端真的难所以边学边摸索 前端 https://gitee.com/log4j/pig-ui

权限设计

基于spring security oauth2.0 + jwt的认证、鉴权的网关设计

image

如图

  1. 用户发送获取token 的请求(密码模式)
  2. 网关将请求转发到认证服务器auth-server
  3. 认证服务器通过调用用户模块,判断下用户上送的信息是否正确
  4. 用户发送资源请求到网关
  5. 网关根据token去资源服务器获取用户的user-info
  6. 根据用户信息调用用户模块getUrls进行权限判断

特点

  • 业务模块不涉及oauth2.0,认证鉴权全部在网关模块
  • 业务模块可以直接根据网关转发过来的请求解析请求头中jwt信息进行当前用户身份确认

如何使用:

开发环境

  • spring Boot 1.5.7
  • spring Cloud Dalston.SR4
  • maven 3.3+
  • Redis
  • MySQL 5.7

配置修改

spring:
  application:
    name: pig-config-server
  cloud:
    config:
      server:
        git:
          uri: 配置fork 的git厂库

开始使用

通过网关访问auth-server 获取access-token

// cGlnOnBpZw==  是Base64(clientId:secret) 默认在auth模块的配置里面pig:pig
 curl -H "Authorization:Basic cGlnOnBpZw==" -d "grant_type=password&scope=server&username=admin&password=admin" http://localhost:1000/auth/oauth/token
 
   
 {"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MDk1NzA0NjMsInVzZXJfbmFtZSI6ImFkbWluIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW4iXSwianRpIjoiZWMwZmJhMjYtMGJkZS00YjY2LThhZTQtZGRmYTNiMzkxZGM5IiwiY2xpZW50X2lkIjoicGlnIiwic2NvcGUiOlsic2VydmVyIl19.ZoSU_4NhdolnV6ZsNaSXITC_pewUDiaqZPLoESu9f9s","token_type":"bearer","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MDk1NzA0NjMsInVzZXJfbmFtZSI6ImFkbWluIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW4iXSwianRpIjoiZWMwZmJhMjYtMGJkZS00YjY2LThhZTQtZGRmYTNiMzkxZGM5IiwiY2xpZW50X2lkIjoicGlnIiwic2NvcGUiOlsic2VydmVyIl19.ZoSU_4NhdolnV6ZsNaSXITC_pewUDiaqZPLoESu9f9s","expires_in":3600,"scope":"server"}

通过access-token 访问受保护的资源

curl -H "Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MDk1NzA0NjMsInVzZXJfbmFtZSI6ImFkbWluIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW4iXSwianRpIjoiZWMwZmJhMjYtMGJkZS00YjY2LThhZTQtZGRmYTNiMzkxZGM5IiwiY2xpZW50X2lkIjoicGlnIiwic2NvcGUiOlsic2VydmVyIl19.ZoSU_4NhdolnV6ZsNaSXITC_pewUDiaqZPLoESu9f9s" http://localhost:1000/admin/user