如何以非管理员用户身份调用 JFrog Artifactory 用户插件
How to call an JFrog Artifactory user plugin as non-admin user
我正在编写我的第一个 Artifactory 用户插件,它应该可以通过 REST 调用。这是实现的一部分:
executions {
repoInfo(httpMethod: 'GET') { params ->
....
我能以admin用户成功调用插件:
$ curl -u admin:XXX -X GET "http://localhost:8080/artifactory/api/plugins/execute/repoInfo"
但是当以另一个用户的身份调用它时,我在 return 中得到了 http return 代码 403:
curl -u test-user-1:XXX -X GET "http://localhost:8080/artifactory/api/plugins/execute/repoInfo"{
"errors" : [ {
"status" : 403,
"message" : "You are not permitted to execute 'repoInfo'."
}
]
}
我的问题是我需要为 test-user-1 分配什么权限才能访问我的插件?
提前感谢您的回答。
这在 docs:
中解释得有些不清楚
/**
* An execution definition.
* The first value is a unique name for the execution.
*
* ...
*
* Plugin info annotation parameters:
* ...
* users (java.util.Set<java.lang.String>) - Users permitted to query this plugin for information or invoke it.
* groups (java.util.Set<java.lang.String>) - Groups permitted to query this plugin for information or invoke it.
*
* ...
*/
myExecution(version:version, description:description, httpMethod: 'GET', users:[], groups:[], params:[:]) { params ->
}
创建执行插件时可以传递许多可选参数,其中两个是 users
和 groups
。如果这些被省略或为空,则只有管理员用户可以执行插件。如果您希望非管理员用户执行插件,您需要将用户名添加到 users
列表或将组名添加到 groups
列表。例如:
executions {
repoInfo(httpMethod: 'GET', users: ['tom', 'bill'], groups: ['dev-team']) { params ->
// ...
}
}
在这种情况下,可以使用此插件的人是 tom
、bill
、dev-team
组中的任何人以及任何具有管理员权限的人。
有时让任何人都可以使用的插件是有意义的。为此,您通常会执行以下操作:
executions {
publicRepoInfo(httpMethod: 'GET', groups: ['readers']) { params ->
// ...
}
}
Artifactory 安装了一个名为 readers
的预先存在的组,该组会自动添加到所有新用户并授予他们基本的读取权限,因此所有登录用户都应该是该组的一部分。所有未登录的用户都被视为作为特殊 anonymous
用户登录,该用户也是 readers
组的一部分。
我正在编写我的第一个 Artifactory 用户插件,它应该可以通过 REST 调用。这是实现的一部分:
executions {
repoInfo(httpMethod: 'GET') { params ->
....
我能以admin用户成功调用插件:
$ curl -u admin:XXX -X GET "http://localhost:8080/artifactory/api/plugins/execute/repoInfo"
但是当以另一个用户的身份调用它时,我在 return 中得到了 http return 代码 403:
curl -u test-user-1:XXX -X GET "http://localhost:8080/artifactory/api/plugins/execute/repoInfo"{
"errors" : [ {
"status" : 403,
"message" : "You are not permitted to execute 'repoInfo'."
}
]
}
我的问题是我需要为 test-user-1 分配什么权限才能访问我的插件?
提前感谢您的回答。
这在 docs:
中解释得有些不清楚 /**
* An execution definition.
* The first value is a unique name for the execution.
*
* ...
*
* Plugin info annotation parameters:
* ...
* users (java.util.Set<java.lang.String>) - Users permitted to query this plugin for information or invoke it.
* groups (java.util.Set<java.lang.String>) - Groups permitted to query this plugin for information or invoke it.
*
* ...
*/
myExecution(version:version, description:description, httpMethod: 'GET', users:[], groups:[], params:[:]) { params ->
}
创建执行插件时可以传递许多可选参数,其中两个是 users
和 groups
。如果这些被省略或为空,则只有管理员用户可以执行插件。如果您希望非管理员用户执行插件,您需要将用户名添加到 users
列表或将组名添加到 groups
列表。例如:
executions {
repoInfo(httpMethod: 'GET', users: ['tom', 'bill'], groups: ['dev-team']) { params ->
// ...
}
}
在这种情况下,可以使用此插件的人是 tom
、bill
、dev-team
组中的任何人以及任何具有管理员权限的人。
有时让任何人都可以使用的插件是有意义的。为此,您通常会执行以下操作:
executions {
publicRepoInfo(httpMethod: 'GET', groups: ['readers']) { params ->
// ...
}
}
Artifactory 安装了一个名为 readers
的预先存在的组,该组会自动添加到所有新用户并授予他们基本的读取权限,因此所有登录用户都应该是该组的一部分。所有未登录的用户都被视为作为特殊 anonymous
用户登录,该用户也是 readers
组的一部分。