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

Spring Boot集成graphql-java-tools时如何禁用GET端点的GraphQL自省查询

问题解决说明

你使用的 5.4.1 版本的 graphql-java-kickstart 套件,没有单独针对GET端点的自省查询禁用配置属性,可通过以下几种方式实现需求:

方案1:升级依赖版本(最适配)

5.4.x 版本存在已知缺陷:graphql.tools.introspection-enabled=false 配置仅对POST请求生效,未覆盖GET请求解析逻辑。将整套 graphql-java-kickstart 依赖升级到 6.0.0 及以上版本后,该配置即可全局生效,自动拦截所有GET、POST请求中的自省查询,不需要额外修改其他配置。

方案2:直接关闭GraphQL GET端点(无代码改造成本)

如果你的业务场景不需要通过GET方式调用GraphQL接口,可以直接通过原生配置关闭整个GET端点,5.4.1 版本已支持该配置:

# application.properties 中添加
graphql.servlet.get-enabled=false

配置生效后,所有发往GraphQL端点的GET请求会直接返回405 Method Not Allowed错误,从根源上杜绝通过GET参数携带自省查询的可能。

方案3:保留GET端点的实现方式

如果需要保留GET端点且无法升级版本,除了你已经验证可用的Spring过滤器方案外,还可以通过GraphQL生态原生拦截器实现:

  • 实现 GraphQLQueryInvocationHandler 接口
  • 重写调用逻辑,校验查询语句是否包含__schema、__type等自省关键字,若匹配则直接返回拒绝响应
  • 将自定义拦截器注册为Spring Bean,即可自动生效

内容的提问来源于stack exchange,提问作者Jalaj Chawla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:27:01