[一] 发布背景
MCP 2026-07-28 是 Model Context Protocol 自发布以来最具变革性的一次规范更新。该版本将 MCP 从双向有状态协议转变为请求/响应式的无状态核心协议,开发者无需再维护 initialize / initialized 握手流程与 Mcp-Session-Id 会话绑定,每个请求都自带协议版本、客户端身份与能力描述,因此可以落在任意一台负载均衡后的实例上而无需共享存储。与此同时,该版本还引入了基于 HTTP 头的路由机制(Mcp-Method、Mcp-Name)、Multi Round-Trip Requests 以及可缓存列表结果,整体架构朝着更可扩展、更易运维的方向演进。
在授权层面,MCP 2026-07-28 进行了系统性加固。认证机制全面对齐生产级 OAuth 2.0 和 OIDC 部署实践,引入了 RFC 9207 issuer 验证,以解决授权服务器混用攻击的隐患。同时,规范正式从动态客户端注册(DCR)转向客户端 ID 元数据文档(CIMD),DCR 被标记为弃用并保留最少 12 个月的兼容窗口。CIMD 允许客户端使用 HTTPS URL 作为 client_id,该 URL 指向一个包含客户端元数据的 JSON 文档,从而解决了 MCP 场景下客户端与服务器无预先关系的常见注册问题。这些变化对任何基于 MCP 协议构建的企业级系统都提出了新的认证与鉴权要求。
目前生态中可用的安全扩展方案存在明显缺口。虽然 Spring AI 社区孵化了基于 Spring Security 生态的安全扩展 spring-ai-community/mcp-security,但该项目并未得到 Spring AI 以及 MCP 官方的正式认可,其文档明确指出“This is a community-driven project and is not officially endorsed yet by Spring AI or the MCP project”。更关键的是,mcp-security 存在已知的安全问题:0.1.9 之前的版本未实现 MCP 安全规范中强制要求的 SSRF 缓解措施(CVE-2026-45609),且在协议对齐上并不完全符合 MCP 2026-07-28 规范。此外,该方案也难以与 Dante Cloud 现有的安全架构形成体系化融合。
Dante Cloud 作为国内首个支持阻塞式和响应式融合的微服务云原生基座,始终以“高质量代码、低安全漏洞”为核心。本次 v4.1.1.1 版本,基于 Spring Authorization Server,参照 MCP 2026-07-28 规范对系统认证核心进行了全面深入的改造,并实现了 MCP Feature 的动态鉴权与管理能力。
[二] 关键更新
1. 参照 MCP 2026-07-28 规范对系统认证核心进行了全面改造:
-
扩展支持 OAuth Client ID Metadata Documents。授权服务器元数据中新增 client_id_metadata_document_supported 标识,客户端使用 HTTPS URL 作为 client_id,授权服务器据此获取并校验客户端元数据文档,取代已弃用的 DCR 流程。
-
扩展支持 OAuth 2.0 Protected Resource Metadata 以及 scopes_supported。资源服务器通过 .well-known 端点发布受保护资源元数据(RFC 9728),其中 scopes_supported 以 JSON 数组形式声明该资源所支持的 OAuth 2.0 scope 值,使客户端能够以最小权限原则发起授权请求。
-
扩展支持 WWW-Authenticate 响应头以及 MCP Step-Up Authorization Flow。当请求因权限不足被拒绝时,服务器返回 401 或 403 并在 WWW-Authenticate 头中携带所需的 scope 信息。客户端据此计算已有 scope 与挑战中新增 scope 的并集,发起增量授权,而非替换既有授权范围。该机制使无状态服务器能够按需发出细粒度的授权挑战,而不强制客户端丢失已有的访问权限。
-
扩展支持 OAuth 2.0 Authorization Server Issuer Identification。授权响应中新增 iss 参数(RFC 9207),显式标识授权服务器的 issuer 标识符,客户端据此验证响应来源,防止授权服务器混用攻击。
-
扩展支持 Resource Indicators for OAuth 2.0。客户端在授权和令牌请求中通过 resource 参数显式声明目标资源服务器的身份(RFC 8707),授权服务器据此将 aud 声明限定为该资源。每个 MCP 服务器必须拒绝 aud 不匹配自身的令牌,从而同时缓解“混淆代理”和“令牌透传”两类攻击。
2. 融合已有动态鉴权体系,全面支持 MCP Feature 动态鉴权:
Dante Cloud 核心特色之一,无需在 REST 接口上使用 @PreAuthorize 注解写死权限,系统提供通过动态扫描 @ResController 注解就可以实现接口的动态鉴权,还支持通过界面动态修改和灵活设定。
在 v4.1.1.1 版本中,通过对该机制扩展,无需使用 @PreAuthorize 注解,实现 Spring AI MCP Server 注解 @McpTool、@McpResource、@McpPrompt 和 @McpComplete 等注解标注 MCP 方法的动态鉴权。系统新增 MCP Features 功能定义扫描能力,统一聚合并自动转换为系统权限功能,使 MCP 工具、资源和提示词与 REST 接口共享同一套动态权限管理体系。这意味着 MCP 方法的权限可以在不修改代码的情况下通过管理界面动态调整,与 Dante Cloud 既有的动态鉴权体系实现了完全融合。
[三] 详细更新
- 主要更新
- [升级] Spring Cloud Tencent 版本升级至 2.1.2.0-2025.1.1
- [升级] Spring Boot Admin 版本升级至 4.1.3
- [升级] SpringDoc 版本升级至 3.1.1
- [升级] Nacos 版本升级至 3.2.4
- [新增] 新增符合 MCP 规范(2026-07-28) 相关认证和管理功能,支持 MCP 方法动态鉴权
- 其它更新
- [新增] 参照 MCP 规范(2026-07-28),系统认证核心功能代码,新增认证出错返回 WWW-Authenticate 响应头信息内容
- [新增] OAuth2 以及 OIDC 客户端动态注册,增加 application_type 标识用以区分不同场景的客户端动态注册,以实现可区分的业务逻辑
- [新增] 新增 OAuth2 ClientId Metadata Document 支持,以支持 MCP Authorization 相关功能
- [新增] 新增 OAuth2.0 Resource Indicators 支持,以支持 MCP Authorization 相关功能
- [新增] 认证服务器配置新增 client_id_metadata_document_supported 设置标识
- [新增] 基于 Spring Authorization Server 的授权码授权模式,新增 iss 参数支持,以适配 MCP 规范(2026-07-28)
- [新增] 新增 MCP Features 功能定义扫描,统一聚合并自动转换为系统权限功能
- [新增] 新增 MCP Features 功能动态鉴权功能
- [新增] 新增 MCP 服务,以及相关配置和数据初始化脚本
- [新增] 参照 MCP 规范(2026-07-28),新增 OAuth2 Resource 和 资源服务器 scopes_supported 参数管理。
- [新增] 新增 OAuth2 资源标识和 OAuth2 保护资源元数据管理功能菜单及数据初始化脚本
- [重构] 原 message-commons 模块提取为框架级别模块 messaging,提升代码内聚性以及独立性
- [重构] 重构框架核心模块代码放置位置,提升代码内聚性,降低独立使用耦合性
- [重构] OAuth2 相关代码全部增加 resource 参数支持,支持 resource 参数持久化
- [重构] OAuth2Application 原 ApplicationType 字段修改为 ClientType,以规避与 MCP OAuth2 协议中 application_type 产生冲突
- [重构] 为支持 MCP 规范(2026-07-28) 新增的 OAuth2 配置,统一放入 herodotus.oauth2.authentication.mcp 下,方便管理
- [重构] 重命名权限属性扫描相关实体类,去除不必要的类型继承
- [重构] 重命名 OAuth2 资源标识和 OAuth2 保护资源元数据相关类命名,明晰代码用途减少理解困难
- [修复] 修复新建 OAuth2 应用时,Resource 参数传值错误引起抛错
- [修复] 修复创建系统应用时,不会同步创建 OAuth2 资源,引起使用授权码模式时页面出错
- [修复] 修复前端通过 moment 生成的 Duration 格式字符串,后端 Duration 格式无法解析问题
- [修复] 修复新建应用创建的相关联表中 clientName 数据不一致问题
- [优化] 优化动态接口权限校验日志输出,增加 REST 版本信息输出
- [优化] 优化 dependencies 配置,使用统一版本控制,去除工程中间接引入的多个不同版本 httpclient 依赖
- [优化] 优化 Spring Authorization Server 同步类型代码,与 Spring Security 7.1.X 保持一致
- [优化] OAuth2 客户端动态开启和关闭 Event 增加事务一致性控制,提升异步数据一致性
- [优化] 前端 Duration 自定义组件增加 “周”、“月”、“年” 选项
- [优化] 补充 MCP 专用 OAuth2 客户端数据库初始化脚本
- [升级] liberica jdk 基础镜像版本升级至 25.0.4.1-1
- [升级] grafana docker 镜像版本升级至 13.2.2
- [升级] loki docker 镜像版本升级至 3.7.8
- [升级] emqx docker 镜像版本升级至 6.3.1
- [升级] influxdb docker 镜像版本升级至 3.11.5
- [升级] alloy docker 镜像版本升级至 1.19.2
- [升级] actions/setup-java 版本升级至 v6.0.1
- [升级] docker/setup-qemu-action 版本升级至 4.4.0
- [升级] docker/setup-buildx-action 版本升级至 4.4.1
- [升级] docker/metadata-action 版本升级至 6.2.0
- [升级] docker/build-push-action 版本升级至 7.4.0
- 依赖更新
- [升级] querydsl 版本升级至 7.7
- [升级] alipay-sdk-java 版本升级至 4.40.1014.ALL
- [升级] bcpkix-jdk18on 版本升级至 1.86
- [升级] bcprov-jdk18on 版本升级至 1.86
- [升级] fastjson2 版本升级至 2.0.65
- [升级] hypersistence-utils-hibernate-73 版本升级至 3.16.0
- [升级] influxdb3-java 版本升级至 1.11.1
- [升级] langchain4j 版本升级至 1.20.0
- [升级] mvel2 版本升级至 2.5.4.Final
- [升级] operation 版本升级至 2.2.0-RC1
- [升级] skywalking agent 版本升级至 9.7.0
- [升级] software.amazon.awssdk 版本升级至 2.55.5
- [升级] software.amazon.awssdk.crt 版本升级至 0.48.4
- [升级] swagger 版本升级至 2.2.55
- [升级] weixin java 版本升级至 4.8.6-20260919.232150
- [升级] webauthn4j 版本升级至 0.31.10.RELEASE
- [升级] quasar webjars 版本升级至 2.33.0
- [升级] vue webjars 版本升级至 3.5.43
- [升级] tabler 版本升级至 1.6.0
- [升级] classgraph 版本升级至 4.8.196
- [升级] javassist 版本升级至 3.33.0-GA
- [升级] joda-time 版本升级至 2.14.4
- [升级] zookeeper 版本升级至 3.9.6
支持开源项目的方式不是仅有 Fork 工程和下载源码,还可以点点 Star!
1. Dante Cloud 主工程
2. Dante Engine 核心组件库
3. UI 前端工程(旧版)
4. UI 前端工程(新版)
5. ThingsBrain 基于 Dante Cloud 的物联网平台(加速开发中...)