龙空技术网

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

智布道 316

前言:

眼前姐妹们对“apachehttpclient43”大致比较重视,我们都需要分析一些“apachehttpclient43”的相关文章。那么小编也在网络上搜集了一些对于“apachehttpclient43””的相关内容,希望朋友们能喜欢,同学们一起来了解一下吧!

概要:

1.JAP 发布 1.0.5

2.重构 JAP 文档站

3.增加 starter

1. JAP 发布 1.0.51.1 增加 jap-http-api 模块 @Mvbbb[1]

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

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

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 包下的 HttpServletRequestCookieHttpServletResponseHttpSession,比如:

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

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

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

// 在spring框架中使用 1.0.5 或更高级版本的 japXxJapStrategy.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[5]

1.4 jap-social 支持绑定用户

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

登录伪代码:

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 文档站

替换文档站主题 ,解决文档站内存暴涨的问题。(Gitee Issue #I4958H[7] | Github Issue #8[8]

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

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

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

3. 增加 starter @Vector6662[10]

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

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

开发 jap 提供的四种授权策略的对应的 spring boot starter 模块,并将它们插件化,实现按需引入。也就是说,你的web应用若需要相应模块,才添加对应的maven坐标:jap-simple-spring-boot-starterjap-oauth2-spring-boot-starterjap-social-spring-boot-starterjap-oidc-spring-boot-starterjap-spring-boot-starter:提供一个对四种授权策略高度封装的类:JapTemplate

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

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

关于 JAPJAP 是什么?

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

JAP 有哪些功能?

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 产品技术白皮书[13]

相关链接GiteeGithubCodeChina开发者文档引用链接

[1] @Mvbbb:

[2] #I43ZS7:

[3] 使用jap-http-api: /quickstart/jap-http-api/

[4] jap-http:

[5] jap-http-adapter:

[6] #I46J6W:

[7] #I4958H:

[8] #8:

[9] vuepress-theme-vdoing:

[10] @Vector6662:

[11] 项目经验分享:开发 JuatAuth Plus 的 springboot starter 依赖包: /blog/contribution/develop-juatauthplus-springboot-starter/

[12] jap-spring-boot-starter 使用帮助: /starter/jap-spring-boot-starter/

[13] JAP 产品技术白皮书:

标签: #apachehttpclient43