--- title: "同时设置了密钥和共享访问令牌 - 如何解决此 Elasticsearch 异常" date: 2026-03-14 lastmod: 2026-03-14 description: "当Elasticsearch配置中同时设置了密钥令牌和共享访问令牌时会出现此错误。Elasticsearch只需要一种类型的令牌进行身份验证。要解决此问题,应从配置中删除密钥令牌或共享访问令牌之一。" tags: ["Elasticsearch", "Azure存储", "异常处理", "身份验证", "配置错误"] summary: "版本: 6.8-8.9 简而言之,当 Elasticsearch 配置中同时设置了密钥令牌和共享访问令牌时,就会发生此错误。Elasticsearch 只需要一种类型的令牌进行身份验证。要解决此问题,您应该从配置中删除密钥令牌或共享访问令牌之一。确保剩余的令牌配置正确并具有必要的权限。进行这些更改后,重新启动 Elasticsearch。 日志上下文 # 日志"Both a secret as well as a shared access token were set.“的类名是 AzureStorageSettings.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: final boolean hasKey = Strings.hasText(key); if (hasSasToken == false && hasKey == false) { throw new SettingsException("Neither a secret key nor a shared access token was set."); } if (hasSasToken && hasKey) { throw new SettingsException("Both a secret as well as a shared access token were set." --- > **版本:** 6.8-8.9 简而言之,当 Elasticsearch 配置中同时设置了密钥令牌和共享访问令牌时,就会发生此错误。Elasticsearch 只需要一种类型的令牌进行身份验证。要解决此问题,您应该从配置中删除密钥令牌或共享访问令牌之一。确保剩余的令牌配置正确并具有必要的权限。进行这些更改后,重新启动 Elasticsearch。 ## 日志上下文 日志"Both a secret as well as a shared access token were set."的类名是 [AzureStorageSettings.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java final boolean hasKey = Strings.hasText(key); if (hasSasToken == false && hasKey == false) { throw new SettingsException("Neither a secret key nor a shared access token was set."); } if (hasSasToken && hasKey) { throw new SettingsException("Both a secret as well as a shared access token were set."); } final StringBuilder connectionStringBuilder = new StringBuilder(); connectionStringBuilder.append("DefaultEndpointsProtocol=https").append(";AccountName=").append(account); if (hasKey) { connectionStringBuilder.append(";AccountKey=").append(key); ```