如何为Keycloak配置minTimeBetweenRequests参数?
正确配置Keycloak
minTimeBetweenRequests 参数的方法 这个参数不属于Keycloak的全局CLI选项,而是Infinispan公钥存储提供者的SPI配置项,直接通过--minTimeBetweenRequests传入会触发未识别错误,以下是两种可行的配置方式:
方式一:通过JVM系统属性传递
在Docker容器中,将参数以系统属性的形式追加到JAVA_OPTS环境变量里,格式为-Dkeycloak.public-key-storage.infinispan.minTimeBetweenRequests=0。
修改你的Terraform配置如下:
resource "docker_container" "keycloak" { image = "keycloak-kms-storage-local" name = local.container_name networks_advanced { name = var.network_name } environment = { JAVA_OPTS = "-Xms64m -Xmx128m -Djava.net.preferIPv4Stack=true -javaagent:/jacocoagent.jar=output=tcpserver,address=*,includes=com.pkb.*:org.tolven.*:config.* -agentlib:jdwp=transport=dt_socket,address=0.0.0.0:5005,server=y,suspend=n -Dkeycloak.public-key-storage.infinispan.minTimeBetweenRequests=0" } command = [ "start", "--db-url=jdbc:postgresql://${var.keycloak_db_host}:${var.keycloak_db_port}/${var.keycloak_db_database_name}?sslmode=disable", "--db-username=${var.keycloak_db_database_user}", "--db-password=${var.keycloak_db_database_password}", "--http-enabled=true", "--hostname=${local.container_name}", "--hostname-port=8080", "--hostname-strict=false", "--hostname-strict-https=false", "--log-level=DEBUG", ] }
注意:如果原有环境已设置
JAVA_OPTS,需确保将新的系统属性追加进去,不要覆盖原有配置内容。
方式二:通过Keycloak配置文件设置
若使用的是Quarkus版Keycloak(17及以上版本),可创建application.properties配置文件,添加以下配置项:
keycloak.public-key-storage.infinispan.min-time-between-requests=0
然后将该文件挂载到容器内的/opt/keycloak/conf目录(默认配置目录),修改Terraform的volumes字段:
resource "docker_container" "keycloak" { # 保留原有其他配置 volumes { host_path = "/本地路径/application.properties" container_path = "/opt/keycloak/conf/application.properties" } }
补充说明
- 你提到的
keycloak_server.json是Wildfly版Keycloak(16及更早版本)的配置文件,Quarkus版已不再使用,无需关注。 - 该参数默认值为10000毫秒(10秒),设置为0会取消请求间隔限制,需根据业务场景评估风险。
内容的提问来源于stack exchange,提问作者Raffles
相关产品推荐
相关产品推荐

