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

Spring构建报错:jwtAccessTokenConverter工厂方法抛出非法参数异常

错误原因与排查方案

从错误栈的根异常java.lang.IllegalArgumentException: [Assertion failed] - this String argument must have text; it must not be null, empty, or blank可以明确核心问题:创建JwtAccessTokenConverter Bean时,传入了空字符串参数(大概率是JWT签名密钥)。

你是替换数据库(MariaDB→MySQL)后触发报错,但这个问题和数据库类型无关,大概率是以下场景导致:

  • 替换数据库配置时,误删/注释掉了application.yml/application.properties中JWT签名密钥的配置项
  • JWT相关配置项拼写错误,导致Spring无法读取到有效值,注入时为空白
  • 自定义jwtAccessTokenConverter工厂方法中,硬编码的签名密钥被误修改为空

具体排查步骤

  • 检查配置文件(application.yml/application.properties),确认JWT签名密钥配置存在且有有效值,示例:
    # application.properties
    security.oauth2.jwt.signing-key=your-valid-signing-key
    
    或YAML格式:
    # application.yml
    security:
      oauth2:
        jwt:
          signing-key: your-valid-signing-key
    
  • 查看AuthorizationServer.class中的jwtAccessTokenConverter方法,确认设置签名密钥的代码没有传入空值,示例:
    @Bean
    public JwtAccessTokenConverter jwtAccessTokenConverter() {
        JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
        // 此处密钥不能为null、空串或全空白串
        converter.setSigningKey("your-valid-signing-key");
        // 若从配置注入,需确保配置项能正确读取
        // converter.setSigningKey(jwtSigningKey);
        return converter;
    }
    
  • 确认数据库切换时没有误切换到缺少JWT配置的环境(比如多环境配置下的application-dev.yml/application-prod.yml)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:55:18