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

Apereo CAS登录报java.security.InvalidAlgorithmParameterException错误求助

解决CAS登录时500错误(AlgorithmParameterSpec not of GCMParameterSpec)

问题分析

该错误是因为CAS的加密转码器处理请求时,预期接收GCMParameterSpec类型的算法参数,但实际传入了不匹配的参数类型。结合你的环境(Java 17 + CAS 7.0.0-SNAPSHOT),核心原因是默认加密配置与JDK 17的适配性问题,或密钥库生成不符合GCM算法要求。

解决方案

1. 调整CAS加密配置

在CAS配置文件(src/main/resources/application.properties或application.yml)中明确指定加密算法参数:

  • 若使用properties格式:
cas.webflow.executor.encoding.alg=AES/GCM/NoPadding
cas.webflow.executor.encoding.spec=GCMParameterSpec
cas.webflow.executor.encoding.key-size=256
  • 若使用YAML格式:
cas:
  webflow:
    executor:
      encoding:
        alg: AES/GCM/NoPadding
        spec: GCMParameterSpec
        key-size: 256

2. 重新生成适配GCM的密钥库

默认createKeystore任务生成的密钥可能不兼容GCM算法,手动生成符合要求的密钥库:

keytool -genkeypair -alias cas -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore thekeystore -validity 3650

生成时按提示输入密钥库密码、密钥密码等信息,之后替换CAS默认密钥库文件,并在配置文件中更新路径:

cas.server.ssl.key-store=file:/path/to/your/thekeystore
cas.server.ssl.key-store-password=你的密钥库密码
cas.server.ssl.key-password=你的密钥密码

3. 确认JDK无限制加密策略

检查$JAVA_HOME/jre/lib/security/java.security文件,确保存在以下配置:

crypto.policy=unlimited

若缺失则添加该行,保存后重启CAS。

4. 重新构建启动CAS

执行命令重新部署:

./gradlew clean build
./gradlew run

验证

重新访问CAS登录页面尝试登录,确认500错误是否消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:05:34