gpt4 book ai didi

java - 使用 keycloak 在 servlet 应用程序中获取用户角色

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:05 26 4
gpt4 key购买 nike

我正在使用 keycloak 来保护我的 servlet。我必须添加新角色并将它们动态分配给用户。它使用管理 API 在 keycloak 中工作,但我无法弄清楚如何在 servlet 中获取特定用户的角色。

我试过这个解决方案,但我得到的是空集:

protected void doPost(HttpServletRequest request, HttpServletResponse response) {
...

KeycloakSecurityContext context = (KeycloakSecurityContext)request.getAttribute(KeycloakSecurityContext.class.getName());
Set<String> roles = AdapterUtils.getRolesFromSecurityContext((RefreshableKeycloakSecurityContext) context);
...
}

最佳答案

@Shiva 的回答对我不起作用。 getRealmAccess() 返回空值。我们必须使用以下内容:

KeycloakPrincipal principal = (KeycloakPrincipal) request.getUserPrincipal();

String clientId = "securesite";
principal.getKeycloakSecurityContext().getToken().getResourceAccess(clientId).getRoles();

关于java - 使用 keycloak 在 servlet 应用程序中获取用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29014894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com