From 5810d95ef3a6cdb684460c2a167fed35b6cc4e89 Mon Sep 17 00:00:00 2001 From: luk384090-cloud Date: Sat, 10 Oct 2026 18:39:26 +0800 Subject: [PATCH 1/2] feat: support custom base URL for encryption key fetching --- .../alibaba/dashscope/protocol/HalfDuplexRequest.java | 4 +++- .../com/alibaba/dashscope/utils/EncryptionUtils.java | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alibaba/dashscope/protocol/HalfDuplexRequest.java b/src/main/java/com/alibaba/dashscope/protocol/HalfDuplexRequest.java index e361639b..2d1852ea 100644 --- a/src/main/java/com/alibaba/dashscope/protocol/HalfDuplexRequest.java +++ b/src/main/java/com/alibaba/dashscope/protocol/HalfDuplexRequest.java @@ -126,7 +126,9 @@ public HttpRequest getHttpRequest() throws NoApiKeyException, ApiException { || getHttpMethod() == HttpMethod.DELETE) { JsonObject body = param.getHttpBody(); if (isEncryptRequest() && body != null) { // we need to encrypt the input - this.encryptionConfig = EncryptionUtils.generateEncryptionConfig(param.getApiKey()); + this.encryptionConfig = + EncryptionUtils.generateEncryptionConfig( + param.getApiKey(), serviceOption.getBaseHttpUrl()); requestHeaders.put("X-DashScope-EncryptionKey", getEncryptionKeyHeader(encryptionConfig)); JsonObject input = body.get("input").getAsJsonObject(); String chiperInput = diff --git a/src/main/java/com/alibaba/dashscope/utils/EncryptionUtils.java b/src/main/java/com/alibaba/dashscope/utils/EncryptionUtils.java index 9bdb0725..38ba2da9 100644 --- a/src/main/java/com/alibaba/dashscope/utils/EncryptionUtils.java +++ b/src/main/java/com/alibaba/dashscope/utils/EncryptionUtils.java @@ -151,7 +151,14 @@ public static String AESDecrypt(String cipherText, SecretKey secretKey, byte[] i /** Generate a EncryptionConfig. */ public static EncryptionConfig generateEncryptionConfig(String apiKey) throws ApiException, NoApiKeyException { - EncryptionKeys encryptionKeys = new EncryptionKeys(); + return generateEncryptionConfig(apiKey, null); + } + + /** Generate a EncryptionConfig, fetching the public key from the given base URL. */ + public static EncryptionConfig generateEncryptionConfig(String apiKey, String baseHttpUrl) + throws ApiException, NoApiKeyException { + EncryptionKeys encryptionKeys = + baseHttpUrl != null ? new EncryptionKeys(baseHttpUrl) : new EncryptionKeys(); EncryptionKey encryptionKey = encryptionKeys.get(apiKey); byte[] iv = new byte[12]; new SecureRandom().nextBytes(iv); From 7622a5e86c1e4551cf94870cb50b3284d93a6622 Mon Sep 17 00:00:00 2001 From: luk384090-cloud Date: Thu, 15 Oct 2026 11:22:40 +0800 Subject: [PATCH 2/2] chore(version): Update version to 2.23.3 --- pom.xml | 2 +- src/main/java/com/alibaba/dashscope/Version.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index fdc56547..a6232aea 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ DashScope Java SDK com.alibaba dashscope-sdk-java - 2.23.2 + 2.23.3 8 diff --git a/src/main/java/com/alibaba/dashscope/Version.java b/src/main/java/com/alibaba/dashscope/Version.java index 9d0fde9b..c94315a9 100644 --- a/src/main/java/com/alibaba/dashscope/Version.java +++ b/src/main/java/com/alibaba/dashscope/Version.java @@ -3,5 +3,5 @@ package com.alibaba.dashscope; public final class Version { - public static final String version = "2.23.2"; + public static final String version = "2.23.3"; }