我按照链接中的步骤(https://github.com/apereo/cas-overlay-template)部署Apereo CAS。
测试环境:
CAS 版本:7.0.0-SNAPSHOT
中科院分院:硕士
CAS 构建日期/时间:2022-10-05T13:10:26Z
Spring Boot版本:2.7.4
春季版本:5.3.23
Java版本:17.0.4.1
操作系统架构:amd64
操作系统名称:Linux
操作系统版本:3.10.0-1160.62.1.el7.x86_64
操作系统日期/时间:2022-10-06T08:58:17.575986031
操作系统临时目录:/tmp
Apache Tomcat 版本:Apache Tomcat/9.0.67
运行以下命令后,我可以访问CAS主页(https://xxx.xxx.xxx.xxx:8443/cas/login)。
./gradlew clean build
./gradlew createKeystore
./gradlew run
但是我收到错误“CAS 无法处理此请求:“500:内部服务器错误”。 在我启动CAS的终端中,错误消息如下:
错误 [org.apereo.cas.web.flow.executor.EncryptedTranscoder] - java.security.InvalidAlgorithmParameterException:AlgorithmParameterSpec 不是 GCMParameterSpec
未检查.java:lambda$static$0:61
Unchecked.java:lambda$supplier$38:1698
FunctionUtils.java:doUnchecked:370
我通过搜索找不到合适的解决方案,所以请帮忙。 谢谢。
切换到 Apereo CAS 版本 6.6 和 Java 11 即可工作。
java --version
openjdk 11.0.16.1 2022-08-12 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.16.1.1-1.el7_9) (build 11.0.16.1+1-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.16.1.1-1.el7_9) (build 11.0.16.1+1-LTS, mixed mode, sharing)
git checkout 6.6
./gradlew clean build
./gradlew createKeystore
./gradlew run
一种解决方法是设置
cas.webflow.crypto.enabled=false
,但这样做并不理想。
我已经完美解决这个问题了。问题是你的cas实际使用的jdk版本和通过
java --version
查看的版本不一样。只需要检查cas启动日志中的jdk版本是否相同即可
这是一个错误。经过一番调试后我得到了这个
cas.webflow.crypto.encryption.keySize=32
但我不知道提交拉取请求