1.4. 配置参考


1.4.1. Quarkus 配置

lock 在构建时修复的配置属性 - 所有其他配置属性在运行时可覆盖

配置属性

类型

default

lock quarkus.smallrye-jwt.enabled

MP-JWT 配置对象

环境变量: QUARKUS_SMALLRYE_JWT_ENABLED

布尔值

true

lock quarkus.smallrye-jwt.rsa-sig-provider

支持 SHA256withRSA 签名的 java.security.Provider 的名称

环境变量: QUARKUS_SMALLRYE_JWT_RSA_SIG_PROVIDER

string

SunRSASign

quarkus.smallrye-jwt.blocking-authentication

如果获取远程密钥是一个耗时的操作,则启用此属性。如果您使用本地密钥,请不要启用它。

环境变量: QUARKUS_SMALLRYE_JWT_BLOCKING_AUTHENTICATION

布尔值

false

quarkus.smallrye-jwt.silent

始终创建 HTTP 401 质询,即使对于不包含身份验证凭据的请求。当需要身份验证时,JWT 身份验证机制将返回 HTTP 401。但是,如果它与其中一个交互式身份验证机制一起使用,那么可能不希望将 HTTP 401 返回到从浏览器访问应用的用户。如果您希望请求 JWT 身份验证机制在这样的情形中不会产生挑战,方法是将此属性设置为"true"。

环境变量: QUARKUS_SMALLRYE_JWT_SILENT

布尔值

false

1.4.2. MicroProfile JWT 配置

属性名称default描述

mp.jwt.verify.publickey

none

mp.jwt.verify.publickey 配置属性允许以字符串形式提供公钥文本。公钥从提供的字符串解析,按 支持的公钥格式部分定义的顺序

mp.jwt.verify.publickey.location

none

config 属性允许公钥的指定外部或内部位置。该值可以是相对路径或 URL。如果值指向基于 HTTPS 的 JWK 集,那么对于它以原生模式工作,则 quarkus.ssl.native 属性也必须设置为 true。如需了解更多详细信息,请参阅使用带有原生 Executables 的 SSL

mp.jwt.verify.publickey.algorithm

RS256

签名算法列表。将它设置为 ES256 以支持 Elliptic Curve 签名算法。

mp.jwt.decrypt.key.location

none

config 属性允许 Private Decryption Key 的指定外部或内部位置。

mp.jwt.decrypt.key.algorithm

RSA-OAEP,RSA-OAEP-256

解密算法列表。把它设置为 RSA-OAEP-256 以支持带有 SHA-256 的 RSA-OAEP。

mp.jwt.verify.issuer

none

config 属性指定服务器接受有效的 JWT 的 iss (issuer)声明的值。

mp.jwt.verify.audiences

none

以逗号分隔的令牌 声明 列表可能包含:

mp.jwt.verify.clock.skew

60

在令牌过期和年龄验证过程中使用的时钟偏移(以秒为单位)。如果当前时间在令牌到期时间后此属性指定的秒数内,则接受已过期令牌。默认值为 60 秒。

mp.jwt.verify.token.age

none

因为令牌 iat (在)时间后,必须未经过的秒数。

mp.jwt.token.header

授权

如果使用另一个标头(如 Cookie )传递令牌,则设置此属性。

mp.jwt.token.cookie

none

包含令牌的 Cookie 名称。只有 mp.jwt.token.header 设置为 Cookie 时,此属性才有效。

1.4.3. 其他 SmallRye JWT 配置

smallrye JWT 提供了更多属性,可用于自定义令牌处理:

属性名称default描述

smallrye.jwt.verify.secretkey

none

作为字符串提供的 secret 密钥。

smallrye.jwt.verify.key.location

NONE

验证密钥的位置,它可以指向公钥和机密密钥。机密密钥只能采用 JWK 格式。请注意,如果设置了此属性,则 'mp.jwt.verify.publickey.location' 会被忽略。

smallrye.jwt.verify.algorithm

 

签名算法.此属性应仅用于设置对称算法,如 HS256。它已被弃用,用于设置非对称算法,如 ES256- 使用 'mp.jwt.verify.publickey.algorithm'。

smallrye.jwt.verify.key-format

ANY

将此属性设置为特定的密钥格式,如 PEM_KEYPEM_CERTIFICATEJWKJWK_BASE64URL,以优化加载验证密钥的方式。

smallrye.jwt.verify.key-provider

DEFAULT

默认情况下,可以使用 PEM、JWK 或 JWK 密钥集从本地文件系统读取或根据 MicroProfile JWT 规范的要求从 URI 获取。将此属性设置为 AWS_ALB 以支持 AWS Application Load Balancer 验证密钥解析。

smallrye.jwt.verify.relax-key-validation

false

对验证密钥的验证 ; 将此属性设置为 true 允许公共 RSA 密钥长度小于 2048 位。

smallrye.jwt.verify.certificate-thumbprint

false

如果启用了此属性,签名的令牌必须包含 'x5t' 或 'x5t SerialS256' X509Certificate thumbprint 标头。验证密钥只能采用 JWK 或 PEM 证书密钥格式。JWK 密钥必须设置 'x5c'(Base64 编码的 X509Certificate)属性。

smallrye.jwt.token.header

授权

如果使用另一个标头(如 Cookie )传递令牌,则设置此属性。此属性已弃用 - 使用 'mp.jwt.token.header'。

smallrye.jwt.key-cache-size

100

密钥缓存大小。当密钥提供程序(如 AWS_ALB )配置了 smallrye.jwt.verify.key-provider=AWS_ALB 时,使用此属性和 smallrye.jwt.key-cache-time-to-live 控制密钥缓存。

smallrye.jwt.key-cache-time-to-live

10

密钥缓存条目时间(以分钟为单位)当密钥提供程序(如 AWS_ALB )配置了 smallrye.jwt.key- provider=AWS_ALB 时,使用此属性和 smallrye.jwt.key-cache- size 来控制密钥缓存,以动态解析密钥。

smallrye.jwt.token.cookie

none

包含令牌的 Cookie 名称。只有在 smallrye.jwt.token.header 设为 Cookie 时,此属性才有效。此属性已弃用 - 使用 mp.jwt.token.cookie

smallrye.jwt.always-check-authorization

false

即使将 smallrye.jwt.token.header 设置为 Cookie,但没有具有 smallrye.jwt.token.cookie 名称的 Cookie,也可以将此属性设置为 true

smallrye.jwt.token.schemes

bearer

包含替代单一或多个方案(如 DPoP )的以逗号分隔的列表。

smallrye.jwt.token.kid

none

键标识符。如果已设置,验证 JWK 密钥和每个 JWT 令牌必须具有匹配的 kid 标头。

smallrye.jwt.time-to-live

none

可以签发 JWT 以供使用的最大秒数。实际上,JWT 和当前发布的过期日期之间的差别不得超过这个值。将此属性设置为非正数值,调整令牌的要求,使其具有有效的"iat" (签发)声明。

smallrye.jwt.require.named-principal

true

如果应用程序依赖于 java.security.Principal 返回名称,则令牌必须设置 upnpreferred_usernamesub 声明。设置此属性会导致 SmallRye JWT 会在没有这些声明可用于可靠地处理非null Principal 名称时抛出异常。

smallrye.jwt.path.sub

none

包含主题名称的声明的路径。它从顶级 JSON 对象开始,并且可以包含多个片段,每个片段仅代表 JSON 对象名称,如 realms/subject。如果令牌没有 'sub' 声明,但在不同声明中设置主题,则可以使用此属性。对命名空间限定声明使用双引号。

smallrye.jwt.claims.sub

none

当当前令牌没有标准或自定义子声明可用时,此属性可以设置默认 声明值。如果未设置 upnpreferred_usernamesub 声明,则此属性可用于自定义 java.security.Principal 名称。

smallrye.jwt.path.groups

none

包含组的声明的路径。它从顶级 JSON 对象开始,可以包含多个片段,每个片段仅代表 JSON 对象名称,例如: realm/groups。如果令牌没有 'groups' 声明,但在不同声明中设置了组,则可以使用此属性。对命名空间限定声明使用双引号。

smallrye.jwt.groups-separator

space

分割字符串的分隔符可能包含多个组值。只有在 smallrye.jwt.path.groups 属性指向带有字符串值的自定义声明时,才会使用它。默认值为单个空格,因为标准 OAuth2 范围 声明可能包含空格分隔的序列。

smallrye.jwt.claims.groups

none

当当前令牌没有可用的标准或自定义组声明时,此属性可以设置默认 groups 声明值。

smallrye.jwt.jwks.refresh-interval

60

JWK 缓存刷新间隔(以分钟为单位)。除非 mp.jwt.verify.publickey.location 指向基于 HTTP 或 HTTPS URL 的 JWK 设置,且没有 HTTP Cache-Control 响应标头,且不会从 JWK HTTPS 端点返回带有正 max-age 参数值的 HTTP Cache-Control 响应标头。

smallrye.jwt.jwks.forced-refresh-interval

30

强制 JWK 缓存刷新间隔(以分钟为单位),用于限制强制刷新尝试的频率,因为缓存没有 JWK 密钥与当前令牌的 kid 属性匹配。除非 mp.jwt.verify.publickey.location 指向 HTTP 或基于 HTTPS URL 的 JWK 设置,否则它会被忽略。

smallrye.jwt.expiration.grace

0

过期宽限期(以秒为单位)。默认情况下,如果在令牌到期时间后当前时间不超过 1 分钟,则过期的令牌仍然被接受。此属性已弃用。使用 mp.jwt.verify.clock.skew 替代。

smallrye.jwt.verify.aud

none

以逗号分隔的令牌 声明 列表可能包含:此属性已弃用 - 使用 mp.jwt.verify.audiences

smallrye.jwt.required.claims

none

以逗号分隔的声明列表必须包含。

smallrye.jwt.decrypt.key.location

none

config 属性来指定 Private Decryption Key 的外部或内部位置。此属性已弃用 - 使用 mp.jwt.decrypt.key.location

smallrye.jwt.decrypt.algorithm

RSA_OAEP

解密算法.

smallrye.jwt.decrypt.key

none

作为字符串提供的解密密钥。

smallrye.jwt.token.decryption.kid

none

解密密钥标识符.如果设置了,则解密 JWK 密钥以及每个 JWT 令牌必须具有匹配的 kid 标头。

smallrye.jwt.client.tls.certificate.path

none

如果需要通过 HTTPS 获取密钥,可能需要配置 TLS 可信证书的路径。

smallrye.jwt.client.tls.trust-all

false

信任所有主机名。如果需要通过 HTTPS 获取密钥,并且此属性设置为 true,则所有主机名都默认是可信的。

smallrye.jwt.client.tls.hosts

none

组可信主机名。如果密钥必须通过 HTTPS 获取,并且 smallrye.jwt.client.tls.trust-all 被设置为 false,则此属性可用于配置可信主机名。

smallrye.jwt.http.proxy.host

none

HTTP 代理主机.

smallrye.jwt.http.proxy.port

80

HTTP 代理端口。

smallrye.jwt.keystore.type

JKS

如果 mp.jwt.verify.publickey.locationmp.jwt.decrypt.key.location 指向 KeyStore 文件,则此属性可用于自定义密钥存储类型。如果没有设置,则会检查文件名,以确定密钥类型,然后再默认为 JKS

smallrye.jwt.keystore.provider

 

如果 mp.jwt.verify.publickey.locationmp.jwt.decrypt.key.location 指向 KeyStore 文件,则此属性可用于自定义 KeyStore 供应商。

smallrye.jwt.keystore.password

 

密钥存储密码。如果 mp.jwt.verify.publickey.locationmp.jwt.decrypt.key.location,则必须设置此属性。

smallrye.jwt.keystore.verify.key.alias

 

如果 mp.jwt.verify.publickey.location 指向 KeyStore 文件,则必须设置此属性来识别从 KeyStore 中提取的公共验证密钥。

smallrye.jwt.keystore.decrypt.key.alias

 

如果 mp.jwt.decrypt.key.location 指向 KeyStore 文件,则必须设置此属性来识别私有解密密钥。

smallrye.jwt.keystore.decrypt.key.password

 

如果 KeyStore 中的私钥密码与 smallrye.jwt.keystore.passwordmp.jwt.decrypt.key.location 指向 KeyStore 文件时,可以设置此属性。

smallrye.jwt.resolve-remote-keys-at-startup

false

将此属性设置为 true,以在应用启动时解析远程密钥。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.