feat(sso): strip owner prefix in roleKey; expose /sso/casdoor/config; casdoor env passthrough
CodeQL Advanced / Analyze (actions) (push) Canceled after 0s
CodeQL Advanced / Analyze (java-kotlin) (push) Canceled after 0s
CodeQL Advanced / Analyze (javascript-typescript) (push) Canceled after 0s
CodeQL Advanced / Analyze (python) (push) Canceled after 0s
Docker Image Build & Push / manifest (push) Canceled after 0s
Docker Image Build & Push / manifest (push) Canceled after 0s
Docker Image Build & Push / build-and-push-arm (push) Canceled after 0s
Docker Image Build & Push / build-and-push-amd (push) Canceled after 0s
Docker Image Build & Push / build-and-push-arm (push) Canceled after 0s
Docker Image Build & Push / build-and-push-amd (push) Canceled after 0s
Frontend Docker Image CI / Build and Push Frontend Docker Image (push) Canceled after 0s
Gateway Docker Image CI / Build and Push Gateway Docker Image (push) Canceled after 0s
CodeQL Advanced / Analyze (actions) (push) Canceled after 0s
CodeQL Advanced / Analyze (java-kotlin) (push) Canceled after 0s
CodeQL Advanced / Analyze (javascript-typescript) (push) Canceled after 0s
CodeQL Advanced / Analyze (python) (push) Canceled after 0s
Docker Image Build & Push / manifest (push) Canceled after 0s
Docker Image Build & Push / manifest (push) Canceled after 0s
Docker Image Build & Push / build-and-push-arm (push) Canceled after 0s
Docker Image Build & Push / build-and-push-amd (push) Canceled after 0s
Docker Image Build & Push / build-and-push-arm (push) Canceled after 0s
Docker Image Build & Push / build-and-push-amd (push) Canceled after 0s
Frontend Docker Image CI / Build and Push Frontend Docker Image (push) Canceled after 0s
Gateway Docker Image CI / Build and Push Gateway Docker Image (push) Canceled after 0s
- RoleResolver.roleKey 取组名最后一段再匹配前缀,兼容 Casdoor user.groups 的 owner/name 全 ID - 前端 nginx 增加精确 location /sso/casdoor/config 转发网关 - docker-compose 网关服务透传 DEEPDATA_CASDOOR_* 环境变量(Spring relaxed binding)
This commit is contained in:
@@ -79,12 +79,19 @@ public class RoleResolver {
|
||||
/**
|
||||
* 组名 → 角色键:命中前缀返回后缀小写(如 deepdata-admin → admin),否则 null。
|
||||
* 前缀为空时按整名小写匹配(兼容 group-prefix 留空的自定义组名)。
|
||||
*
|
||||
* <p>Casdoor 的 user.groups 存的是 {@code owner/name} 全 ID(如 {@code built-in/deepdata-admin}),
|
||||
* 开启 useGroupPathInToken 时更可能是多级组路径;统一取最后一段作为组名再匹配。
|
||||
*/
|
||||
private String roleKey(String group, String prefix) {
|
||||
if (group == null || group.isBlank()) {
|
||||
return null;
|
||||
}
|
||||
String g = group.trim();
|
||||
int slash = g.lastIndexOf('/');
|
||||
if (slash >= 0) {
|
||||
g = g.substring(slash + 1);
|
||||
}
|
||||
if (prefix.isEmpty()) {
|
||||
return g.toLowerCase(Locale.ROOT);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user