《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》

摘要: 原创出处 http://www.iocoder.cn/Apollo/openapi-auth-1/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

1. 概述

老艿艿:本系列假定胖友已经阅读过 《Apollo 官方 wiki 文档》 ,特别是 《Apollo 开放平台》

考虑到 Portal 的认证与授权 分成了两篇,所以本文分享 OpenAPI 的认证与授权, 侧重在认证部分

《Apollo 开放平台》 文档的开头:

Apollo 提供了一套的 Http REST 接口,使第三方应用能够自己管理配置。虽然 Apollo 系统本身提供了 Portal 来管理配置,但是在有些情景下,应用需要通过程序去管理配置。

  • OpenAPI 和 Portal 都在 apollo-portal 项目中,但是他们是两套 API ,包括 package 都是两个不同的,如下图所示:项目结构

3. 实体

3.1 Consumer

Consumer 表,对应实体 com.ctrip.framework.apollo.openapi.entity.Consumer ,代码如下:

@Entity
@Table(name = "Consumer")
@SQLDelete(sql = "Update Consumer set isDeleted = 1 where id = ?")
@Where(clause = "isDeleted = 0")
public class Consumer extends BaseEntity {

/**
* 应用名称
*/
@Column(name = "Name", nullable = false)
private String name;
/**
* 应用编号
*
* 注意,和 {@link com.ctrip.framework.apollo.common.entity.App} 不是一个东西
*/
@Column(name = "AppId", nullable = false)
private String appId;