使用keycloak rest admin api获取给定的部分url路径或基于正则表达式的资源

时间:2019-11-13 06:02:41

标签: rest api authorization keycloak

是否可以使用rest admin api获取给定部分URL的资源ID?

下面是我称为的端点-http://localhost:8180/auth/realms/quickstart-serv-springboot/authz/protection/resource_set?uri=/wb/customer以获取资源ID。

我想知道是否可以在uri查询字符串中传递通配符,以便它返回资源ID。例如-http://localhost:8180/auth/realms/quickstart-serv-springboot/authz/protection/resource_set?uri=/wb/customer/*http://localhost:8180/auth/realms/quickstart-serv-springboot/authz/protection/resource_set?uri=/wb/cust*或提供正则表达式模式以获取匹配的资源ID。

Thx

1 个答案:

答案 0 :(得分:1)

从源代码来看,它似乎可以通过以下方式工作:

  1. 第一个Keycloak试图找到完全匹配的
  2. 然后,如果找不到匹配项,并且有参数“ matchingUri = true”,它将尝试通过模式匹配来查找资源。

我没有检查,但建议向您的查询中添加“ matchingUri = true”,然后重试。

还要注意,不支持复杂的模式。 Keycloak Documentation说:

Currently a very basic logic for path matching is supported. Examples of valid paths are:
Wildcards: /*
Suffix: /*.html
Sub-paths: /path/*
Path parameters: /resource/{id}
Exact match: /resource
Patterns: /{version}/resource, /api/{version}/resource, /api/{version}/resource/*