JA Plus 开发者文档 JA Plus 开发者文档
首页
📖 白皮书 (opens new window)
  • 名词解释
  • 快速开始

    • 使用jap-simple
    • 使用jap-social
    • 使用jap-oauth2
    • 使用jap-oidc
    • 使用jap-sso
    • 使用jap-mfa
    • 使用jap-http-api
    • 使用jap-ldap
    • 错误代码
  • IDS

    • 简介
    • 快速开始
    • 自定义scope
    • 自定义登录页面
    • 自定义确认授权页面
    • 自定义缓存
    • 自定义Token加密密钥
    • 使用PKCE模式
    • 自动授权
    • 错误代码
  • starter

    • jap-spring-boot-starter
    • jap-simple-spring-boot-starter
    • jap-social-spring-boot-starter
    • jap-oauth2-spring-boot-starter
    • jap-oidc-spring-boot-starter
  • jap-ids的demo
  • 前后端分离架构中使用JAP
  • SpringBoot中使用JAP
  • 问题反馈
  • 项目问题
  • 异常问题
  • 功能问题
  • 数据看板🔥
  • 贡献指南
  • 行为准则
  • 用户权益
  • 贡献者们
  • 社区配套 (opens new window)
  • 教程
  • 投稿
  • 资讯
  • 关于
  • 友情链接
  • 捐赠列表
  • 其他开源
  • 更新记录
收藏
GitHub (opens new window)

FuJie Team

以开源的形式赋能开发者. Just auth into any app.
首页
📖 白皮书 (opens new window)
  • 名词解释
  • 快速开始

    • 使用jap-simple
    • 使用jap-social
    • 使用jap-oauth2
    • 使用jap-oidc
    • 使用jap-sso
    • 使用jap-mfa
    • 使用jap-http-api
    • 使用jap-ldap
    • 错误代码
  • IDS

    • 简介
    • 快速开始
    • 自定义scope
    • 自定义登录页面
    • 自定义确认授权页面
    • 自定义缓存
    • 自定义Token加密密钥
    • 使用PKCE模式
    • 自动授权
    • 错误代码
  • starter

    • jap-spring-boot-starter
    • jap-simple-spring-boot-starter
    • jap-social-spring-boot-starter
    • jap-oauth2-spring-boot-starter
    • jap-oidc-spring-boot-starter
  • jap-ids的demo
  • 前后端分离架构中使用JAP
  • SpringBoot中使用JAP
  • 问题反馈
  • 项目问题
  • 异常问题
  • 功能问题
  • 数据看板🔥
  • 贡献指南
  • 行为准则
  • 用户权益
  • 贡献者们
  • 社区配套 (opens new window)
  • 教程
  • 投稿
  • 资讯
  • 关于
  • 友情链接
  • 捐赠列表
  • 其他开源
  • 更新记录
收藏
GitHub (opens new window)
  • 使用指南
    • 关于分支和版本的说明
    • 使用须知
    • 使用 jap-bom
      • Maven
      • Gradle
    • 使用 snapshots
      • Maven
      • Gradle
    • 参与贡献
  • 名词解释
  • 快速开始

  • IDS

  • starter

  • 指南
FuJie Team
2021-09-20

使用指南

# 关于分支和版本的说明

分支须知

  • 最新代码,在 dev 分支(不保证稳定)
  • 稳定版代码,在 master 分支

当前最新版本为:
当前镜像版本为:

分支说明

  • 开发分支(dev):最新代码,不保证稳定,实时发布 SNAPSHOT ,同时提交 PR 也是在这个分支。
  • 主分支(master):保护分支,稳定版代码,用于发布稳定版版本,不接受任何 PR。

版本号说明

  • 稳定版(release):格式为 x.x.x,为官方推荐使用的版本,可以用于生产环境。
  • 快照版(snapshots):格式为 x.x.x-SNAPSHOT。快照版会实时更新(dev 分支 push 后),想尝试新功能的开发者可以在开发环境使用 SNAPSHOT 版。

注意

快照版不可用于生产环境!!!
快照版不可用于生产环境!!!
快照版不可用于生产环境!!!

# 使用须知

在 1.0.5 以前版本,jap 中依赖 jakarta-servlet,在 JAP 接口或者内部流程中使用到了 javax.servlet.http 包下的 HttpServletRequest、Cookie、HttpServletResponse、HttpSession。

// JAP 旧版本提供的接口
public interface JapStrategy {
    default JapResponse authenticate(AuthenticateConfig config, HttpServletRequest request, HttpServletResponse response) {
        return null;
    }
}
1
2
3
4
5
6

开发者调用接口示例如下:

// 在 Spring 框架中使用 jap
XxJapStrategy.authenticate(config, HttpServletRequest, HttpServletResponse);
1
2

为了提高框架适配性,自 1.0.5 版本开始, JAP 不再强制依赖 jakarta-servlet 或者 javax.servlet,而是采用了一套全新的接口(参考:jap-http (opens new window)),开发者在调用 JAP 接口时需要对原 request 进行适配。

public interface JapStrategy {
    default JapResponse authenticate(AuthenticateConfig config, JapHttpRequest request, JapHttpResponse response) {
        return null;
    }
}
1
2
3
4
5

比如,开发者项目中使用了 jakarta-servlet 或者 javax.servlet,那么需要对 HttpServletRequest、HttpServletResponse 进行适配处理:

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

再比如,开发者项目中使用了 blade-mvc,那么需要对 HttpRequest、HttpResponse 进行适配处理:

// 在 Blade 框架中使用 1.0.5 或更高级版本的 jap
XxJapStrategy.authenticate(config, new BladeRequestAdapter(HttpRequest), new BladeResponseAdapter(HttpResponse));
1
2

普通项目(基于 jakarta-servlet 或者 javax.servlet)不需要单独处理,直接按照上方说明使用即可,JAP 中默认集成了 jap-http-jakarta-adapter 组件。

对于不是基于 jakarta-servlet 或者 javax.servlet 的框架,需要开发者自己实现适配器,实现方式请参考:jap-http-adapter (opens new window)。当前已经支持的适配器包含 jakarta 和 blade。

<!-- blade-mvc 适配器 -->
<dependency>
    <groupId>com.fujieid.jap.http</groupId>
    <artifactId>jap-http-blade-adapter</artifactId>
    <version>1.0.0</version>
</dependency>
1
2
3
4
5
6

# 使用 jap-bom

jap-bom,可以简化依赖和依赖版本统一处理,避免jar冲突。

注意:maven 是按先后顺序进行依赖的,所以 jap-bom 顺序按 jap、spring boot、spring cloud依次添加。

# Maven

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.fujieid</groupId>
            <artifactId>jap-bom</artifactId>
            <version>${jap.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
1
2
3
4
5
6
7
8
9
10
11

# Gradle

Spring boot 环境中可以开启 apply plugin: "io.spring.dependency-management" 插件。

dependencyManagement {
    imports {
        mavenBom "com.fujieid:jap-bom:${japVersion}"
    }
}
1
2
3
4
5

# 使用 snapshots

注意:snapshots 版本会及时响应,修复最新的 bug 或者必要的需求。

# Maven

<repositories>
    <repository>
        <id>sonatype-nexus-snapshots</id>
        <name>Sonatype Nexus Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>
1
2
3
4
5
6
7
8
9
10
11
12
13

# Gradle

repositories {
    mavenLocal()
    maven { url "https://maven.aliyun.com/repository/public" }
    maven { url "https://maven.aliyun.com/repository/spring" }
    maven { url "https://maven.aliyun.com/repository/spring-plugin" }
    maven { url "https://repo.spring.io/libs-release" }
    maven { url "https://repo.spring.io/milestone" }
    // 添加 snapshots 库地址
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
    mavenCentral()
}
1
2
3
4
5
6
7
8
9
10
11

# 参与贡献

贡献指南
编辑 (opens new window)
Last Updated: 2021/11/10, 17:35:59
名词解释

名词解释→

最近更新
01
经验总结:关于为 JAP 开发不同语言的 Demo 的总结
11-02
02
jap-spring-boot-starter 使用帮助
10-28
03
使用jap-ldap
10-25
更多文章>
Theme by Vdoing | Copyright © 2021-2022

友情链接:UniAdmin | 江如意的博客

Copyright © 2021-2040 FUJIE. All rights reserved. 北京符节科技有限公司版权所有 | 京ICP备2020044519号-4
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式