zlt-mp v4.5.0 发布,基于 Spring Cloud Alibaba 的微服务平台

来源: 投稿
作者: zlt2000
2021-05-24

功能介绍

更新内容

特性/增强

  • 支持OIDC协议授权

  • 应用管理界面增加ID令牌相关的配置

  • 增加oidc协议单点登录样例工程oidc-sso

  • 增加zookeeper工具类zookeeperTemplate

  • 替换默认PasswordEncoder实现类为DelegatingPasswordEncoder

  • 修改文件中心默认依赖为s3

  • 升级spring-boot到2.3.11.RELEASE

问题修复

  • 修复token过期时访问网关返回500状态码

变更语句

Use `oauth-center`;
alter table oauth_client_details add support_id_token tinyint(1DEFAULT 1 COMMENT '是否支持id_token';
alter table oauth_client_details add id_token_validity int(11DEFAULT 60 COMMENT 'id_token有效期';

 

内容说明

一、支持OIDC协议授权

OIDC是 OpenID Connect 的简称,它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。

在使用 授权码模式 或者 简化模式 时,通过在参数 response_type 中增加 id_token 值即可,例子如下:

http://localhost:9900/api-uaa/oauth/authorize?client_id=zlt&redirect_uri=http://127.0.0.1&response_type=code id_token

 

OIDC协议返回示例

{
    "resp_code"200,
    "resp_msg""ok",
    "datas": {
        "access_token""d1186597-aeb4-4214-b176-08ec09b1f1ed",
        "token_type""bearer",
        "refresh_token""37fd65d8-f017-4b5a-9975-22b3067fb30b",
        "expires_in"3599,
        "id_token""eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwOi8vemx0MjAwMC5jbiIsImlhdCI6MTYyMTY5NjU4MjYxNSwiZXhwIjoxNjIxNjk2NjQyNjE1LCJzdWIiOiIxIiwibmFtZSI6IueuoeeQhuWRmCIsImxvZ2luX25hbWUiOiJhZG1pbiIsInBpY3R1cmUiOiJodHRwOi8vcGtxdG1uMHAxLmJrdC5jbG91ZGRuLmNvbS_lpLTlg48ucG5nIiwiYXVkIjoiYXBwIiwibm9uY2UiOiJ0NDlicGcifQ.UhsJpHYMWRmny45K0CygXeaASFawqtP2-zgWPDnn0XiBJ6yeiNo5QAwerjf9NFP1YBxuobRUzzhkzRikWGwzramNG9na0NPi4yUQjPNZitX1JzlIA8XSq4LNsuPKO7hS1ALqqiAEHS3oUqKAsjuE-ygt0fN9iVj2LyL3-GFpql0UAFIHhew_J7yIpR14snSh3iLVTmSWNknGu2boDvyO5LWonnUjkNB3XSGD0ukI3UEEFXBJWyOD9rPqfTDOy0sTG_-9wjDEV0WbtJf4FyfO3hPu--bwtM_U0kxRbfLnOujFXyVUStiCKG45wg7iI4Du2lamPJoJCplwjHKWdPc6Zw"
    }
}

 

id_token包含以下内容

{
  "iss""http://zlt2000.cn",
  "iat"1621696582615,
  "exp"1621696642615,
  "sub""1",
  "name""管理员",
  "login_name""admin",
  "picture""http://xxx/头像.png",
  "aud""app",
  "nonce""t49bpg"
}

 

二、应用管理界面增加ID令牌相关的配置

  • 支持ID令牌:为是则支持返回id_token

  • ID时效:为配置id_token的有效时间

 

三、增加zookeeper工具类zookeeperTemplate

依赖:

<dependency>
    <groupId>com.zlt</groupId>
    <artifactId>zlt-zookeeper-spring-boot-starter</artifactId>
</dependency>

使用:

@Resource
private ZookeeperTemplate zkTemplate;

zkTemplate.createNode("/""test");

 

四、替换默认PasswordEncoder实现类为DelegatingPasswordEncoder

用于同时兼容多种加密方式的密码数据同时存在时的密码校验。

修改旧的密码数据的值,添加前缀标识,支持以下三种格式:

  • 无前缀

//只支持使用bcrypt方式加密的密码
格式:密码

例如:$2a$10$EgTOU7PMe.3jaMwFsumdweJcnY3TsTqyuJEdSaSKxdgwYchAwUJ1C
  • 无盐值

格式:{encodingId}密码

例如:{bcrypt}$2a$10$EgTOU7PMe.3jaMwFsumdweJcnY3TsTqyuJEdSaSKxdgwYchAwUJ1C
  • 有盐值

格式:{encodingId}{salt}密码

例如:{MD5}{5Hstj}0758f7131c6c95c8e3df05e1ac50214c

 

五、升级zlt-register到2.0.1

zlt-register/nacos 替换为官方最新的 2.0.1 版本

内容与官网一致,只是方便大家直接使用

 

项目地址

Gitee地址: https://gitee.com/zlt2000/microservices-platform

Github地址: https://github.com/zlt2000/microservices-platform

项目文档

https://www.kancloud.cn/zlt2000/microservices-platform/919417

项目更新日志

https://www.kancloud.cn/zlt2000/microservices-platform/93623

展开阅读全文
17 收藏
分享
加载中
最新评论 (2)
不错,很多设计都可以借鉴
2021-05-28 16:30
0
回复
举报
沙发
2021-05-24 08:07
0
回复
举报
更多评论
0 评论
17 收藏
分享
返回顶部
顶部