Skip to content

Commit b36998f

Browse files
author
廖长江
committed
Merge branch 'feat/v3-api-test' of jihulab.com:authing/sdk/authing-java-sdk-v5 into feat/v3-api-test
2 parents 70e3d1e + 56b648b commit b36998f

15 files changed

+145
-453
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2019 cj
3+
Copyright (c) 2022 Authing
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README-zh_CN.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<div align=center>
2+
<img width="250" src="https://files.authing.co/authing-console/authing-logo-new-20210924.svg" />
3+
</div>
4+
<div align="center">
5+
<a href="javascript:;"><img src="https://img.shields.io/badge/test-passing-brightgreen" /></a>
6+
<a href="https://forum.authing.cn/" target="_blank"><img src="https://img.shields.io/badge/chat-forum-blue" /></a>
7+
<a href="https://console.authing.cn/openapi/#/" target="_blank"><img src="https://img.shields.io/badge/docs-passing-brightgreen" /></a>
8+
<a href="javascript:;"><img src="https://img.shields.io/badge/License-MIT-success" alt="License"></a>
9+
</div>
10+
11+
[English](./README.md) | 简体中文
12+
13+
你可以使用此 Authing Java SDK 快速为新开发的或已有的后端应用集成认证能力。
14+
15+
## 📚 文档
16+
17+
更多示例和使用说明可参考[官方文档](https://docs.authing.cn/v3/reference/sdk/java/install.html)
18+
19+
此版本基于 Authing V3 版本的[用户认证 API](https://api.authing.cn/openapi/v3/authentication/)[管理 API](https://api.authing.cn/openapi/v3/management/),如果你需要使用历史版本的 SDK,请查看 [旧版文档](https://docs.authing.cn/v2/reference/sdk-for-java/)
20+
21+
22+
## ❓ 获取帮助
23+
24+
如果需要在线技术支持,可访问[官方论坛](https://forum.authing.cn/). 此仓库的 issue 仅用于上报 Bug 和提交新功能特性。
25+
26+
## 🤝 开源共建
27+
28+
- Fork 此仓库
29+
- 创建自己的 git 分支 (git checkout -b my-new-feature)
30+
- 提交你的修改 (git commit -am 'Add some feature')
31+
- 将修改内容推送到远程分支 (git push -u origin my-new-feature)
32+
- 创建一个 Pull Request
33+
34+
感谢所有为 Java SDK 做出贡献的人!
35+
36+
[为 Authing 开源仓库做出贡献](https://github.com/Authing/.github/blob/main/CONTRIBUTING.md#简体中文)
37+
38+
## 🎁 开源许可
39+
40+
[MIT](https://opensource.org/licenses/MIT)
41+
42+
Copyright (c) 2019 Authing

README.md

Lines changed: 27 additions & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -1,188 +1,43 @@
1-
# authing-java-sdk
1+
<div align=center>
2+
<img width="250" src="https://files.authing.co/authing-console/authing-logo-new-20210924.svg" />
3+
</div>
4+
<div align="center">
5+
<a href="javascript:;"><img src="https://img.shields.io/badge/test-passing-brightgreen" /></a>
6+
<a href="https://forum.authing.cn/" target="_blank"><img src="https://img.shields.io/badge/chat-forum-blue" /></a>
7+
<a href="https://console.authing.cn/openapi/" target="_blank"><img src="https://img.shields.io/badge/docs-passing-brightgreen" /></a>
8+
<a href="javascript:;"><img src="https://img.shields.io/badge/License-MIT-success" alt="License"></a>
9+
</div>
210

3-
[Authing](https://authing.cn) 身份云 `Java` 语言客户端,包含 [Authing Open API](https://api.authing.cn/openapi/) 所有 Management API 的请求方法以及通过 OIDC 协议实现的认证侧的认证相关方法。
11+
English | [简体中文](./README-zh_CN.md)
412

5-
Management 模块以管理员(Administrator)的身份进行请求,用于管理 Authing 用户、角色、分组、组织机构等资源;一般来说,你在 Authing 控制台中能做的所有操作,都能用此模块完成。
13+
You can use the Authing Java SDK to quickly integrate authentication capabilities for new or existing Back End applications.
614

7-
AuthenticationClient 模块提供认证相关的调用方法,支持包括获取认证地址、获取登录态(用户信息,令牌)、检查令牌、登出等认证相关方法。
815

9-
如果你需要以终端用户(End User)的身份进行登录、注册、登出等操作,请使用 [Guard](https://www.authing.cn/learn/guard) .
16+
## 📚 Documentation
1017

11-
## 安装
18+
To check out documentation, please refers to [docs](https://docs.authing.cn/v3/reference/sdk/java/install.html).
1219

13-
### Gradle
20+
This SDK is built upon [Authing Management API(v3)](https://api.authing.cn/openapi/v3/management/) and [Authing Authentication API(v3)](https://api.authing.cn/openapi/v3/authentication/), for older version, please refers to [older version docs](https://docs.authing.cn/v2/reference/sdk-for-java/).
1421

15-
```bash
16-
implementation "cn.authing:authing-java-sdk:<{final_version}>"
17-
```
1822

19-
### Maven
23+
## ❓ Questions
2024

21-
```xml
22-
<dependency>
23-
<groupId>cn.authing</groupId>
24-
<artifactId>authing-java-sdk</artifactId>
25-
<version>{final_version}</version>
26-
</dependency>
27-
```
25+
For questions and support please use the [official forum](https://forum.authing.cn/). The issue list of this repo is exclusively for bug reports and feature requests.
2826

29-
## 初始化
27+
## 🤝 Contribution
3028

31-
初始化 `ManagementClient` 需要使用 `accessKeyId``accessKeySecret` 参数:
29+
- Fork it
30+
- Create your feature branch (git checkout -b my-new-feature)
31+
- Commit your changes (git commit -am 'Add some feature')
32+
- Push to the branch (git push -u origin my-new-feature)
33+
- Create new Pull Request
3234

33-
```java
34-
import cn.authing.sdk.java.client.ManagementClient;
35-
import cn.authing.sdk.java.model.ManagementClientOptions;
35+
Thank you to all the people who already contributed to Java SDK !
3636

37-
ManagementClientOptions clientOptions = new ManagementClientOptions("AUTHING_USERPOOL_ID", "AUTHING_USERPOOL_SECRET");
38-
ManagementClient managementClient = new ManagementClient(clientOptions);
39-
```
37+
[Contributing to Authing Open Source Repos](https://github.com/Authing/.github/blob/main/CONTRIBUTING.md#English)
4038

41-
`ManagementClient` 会自动从 Authing 服务器获取 Management API Token,并通过返回的 Token 过期时间自动对 Token 进行缓存。
39+
## 🎁 License
4240

43-
完整的参数和释义如下:
41+
[MIT](https://opensource.org/licenses/MIT)
4442

45-
- `accessKeyId`: Authing 用户池 ID;
46-
- `accessKeySecret`: Authing 用户池密钥;
47-
- `timeout`: 超时时间,单位为 ms,默认为 10000 ms;
48-
- `host`: Authing 服务器地址,默认为 `https://api.authing.cn`。如果你使用的是 Authing 公有云版本,请忽略此参数。如果你使用的是私有化部署的版本,此参数必填,格式如下: https://authing-api.my-authing-service.com(最后不带斜杠 /)。
49-
- `lang`: 接口 Message 返回语言格式(可选),可选值为 zh-CN 和 en-US,默认为 zh-CN。
50-
51-
初始化 `AuthenticationClient` 需要使用 `appId``appSecret``host``redirectUri` 参数:
52-
53-
```java
54-
import cn.authing.sdk.java.client.AuthenticationClient;
55-
import cn.authing.sdk.java.model.AuthenticationClientOptions;
56-
57-
AuthenticationClientOptions clientOptions = new AuthenticationClientOptions("APP_ID", "APP_SECRET", "HOST", "REDIRECT_URI");
58-
AuthenticationClient authenticationClient = new AuthenticationClient(clientOptions);
59-
60-
```
61-
62-
完整的参数和释义如下:
63-
64-
- `appId`: Authing 应用 ID ;
65-
- `appSecret`: Authing 应用 Secret;
66-
- `host`: 应用对应的用户池域名,例如 pool.authing.cn;
67-
- `redirectUri`: 认证完成后的重定向目标 URL, 会进行校验,需要和控制台的设置保持一致。
68-
- `logoutRedirectUri`: 登出完成后的重定向目标 URL。
69-
- `scope`: 应用侧向 Authing 请求的权限,以空格分隔,默认为 'openid profile',成功获取的权限会出现在 Access Token 的 scope 字段中。
70-
- `serverJWKS`: 服务端的 JWKS 公钥,用于验证 Token 签名,默认会通过网络请求从服务端的 JWKS 端点自动获取。
71-
- `cookieKey`: 存储认证上下文的 Cookie 名称。
72-
73-
认证侧相关的使用和方法说明,你可以在 [Authing Nodejs SDK](https://docs.authing.cn/v2/reference-new/sdk/v5/node/authentication.html) 中查看。
74-
75-
## 快速开始
76-
77-
初始化完成 `ManagementClient` 之后,你可以获取 `ManagementClient` 的实例,然后调用此实例上的方法。例如:
78-
79-
- 获取用户列表
80-
81-
```java
82-
import cn.authing.sdk.java.dto.*;
83-
import cn.authing.sdk.java.client.ManagementClient;
84-
import cn.authing.sdk.java.model.ManagementClientOptions;
85-
86-
public static void main(String[] args) {
87-
ManagementClientOptions clientOptions = new ManagementClientOptions("AUTHING_USERPOOL_ID", "AUTHING_USERPOOL_SECRET");
88-
ManagementClient managementClient = new ManagementClient(clientOptions);
89-
ListUsersDto request = new ListUsersDto();
90-
request.setPage(1);
91-
request.setLimit(10);
92-
UserPaginatedRespDto response = managementClient.listUsers(request);
93-
System.out.println(response);
94-
}
95-
```
96-
97-
- 创建角色
98-
99-
```java
100-
import cn.authing.sdk.java.dto.*;
101-
import cn.authing.sdk.java.client.ManagementClient;
102-
import cn.authing.sdk.java.model.ManagementClientOptions;
103-
104-
public static void main(String[] args) {
105-
ManagementClientOptions clientOptions = new ManagementClientOptions("AUTHING_USERPOOL_ID", "AUTHING_USERPOOL_SECRET");
106-
ManagementClient managementClient = new ManagementClient(clientOptions);
107-
CreateRoleDto request = new CreateRoleDto();
108-
request.setCode("code");
109-
request.setNamespace("namespace");
110-
request.setDescription("description");
111-
RoleSingleRespDto response = managementClient.createRole(request);
112-
System.out.println(response);
113-
}
114-
```
115-
116-
完整的接口列表,你可以在 [Authing Open API](https://api.authing.cn/openapi/)[SDK 文档](https://authing-open-api.readme.io/reference/java) 中获取。
117-
118-
## 错误处理
119-
120-
`ManagementClient` 中的每个方法,遵循统一的返回结构:
121-
122-
- `statusCode`: 请求是否成功状态码,当 `statusCode` 为 200 时,表示操作成功,非 200 全部为失败。
123-
- `apiCode`: 细分错误码,当 `apiCode` 非 200 时,可通过此错误码得到具体的错误类型。
124-
- `message`: 具体的错误信息。
125-
- `data`: 具体返回的接口数据。
126-
127-
一般情况下,如果你只需要判断操作是否成功,只需要对比一下 `code` 是否为 200。如果非 200,可以在代码中通抛出异常或者任何你项目中使用的异常处理方式。
128-
129-
```java
130-
import cn.authing.sdk.java.dto.*;
131-
import cn.authing.sdk.java.client.ManagementClient;
132-
import cn.authing.sdk.java.model.ManagementClientOptions;
133-
134-
public static void main(String[] args) {
135-
ManagementClientOptions clientOptions = new ManagementClientOptions("AUTHING_USERPOOL_ID", "AUTHING_USERPOOL_SECRET");
136-
ManagementClient managementClient = new ManagementClient(clientOptions);
137-
CreateRoleDto request = new CreateRoleDto();
138-
request.setCode("code");
139-
request.setNamespace("namespace");
140-
request.setDescription("description");
141-
RoleSingleRespDto response = managementClient.createRole(request);
142-
143-
if (response.getCode() != 200) {
144-
throw new RuntimeException(response.getMessage()); // 抛出异常,由全局异常捕捉中间件进行异常捕捉
145-
}
146-
147-
// 继续你的业务逻辑 ...
148-
}
149-
```
150-
151-
## 私有化部署
152-
153-
如果你使用的是私有化部署的 Authing IDaaS 服务,需要指定此 Authing 私有化实例的 `host`,如:
154-
155-
```java
156-
import cn.authing.sdk.java.dto.*;
157-
import cn.authing.sdk.java.model.ManagementClientOptions;
158-
159-
public class ManagementClientTest {
160-
161-
private static final String ACCESS_KEY_ID = "YOUR_ACCESS_KEY_ID";
162-
private static final String ACCESS_KEY_SECRET = "YOUR_ACCESS_KEY_SECRET";
163-
// 您的 Authing 私有化实例 HOST 地址,格式例如 https://core.authing.cn
164-
private static final String HOST = "YOUR_HOST";
165-
private ManagementClient managementClient = null;
166-
167-
public ManagementClientTest() {
168-
ManagementClientOptions clientOptions = new ManagementClientOptions(ACCESS_KEY_ID, ACCESS_KEY_SECRET);
169-
clientOptions.setHost(HOST);
170-
managementClient = new ManagementClient(clientOptions);
171-
}
172-
173-
}
174-
```
175-
176-
如果你不清楚如何获取,可以联系 Authing IDaaS 服务管理员。
177-
178-
## 资源
179-
180-
- [官网](https://authing.cn)
181-
- [开发者文档](https://docs.authing.cn/)
182-
- [Authing Open API](https://api.authing.cn/openapi/)
183-
- [SDK 文档](https://authing-open-api.readme.io/reference/nodejs)
184-
- [论坛社区](https://forum.authing.cn/)
185-
186-
## 获取帮助
187-
188-
有任何疑问,可以在 Authing 论坛提出: [#authing-forum](https://forum.authing.cn/)
43+
Copyright (c) 2019 Authing

0 commit comments

Comments
 (0)