You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot通过Entra ID无密码连接Azure Redis报错求助

解决SpringBoot连接Azure Redis(Entra ID认证)的NoClassDefFoundError问题

问题本质

这个错误不是缺失Bean,而是缺少azure-identity-extensions依赖包——com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate类属于该扩展包,是Entra ID认证流程的核心模板实现类。

修复方案

1. 补充对应依赖

根据你的构建工具添加依赖:

  • Maven(pom.xml):
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity-extensions</artifactId>
    <version>1.2.11</version> <!-- 选和Spring Boot版本兼容的稳定版,比如Spring Boot 3.x用1.2.x系列 -->
</dependency>
  • Gradle(build.gradle):
implementation 'com.azure:azure-identity-extensions:1.2.11'

注意:版本要和你用的Spring Boot Azure Starter匹配,避免版本冲突。

2. 确认Entra ID认证配置

在application.properties/application.yml里配置正确的Redis认证参数:

# Redis基础连接
spring.data.redis.host=你的Azure Redis主机名
spring.data.redis.port=6380
spring.data.redis.ssl=true

# Entra ID认证核心配置
spring.data.redis.password=${AZURE_CLIENT_ID} # 用客户端ID占位,扩展包会自动处理认证流程
spring.data.redis.client-type=lettuce

# 若用用户分配的托管标识,补充以下配置
azure.identity.client-id=你的客户端ID
azure.identity.tenant-id=你的租户ID

3. Spring Repositories无需额外修改

你偏好的Spring Data Redis Repository可以直接使用,只要连接配置生效,Repository层会自动依托正确的连接工厂操作Redis,不需要额外编写模板代码。

额外提醒

  • 之前修改Model1配置解决Azure问题的话,要确保当前Redis的租户ID、客户端ID和Model1配置一致,避免冲突。
  • 清理项目缓存后重新构建,确保依赖包被正确拉取。

内容的提问来源于stack exchange,提问作者Kris Swat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:51:02