JAP 1.0.2 正式发布,jap-ids 支持多租户、适配前后端分离、自定义授权流程等新特性

栏目: 软件资讯 · 发布时间: 4年前

内容简介:JAP 1.0.2 正式发布 概要 jap-ids 1.0.2 支持多租户场景、支持动态 issuer、支持前后端分离的业务场景; jap-social 对外提供 refreshToken、revokeToken 和 getUserInfo 方法; 新增 Pipeline 模式,支持自定义部...

JAP 1.0.2 正式发布

概要

  1. jap-ids 1.0.2 支持多租户场景、支持动态 issuer、支持前后端分离的业务场景;
  2. jap-social 对外提供 refreshTokenrevokeToken 和 getUserInfo 方法;
  3. 新增 Pipeline 模式,支持自定义部分业务场景的流程,同时引入 SPI 机制;
  4. 基于 Github Action,JAP 正式启用快照版,比如:1.0.2-SNAPSHOT。(快照版实时更新,但不可用于生产环境)
  5. 使用 jap-bom 管理项目版本依赖,使用 flatten-maven-plugin 简化 pom 版本
  6. JustAuth 和 JAP 项目已经加入 “开源软件供应链点亮计划 - 暑期2021”,欢迎各位在校学生踊跃参与!

JAP 1.0.2 版本更新内容

本次更新涉及到字段、方法返回类型的修改,请升级的时候注意。可以参照本文下方的更新说明进行修改、调整。

新功能/特性

jap-ids 模块

  • IdsConfig中添加 enableDynamicIssuer 属性,boolean 类型。当 enableDynamicIssuer=true 时,开发者不再需要单独设置 issuerjap-ids 将从当前请求的域名中自动提取 issuer

此功能针对客户端支持自定义域名的业务场景。可以通过域名的标识(比如二级域名jap.justauth.plus 中的标识就是 jap)确定用户所属的客户端(也可以对应到租户)。

  • IdsConfig 中添加 loginPageUrl 属性,loginPageUrl 与 loginUrl 的区别:
  • loginPageUrl:登录表单页面 URL,关键字:页面
  • loginUrl:登录的api URL,关键字:API
  • IdsConfig中添加 externalLoginPageUrl 属性,boolean 类型。

如果授权服务未提供登录页面(登录页面由其他服务托管,比如登录页面在单独的静态服务中部署),则需要启用此配置。

  • IdsConfig中添加 externalConfirmPageUrl 属性,boolean 类型。

如果授权服务未提供授权确认页面(授权确认页面由其他服务托管,比如授权确认页面在单独的静态服务中部署),则需要启用此配置。

  • IdsConfig中添加 authorizeAutoApproveUrl 属性。

当授权 URL 中包含 autoapprove=true 时,授权服务器在用户登录完成后,不会跳转到 confirmPageUrl,而是直接跳转到 authorizeAutoApproveUrl

  • 添加 IdsUserStoreService 接口类,以支持登录后对用户数据的自定义操作,默认为 Session 存储用户信息。感谢微信用户(antscqy)的建议
  • 添加 IdsPipeline 接口,开发人员可以自定义流程,目前仅支持自定义 IdsxxFilter(过滤器)和 LoginEndpoint 的流程。
  • 添加 spi 插件机制,jap-ids 对外提供的接口,都可以以 spi 的形式实现。
  • 添加以下内置 scope:profileaddressread and write
  • 在 OauthUtil#createAuthorizeUrl(String, IdsRequestParam) 中添加 uid 参数(可选的参数)。

jap-social 模块

  • SocialStrategy 对外提供 refreshTokenrevokeToken 和 getUserInfo 方法。感谢群友的反馈。

修改

POM 依赖

  • 将 javax.servlet-api 依赖替换为 jakarta.servlet-api

jap-ids 模块

  • 将 IdsConfig.confirmUrl 参数名称修改为 confirmPageUrl
  • 将 ApprovalEndpoint#getAuthClientInfo(HttpServletRequest) 的返回类型修改为IdsResponse<String, Map<String, Object>>
  • 将 Ap provalEndpoint#authorize(HttpServletRequest) 的返回类型修改为 IdsResponse<String, String>
  • 将 AuthorizationEndpoint#agree(HttpServletRequest) 的返回类型修改为 IdsResponse<String, String>
  • 将 LoginEndpoint#signin(HttpServletRequest) 的返回类型修改为 IdsResponse<String, String>
  • 将 LogoutEndpoint#logout(HttpServletRequest) 的返回类型修改为 IdsResponse<String, String>
  • 修改 ClientDetail 类的注释。
  • 将 IdsResponse#getData() 方法的返回类型修改为泛型
  • 删除 IdsScopeProvider#initScopes(List<IdsScope>) 方法,不再允许重置系统内置的 scope,新版 jap-ids 支持添加新的 scope 以及 修改内置的 scope 描述。
  • response_type=id_token时,id_token 中将返回用户的基本信息(依据 scope 授权范围)。
  • 优化 UserInfoEndpoint#getCurrentUserInfo(HttpServletRequest) 方法的业务流程,对于用户的特定属性,比如手机号、邮箱等,按照提供的 scope 决定是否返回。
  • 修改 IdsUserService 接口的loginByUsernameAndPassword 和 getByName 方法,分别新增了 clientId 入参。

针对多租户场景下,同一个用户可能存在多个租户主体下,单纯依靠用户账密已经无法唯一确定一个用户,这种情况下业务系统可以根据 clientId 获取具体的租户下的用户信息。

PR

  • 合并 Gitee PR #11 by @dreamlu。使用 flatten-maven-plugin 简化 pom 版本
  • 合并 Gitee PR #12 by @sywd。添加 jap-bom 管理项目版本依赖
  • 合并 Gitee PR #13 by @dreamlu。代码优化,方便作为 Spring bean 初始化
  • 合并 Gitee PR #14 by @dreamlu。优化 pom 配置,修复 jap-bom 导入问题

关于 JAP

JAP 是什么?

JAP 是一款开源的登录认证中间件,基于模块化设计,为所有需要登录认证的 WEB 应用提供一套标准的技术解决方案,开发者可以基于 JAP 适配绝大多数的 WEB 系统(自有系统、联邦协议)。

JAP 有哪些功能?

JAP 1.0.2 正式发布,jap-ids 支持多租户、适配前后端分离、自定义授权流程等新特性

JAP 有什么优势?

  • 易用性:JAP 的 API 沿袭 JustAuth 的简单性,做到了开箱即用的程度。JAP 高度抽象各种登录场景,提供了多套简单使用的 API,极大程度的降低了开发者的学习成本和使用成本
  • 全面性:JAP 全量适配 JustAuth 支持的第三方平台,实现第三方登录。同时也支持所有基于标准OAuth2.0 协议或者 OIDC 协议或者 SAML 协议的应用、系统,同时 JAP 还提供不同语言版本的项目 SDK,适配多种研发场景
  • 模块化:JAP 基于模块化设计开发,针对每一种登录场景,比如账号密码、OAuth、OIDC等,都单独提供了独有的模块化解决方案
  • 标准化:JAP 和业务完全解耦,将登录认证相关的逻辑抽象出一套标准的技术解决方案,针对每一种业务场景,比如用户登录、验证密码、创建并绑定第三方系统的账号等,都提供了一套标准的策略或者接口,开发者可以基于 JAP,灵活并方便的完成相关业务逻辑的开发和适配
  • 通用性:JAP 不仅可以用到第三方登录、OAuth授权、OIDC认证等业务场景,还能适配开发者现有的业务系统的普通账号密码的登录场景,基本将所有登录相关的业务场景都已经涵盖。针对 WEB 应用,JAP 将提供满足各种不同登录场景的解决方案(和开发语言无关)

JAP 适用于哪些场景?

JAP 适用于所有需要登录认证功能的场景。比如:

  • 要求规范:新项目立项,你们需要研发一套包含登录、认证的系统,并且从长远方面考虑,你们需要一套标准的、灵活的、功能全面的登录认证功能。

  • 需求灵活:现有登录模块为自研,但是新一轮的技术规划中,你们想将登录认证模块重构,以更加灵活的架构适应后面的新需求,比如:集成 MFA 登录、集成 OAuth 登录、SAML登录等。

  • 力求省事:你们的项目太多(或者是开发语言较多,比如:Java、 Python 、Node 等),每个项目都需要登录认证模块,想解决这种重复劳动的问题,使研发人员有更多的时间和精力投入到业务开发中,提高研发产能和研发效率。

    关于 JAP 的更多内容,可以参考《JAP 产品技术白皮书

相关链接


以上所述就是小编给大家介绍的《JAP 1.0.2 正式发布,jap-ids 支持多租户、适配前后端分离、自定义授权流程等新特性》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Building Websites with Joomla!

Building Websites with Joomla!

H Graf / Packt Publishing / 2006-01-20 / USD 44.99

This book is a fast paced tutorial to creating a website using Joomla!. If you've never used Joomla!, or even any web content management system before, then this book will walk you through each step i......一起来看看 《Building Websites with Joomla!》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具