mirror of
https://github.com/qaiu/netdisk-fast-download.git
synced 2026-06-11 07:57:28 +00:00
fix: IzToolWithAuth 并发安全 - token/authFlag 改为 volatile,header 副本替代共享修改
This commit is contained in:
@@ -88,8 +88,8 @@ public class IzToolWithAuth extends PanBase {
|
|||||||
|
|
||||||
String uuid = UUID.randomUUID().toString().toLowerCase(); // 也可以使用 UUID.randomUUID().toString()
|
String uuid = UUID.randomUUID().toString().toLowerCase(); // 也可以使用 UUID.randomUUID().toString()
|
||||||
|
|
||||||
public static String token = null;
|
public static volatile String token = null;
|
||||||
public static boolean authFlag = true;
|
public static volatile boolean authFlag = true;
|
||||||
|
|
||||||
public Future<String> parse() {
|
public Future<String> parse() {
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ public class IzToolWithAuth extends PanBase {
|
|||||||
log.warn("登录失败: {}", failRes.getMessage());
|
log.warn("登录失败: {}", failRes.getMessage());
|
||||||
fail(failRes.getMessage());
|
fail(failRes.getMessage());
|
||||||
}).onSuccess(r-> {
|
}).onSuccess(r-> {
|
||||||
httpRequest.setTemplateParam("appToken", header.get("appToken"))
|
httpRequest.setTemplateParam("appToken", token)
|
||||||
.putHeaders(header);
|
.putHeaders(header);
|
||||||
httpRequest.send().onSuccess(this::down).onFailure(handleFail("请求2"));
|
httpRequest.send().onSuccess(this::down).onFailure(handleFail("请求2"));
|
||||||
});
|
});
|
||||||
@@ -232,12 +232,12 @@ public class IzToolWithAuth extends PanBase {
|
|||||||
log.warn("重新登录失败: {}", failRes.getMessage());
|
log.warn("重新登录失败: {}", failRes.getMessage());
|
||||||
fail(failRes.getMessage());
|
fail(failRes.getMessage());
|
||||||
}).onSuccess(r-> {
|
}).onSuccess(r-> {
|
||||||
httpRequest.setTemplateParam("appToken", header.get("appToken"))
|
httpRequest.setTemplateParam("appToken", token)
|
||||||
.putHeaders(header);
|
.putHeaders(header);
|
||||||
httpRequest.send().onSuccess(this::down).onFailure(handleFail("请求2"));
|
httpRequest.send().onSuccess(this::down).onFailure(handleFail("请求2"));
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
httpRequest.setTemplateParam("appToken", header.get("appToken"))
|
httpRequest.setTemplateParam("appToken", token)
|
||||||
.putHeaders(header);
|
.putHeaders(header);
|
||||||
httpRequest.send().onSuccess(this::down).onFailure(handleFail("请求2"));
|
httpRequest.send().onSuccess(this::down).onFailure(handleFail("请求2"));
|
||||||
}
|
}
|
||||||
@@ -280,7 +280,9 @@ public class IzToolWithAuth extends PanBase {
|
|||||||
JsonObject json = asJson(res2);
|
JsonObject json = asJson(res2);
|
||||||
if (json.getInteger("code") == 200) {
|
if (json.getInteger("code") == 200) {
|
||||||
token = json.getJsonObject("data").getString("appToken");
|
token = json.getJsonObject("data").getString("appToken");
|
||||||
header.set("appToken", token);
|
MultiMap h = MultiMap.caseInsensitiveMultiMap();
|
||||||
|
h.addAll(header);
|
||||||
|
h.set("appToken", token);
|
||||||
log.info("登录成功 token: {}...", token.substring(0, Math.min(8, token.length())));
|
log.info("登录成功 token: {}...", token.substring(0, Math.min(8, token.length())));
|
||||||
promise1.complete();
|
promise1.complete();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user