概要:

  1. JAP 发布 1.0.5
  2. 重构 JAP 文档站
  3. 增加 starter

1. JAP 发布 1.0.5

1.1 增加 jap-http-api 模块 @Mvbbb

自 1.0.5 版本开始,JAP 中增加 jap-http-api 模块,支持 Basic、Digest 和 Bearer 的认证方式。 (Gitee Issue #I43ZS7)

更多使用说明,请参考使用jap-http-api

1.2 增加 jap-ids-web 模块

自 1.0.5 版本开始,将原本 jap-ids 中的过滤器单独提了出来作为一个独立的组件。

开发者在使用 jap-ids 时,如果需要用到 jap 提供的过滤器,可以单独引入该依赖,否则的话,开发者可以自主开发相关过滤器。

<dependency><groupId>com.fujieid</groupId><artifactId>jap-ids</artifactId><version>{latest-version}</version>
</dependency>
<!-- 开发者如果需要使用 jap 提供的过滤器,则引入下方依赖 -->
<dependency><groupId>com.fujieid</groupId><artifactId>jap-ids-web</artifactId><version>{latest-version}</version>
</dependency>

1.3 解耦 jakarta servlet

在 1.0.5 以前版本,jap 中依赖 jakarta-servletjavax.servlet.http 包下的 HttpServletRequestCookieHttpServletResponse
HttpSession,比如:

// jap 提供的接口
public interface JapStrategy {default JapResponse authenticate(AuthenticateConfig config, HttpServletRequest request, HttpServletResponse response) {return null;}
}
// 在spring框架中使用 jap
XxJapStrategy.authenticate(config,request,response);

为了提高框架适配性,自 1.0.5 版本开始,JAP 去掉了 jakarta-servlet 依赖,采用了一套全新的接口(参考:jap-http),开发者在调用
JAP 接口时需要对原 request 进行适配。

比如,开发者使用了 jakarta-servlet,那么需要对 HttpServletRequest 进行适配处理:

// 在spring框架中使用 1.0.5 或更高级版本的 jap
XxJapStrategy.authenticate(config,new JakartaRequestAdapter(request),new JakartaResponseAdapter(response));

从 1.0.5 版本开始,JAP 内置了以下两个依赖:

<dependency><groupId>com.fujieid.jap.http</groupId><artifactId>jap-http</artifactId><version>1.0.0</version>
</dependency>
<dependency><groupId>com.fujieid.jap.http.adapter</groupId><artifactId>jap-http-jakarta-adapter</artifactId><version>1.0.2</version>
</dependency>

更多适配说明,请参考 jap-http-adapter

1.4 jap-social 支持绑定用户

jap-social 支持绑定第三方平台账号,该版本将社会化登录绑定账号独立开来,以使其更加适用于多场景。 (Gitee
Issue #I46J6W)

登录伪代码:

SocialConfig config = new SocialConfig().setPlatform("gitee").setState(UuidUtils.getUUID()).setJustAuthConfig(AuthConfig.builder().build());
// 发起认证请求
socialStrategy.authenticate(config, request, response);

绑定伪代码:

SocialConfig config = new SocialConfig().setPlatform("gitee").setState(UuidUtils.getUUID())// 注明当前流程为绑定用户的请求.setBindUser(true)// 待绑定的用户ID.setBindUserId("xxx").setJustAuthConfig(AuthConfig.builder().build());
// 发起绑定请求
socialStrategy.bind(config, request, response);

1.5 规范 jap-ids 中的 scope

遵循 RFC6749 规范,jap-ids 中的 scope 在各个流程中都更改为可选。

1.6 依赖升级

  • kisso 的版本为 3.7.7, 解决 jackson 的漏洞
  • googleauth 的版本为 1.5.0, 解决 apache httpclient 的漏洞
  • simple-http 的版本为 1.0.5.
  • JustAuth 的版本为 1.16.4.

2. 重构 JAP 文档站

替换文档站主题 https://justauth.plus,解决文档站内存暴涨的问题。(Gitee Issue #I4958H
| Github Issue #8)

在之前的版本中,因第三方框架的问题,导致 JAP 的文档站 https://justauth.plus 极易引起内存泄漏的问题,因此,对整个文档站做了一次整体重构升级。

新版文档站中,对整个目录、布局和内容都做了大幅度的提升、优化,如果开发者在使用过程中遇到问题,可以直接在评论区评论。




新版文档站的主题使用:vuepress-theme-vdoing

3. 增加 starter @Vector6662

该项目暂未发布到 maven 中央仓库,如果需要,请 clone 后本地 install 测试。

为 JAP 开发其 spring boot starter,包括以下六个模块:

关于 jap-spring-boot-starter 项目的设计思路,请参考: 项目经验分享:开发 JuatAuth Plus 的 springboot starter 依赖包

更多使用方式,请参考:jap-spring-boot-starter 使用帮助

关于 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

JAP v1.0.5 发布,支持 Basic、Digest 和 Bearer 认证方式相关推荐

  1. XCMS V1.0 Beta1 发布

    XCMS V1.0 Beta1 发布 说明: XCMS是一个内容管理系统,是新生命开发团队利用业余时间开发的第一个成功项目! XCMS目前只有基本的文章发布.栏目管理.评论.用户管理和模板管理等功能. ...

  2. OneGame V1.0.2 发布,让运营游戏不再是梦想

    OneGame V1.0.2 发布,让运营游戏不再是梦想,更新内容如下: 1.H5手游渠道进入游戏流程优化. 2.新增手游统计:游戏注册记录,每日汇总记录,游戏汇总,公会汇总,员工统计 与 APP下载 ...

  3. 启动不起来_国产开源工具:U盘启动工具Ventoy v1.0.29发布——墨涩网

    Ventoy是一个制作可启动U盘的开源工具.有了Ventoy你就无需反复地格式化U盘,你只需要把ISO文件拷贝到U盘里面就可以启动了,无需其他操作.你可以一次性拷贝很多个不同类型的ISO文件,在启动时 ...

  4. Visual Studio 的码云扩展 V1.0.85 发布

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   Visual Studio 的码云扩展 V1.0.85 已发布: 针对扩展进行了SDK部分的重写 修正克隆窗体和快 ...

  5. Omi v1.0震撼发布 - 令人窒息的Web组件化框架

    原文链接--https://github.com/AlloyTeam/omi 写在前面 Omi框架经过几十个版本的迭代,越来越简便易用和强大. 经过周末的连续通宵加班加点,Omi v1.0版本终于问世 ...

  6. mysql awr v1.0.1发布

    现发布mysql awr v1.0.1 修复问题: 1.galera cluster下flush table/index_statistcs时如果系统中业务ddl频繁可能会导致很多进程处于prepar ...

  7. dolphin.php 视频,DolphinPHP V1.0.4发布

    原本计划在端午节发布新的版本,但因为一些事情给耽误,就索性更新多点内容再发布. 此版本升级了ThinkPHP核心至最新版的5.0.9,并改进和修复了部分bug,也新增了点小功能.虽然更新力度并不是很大 ...

  8. C#超级通信调试工具[v1.0][全新发布]

    因原来的版本号过于混乱.为了以后版本发布的更严谨,重新制定了版本号为1.0. 软件名称:C#超级通信调试工具 最新版本:1.0 开发工具:VS2010  语言:C# .NET2.0 QQ:209244 ...

  9. XXL-REGISTRY v1.0.2 发布,分布式服务注册中心

    Release Notes 1.服务端空值也支持响应,客户端注册信息发现null值缓存,避免缓存穿透: 2.客户端配置监控逻辑优化,避免异常情况下重试请求太频繁: 3.客户端日志优化:仅变更日志保留为 ...

最新文章

  1. 网页缩放zoom用法
  2. Android 有些机型hint不显示
  3. 计算机桌面窗口移动有虚影,win7系统桌面出现残影影响心情?一招帮你解决问题...
  4. weblogic修改控制台ip_「Weblogic学习」Weblogic知识要点之JNDI/JTA编程开发
  5. Linux每个目录的介绍
  6. Python第十二章-多进程和多线程01-多进程
  7. DISPLAY变量和xhost(原创)
  8. JavaScript声明变量详解
  9. qtp xml联合xsl输出html报表,通过xml和xsl实现数据和页面展示模板的解耦(简单完整网站代码示例)...
  10. 浅谈c语言函数调用指针
  11. 知了课堂 python_知了课堂Python Flask系列(1)-基础篇 flask视频教程下载
  12. java校内报纸实验报告_第六周Java实验报告四
  13. php pack ode,Python中的数值ODE求解
  14. latex文字两端对齐
  15. ​吃了假辣椒酱的企鹅,你遇到过哪些被骗的经历?
  16. 亚马逊电商数据自动化管理接口平台ProductType格式展示
  17. 每天一个linux命令:chgrp
  18. nginx错误:unknown directive 锘?
  19. 如何用camtasia录制微课视频教程
  20. 书本知识太枯燥?体验一次动手又动脑的项目制吧

热门文章

  1. 分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根
  2. 轮毂电机光电增量编码器的ABZ信号详解
  3. fsn文件 c语言,笨办法学C 练习24:输入输出和文件
  4. 联想笔记本系统更新中断后变成蓝屏怎么U盘重装系统?
  5. 日立HDS VM存储更换硬盘
  6. 联想电脑获取官方原厂系统镜像的方法
  7. LDAP数据库所有的Object Classes解释说明
  8. 水印相机定位不准确怎么办_EOS R6可以买了?佳能、索尼又出招了,老百姓怎么办?...
  9. 那些年我们一起用过的软件
  10. uniApp实现上下联动