JAP 1.0.2 正式发布,jap-ids 支持多租户、适配前后端分离、自定义授权流程等新特性
JAP 1.0.2 正式发布
概要
jap-ids
1.0.2 支持多租户场景、支持动态issuer
、支持前后端分离的业务场景;jap-social
对外提供refreshToken
、revokeToken
和getUserInfo
方法;- 新增
Pipeline
模式,支持自定义部分业务场景的流程,同时引入SPI
机制;- 基于 Github Action,JAP 正式启用快照版,比如:
1.0.2-SNAPSHOT
。(快照版实时更新,但不可用于生产环境)- 使用
jap-bom
管理项目版本依赖,使用flatten-maven-plugin
简化 pom 版本- JustAuth 和 JAP 项目已经加入 “开源软件供应链点亮计划 - 暑期2021”,欢迎各位在校学生踊跃参与!
JAP 1.0.2 版本更新内容
本次更新涉及到字段、方法返回类型的修改,请升级的时候注意。可以参照本文下方的更新说明进行修改、调整。
新功能/特性
jap-ids 模块
- 在
IdsConfig
中添加enableDynamicIssuer
属性,boolean
类型。当enableDynamicIssuer=true
时,开发者不再需要单独设置issuer
,jap-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:
profile
,address
,read
andwrite
。 - 在
OauthUtil#createAuthorizeUrl(String, IdsRequestParam)
中添加uid
参数(可选的参数)。
jap-social 模块
SocialStrategy
对外提供refreshToken
、revokeToken
和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
关于 JAP
JAP 是什么?
JAP 是一款开源的登录认证中间件,基于模块化设计,为所有需要登录认证的 WEB 应用提供一套标准的技术解决方案,开发者可以基于 JAP 适配绝大多数的 WEB 系统(自有系统、联邦协议)。
JAP 有哪些功能?
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 产品技术白皮书》
相关链接
- Gitee:https://gitee.com/fujieid/jap
- Github:https://github.com/fujieid/jap
- CodeChina:https://codechina.csdn.net/fujieid/jap
- 开发者文档:https://justauth.plus

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
StreamX v1.0.0 发布,Flink 开发脚手架、流批一体平台
Make Flink|Spark easier!!! 大数据技术如今发展的如火如荼,已呈现百花齐放欣欣向荣的景象,实时处理流域Apache Spark和Apache Flink更是一个伟大的进步,尤其是Apache Flink被普遍认为是下一代大数据流计算引擎, 我们在使用Flink时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 我们将一些好的经验固化下来并结合业内的最佳实践, 通过不断努力终于诞生了今天的框架 ——StreamX, 项目的初衷是 —— 让Flink开发更简单, 使用StreamX开发,可以极大降低学习成本和开发门槛, 让开发者只用关心最核心的业务,StreamX规范了项目的配置,鼓励函数式编程,定义了最佳的编程方式,提供了一系列开箱即用的Connectors,标准化了配置、开发、测试、部署、监控、运维的整个过程, 提供scala和java两套api, 其最终目的是打造一个一站式大数据平台,流批一体的解决方案 重要特性 开发脚手架 多版本Flink支持(多版本无缝支持1.11.x,1.12.x,1.13.x) 一系列开箱即用的connectors ...
- 下一篇
mica 2.5.0 & 2.4.6 发布,实验性对 Spring Native 支持
一、mica(云母) mica是一个微服务组件集,但不仅仅是组件,我们关注的是微服务生态并持续演进,尽量做到开箱即用,简化使用和排坑。总共已有 40+ 组件,并且很多组件已经打通。 二、版本说明 最新版本 mica 版本 spring boot 版本 spring cloud 版本 2.5.0 mica 2.5.x 2.5.x 2020 2.4.6 mica 2.4.x 2.4.x 2020 2.1.1-GA mica 2.0.x~2.1.x 2.2.x ~ 2.3.x Hoxton 三、更新记录 v2.5.0 - 2021-05-23 mica-redis 微调,支持 Spring boot 到 2.5.0。 升级 Spring boot 到 2.5.0。 v2.4.6 - 2021-05-23 mica-logging 完成 loki 支持 #36 #I3PX2F。 mica-ip2region、mica-captcha 添加对 spring-native 的支持 #38 #I3PX2N。 mica-jetcache 添加 metrics 支持 #37 #I3PX2K。 mica-...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能