Skip to content

Commit 233a439

Browse files
fix: 去除本地签名,使用 management token
1 parent 60deaef commit 233a439

File tree

3 files changed

+8
-62
lines changed

3 files changed

+8
-62
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>cn.authing</groupId>
88
<artifactId>authing-java-sdk</artifactId>
9-
<version>3.1.3</version>
9+
<version>3.1.4</version>
1010

1111
<name>Authing Java SDK</name>
1212
<description>java backend sdk for authing</description>

src/main/java/cn/authing/sdk/java/model/ManagementClientOptions.java

Lines changed: 5 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,6 @@ public ManagementClientOptions() {
9090
tokenProvider = new ManagementTokenProvider(this);
9191
}
9292

93-
/**
94-
* 管理端 签名生成
95-
**/
96-
private final ISignatureComposer composer;
97-
98-
{
99-
composer = SignatureComposer.getComposer();
100-
}
10193

10294
@Override
10395
public String doRequest(String url, String method, Map<String, String> headers, Object body) {
@@ -106,7 +98,7 @@ public String doRequest(String url, String method, Map<String, String> headers,
10698
}
10799
// put 签名所需的头部
108100
headers.put("x-authing-lang", getLang().getValue());
109-
headers.put("x-authing-sdk-version", "authing-java-sdk:3.1.0");
101+
headers.put("x-authing-sdk-version", "authing-java-sdk:3.1.4");
110102
headers.put("x-authing-signature-method", SignatureEnum.X_AUTHING_SIGNATURE_METHOD.getValue());
111103
headers.put("x-authing-signature-nonce", CommonUtils.createRandomString(RANDOM_STRING_LENGTH));
112104
headers.put("x-authing-signature-version", SignatureEnum.X_AUTHING_SIGNATURE_VERSION.getValue());
@@ -115,62 +107,16 @@ public String doRequest(String url, String method, Map<String, String> headers,
115107
headers.put("x-authing-tenant-id", tenantId);
116108
}
117109
headers.put("date", String.valueOf(new Date().getTime()));
118-
//生成签名
119-
String stringToSign = null;
120-
try {
121-
stringToSign = composer.composeStringToSign(method, url, headers, objectToMap(body));
122-
} catch (IllegalAccessException e) {
123-
throw new RuntimeException(e);
124-
}
125110
//生成 Authorization
126-
headers.put("Authorization", composer.getAuthorization(accessKeyId, accessKeySecret, stringToSign));
111+
headers.put("Authorization", this.tokenProvider.getAccessToken());
112+
headers.put("x-authing-userpool-id", this.tokenProvider.getUserPoolId());
127113
if (CollectionUtil.isNotEmpty(getHeaders())) {
128114
headers.putAll(getHeaders());
129115
}
130116
//发送请求
131117
return HttpUtils.request(getHost() + url, method, body, headers, getTimeout());
132118
}
133119

134-
private boolean isObject(Object obj) {
135-
return !(obj instanceof String || obj instanceof Integer || obj instanceof Enum || obj instanceof Double ||
136-
obj instanceof Float || obj instanceof Boolean);
137-
}
138-
139-
private Map<String, String> objectToMap(Object object) throws IllegalAccessException {
140-
if (object instanceof Map) {
141-
return (Map) object;
142-
}
143-
Map<String, String> map = new HashMap<>();
144-
Field[] fields = object.getClass().getDeclaredFields();
145-
for (Field field : fields) {
146-
field.setAccessible(true);
147-
Object obj = field.get(object);
148-
if (obj != null) {
149-
// 如果是对象类型,转成 JSON 字符串
150-
if (isObject(obj)) {
151-
if (obj instanceof List && CollectionUtil.isNotEmpty((List<?>) obj)) {
152-
Object arr = ((List<?>) obj).get(0);
153-
if (arr instanceof Enum) {
154-
map.put(field.getName(), JsonUtils.serialize(obj).replaceAll("\"", "").replaceAll(",", ", "));
155-
} else {
156-
map.put(field.getName(), JsonUtils.serialize(obj));
157-
}
158-
} else {
159-
map.put(field.getName(), JsonUtils.serialize(obj));
160-
}
161-
}
162-
else {
163-
if (obj instanceof Enum) {
164-
map.put(field.getName(), JsonUtils.serialize(obj).replaceAll("\"", ""));
165-
} else {
166-
map.put(field.getName(), obj.toString());
167-
}
168-
}
169-
}
170-
}
171-
return map;
172-
}
173-
174120
public String getAccessKeyId() {
175121
return accessKeyId;
176122
}
@@ -255,10 +201,10 @@ private void checkLoginStatus() {
255201
return;
256202
}
257203
// token 失效, 登录
258-
doLogin();
204+
refreshManagementToken();
259205
}
260206

261-
private void doLogin() {
207+
private void refreshManagementToken() {
262208
Map<String, Object> body = new HashMap<>();
263209
body.put("accessKeyId", options.getAccessKeyId());
264210
body.put("accessKeySecret", options.getAccessKeySecret());

src/test/java/test/management/ListUsersTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
public class ListUsersTest {
1010
// 需要替换成你的 Authing Access Key ID
11-
private static final String ACCESS_KEY_ID = "65420f25860b4d15fc3cb5f7";
11+
private static final String ACCESS_KEY_ID = "63bea7828f47719bfa80df93";
1212
// 需要替换成你的 Authing Access Key Secret
13-
private static final String ACCESS_KEY_SECRET = "bce50ebc079ffab84de4426e71fd6336";
13+
private static final String ACCESS_KEY_SECRET = "55bc2340add856055e631e788f3e5364";
1414

1515
public static void main(String[] args) throws Throwable {
1616
ManagementClientOptions clientOptions = new ManagementClientOptions();

0 commit comments

Comments
 (0)