JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布

算法云栖鹤
• 阅读 1747

JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布

快讯

  1. JAP 1.0.1 正式发布
  2. 《JAP产品技术白皮书》正式发布。立即获取:白皮书

JAP 1.0.1 版本内容

新增功能/支持

  • 添加 com.fujieid.jap.core.util.RequestUtil
  • 完成jap-ids模块
jap-ids 是基于 RFC6749RFC7636RFC7033等标准协议和 OpenID Connect Core 1.0 认证协议,实现的一款轻量级、业务解耦、开箱即用的新一代国产授权认证框架。

此处附上我精心绘制的jap-ids 业务流程图:

JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布

如果图片模糊不清(可能被平台压缩),你可以在“码一码”公众号中回复“ids”获得以上业务流程图。

jap-ids 目前已支持以下功能:

  • 授权码模式(Authorization Code Grant)
  • 授权码-PKCE模式(Proof Key for Code Exchange)
  • 隐式授权模式(Implicit Grant)
  • 密码授权模式(Resource Owner Password Credentials Grant)
  • 客户端授权模式(Client Credentials Grant)
  • 刷新 access_token
  • 回收 access_token
  • 获取当前授权用户的基本信息
  • 校验登录状态
  • 异常响应
  • 退出登录
  • 服务发现(OpenID Connect Discovery)
  • JWK 端点(JWKS)
  • JWK 令牌颁发
  • 自定义 JWT 加解密证书
  • 全场景 response type 支持(codetokenid_tokenid_token tokencode id_tokencode tokencode id_token token

关于 jap-ids 的更多使用详情,请参考示例项目:jap-ids-demo,或者查阅文档:IDS OAuth 2.0 服务端

代码修改/优化

  • [jap-oidc] 优化 OidcStrategy#authenticate 方法,缓存 OidcDiscoveryDto,减少不必要的 http 请求
  • [jap-oidc] 优化 OidcUtil 工具类的代码,解决一些已知问题
  • [jap-social] 解决一些已知问题
  • 重构 com.fujieid.jap.core.cache.JapLocalCache,实现定时器,定期清理本地缓存

合并 PR

Issue

JAP 产品技术白皮书

经过两个月的整理、修改、迭代,我们 JAP 的技术白皮书,终于完成了!

JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布

在 wx “JAP 社区交流群”中(入群请加wx:justauth,备注 “jap”),不少朋友都期待着《JAP 产品技术白皮书》的发布。

前期我们也做过一些调研,大部分开发者/用户的述求基本上是:JAP 文档中有太多专有技术名词,理解起来比较困难。针对此,我们在白皮书中对于 JAP 相关领域的概念、名词做了专门解释,能够帮助开发者/用户更深入的了解、使用相关技术。

同时,在此份白皮书中,我们对 JAP 的功能、特点、架构、流程等都做了全面的、详细的解释,部分内容如下:

JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布

JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布

希望这份白皮书,能够帮助到各位开发者/用户。

你可以在“码一码”公众号中回复“白皮书”获得最新 JAP 白皮书文档(该方式长久可用,不受版本更新的影响)。

关于 JAP

JAP 是什么?

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

JAP 有哪些功能?

JAP 1.0.1 以及 《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 产品技术白皮书

相关链接

欢迎关注、欢迎收藏、欢迎 star。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
4年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
4年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这