ACCESS:如何解决在ACCESS配置中设置“max-expiry”值后“Failed to generate token”的错误

伊诺崔
2023-01-22十一10

主题:

如何解决在7.28.0以下人工版本的访问配置中配置“max-expiry”值时的错误。

影响版本:7.28.0以下的人工版本

描述

生成Access Token时,默认有效期为31536000秒(365天)。参数中的“default-expiry”值可以修改默认的过期时间访问配置文件($ JFROG_HOME / artifactory / var / etc /访问/ access.config.import.yml)。

要禁止为非管理员用户生成不可过期的令牌,并限制最大过期时间,可以配置“max-expiry”值。

例如,

令牌:
Default-expiry: 20000 //如果没有定义,则使用默认过期值(31536000s)
Max -expiry: 30000 //将不允许创建不可过期的令牌,并将令牌的最大过期时间限制为设定值。定义时必须遵循' max-expiry ' >= ' default- expiry '。

但是,在7.28.0以下的Artifactory版本中,上述更改可能会导致以下问题。

对象创建新令牌时用户配置文件页面,他们可能会遇到以下错误,提示“未能生成令牌”消息。

用户添加图片

即使使用REST API调用创建令牌也会失败,并显示以下消息:

curl -H "Authorization: Bearer eyJ2ZXI…Lxg3ox5KMgQ" -XPOST http://localhost:8082/access/api/v1/tokens -H "Content-Type: application/json" -d " {"username":"tuser"} "

"error": "invalid_request",
"error_description": "禁用创建不可过期令牌。"请求过期=null,默认过期=20000,最大过期=30000"


         

决议

要解决此问题,请将Artifactory升级到7.28.0及以上版本。您可以下载Artifactory的最新版本在这里

使用Artifactory的最新版本,我们可以从User Profile页面生成令牌。

用户添加图片

同样通过REST API调用,我们可以为用户生成令牌。

curl -H“授权:承载eyJ2ZX…n5zNA579vtw" -XPOST http://localhost:8082/access/api/v1/tokens -H "Content-Type: application/json" -d '{"username":"tuser"} "

{
"token_id": "83a9001c-5009-42ca-91a3-5ebd34c44c5f",
"access_token": "eyJ2Z…dnOBw",
"expires_in": 20000,
"scope": "applied-permissions/user",
"token_type": "Bearer"
}