如何使用Keycloak在Spring Boot中获取当前登录用户?

柬埔寨:

我使用Keycloak在Spring Boot中保护了一个应用程序,并且试图获取当前用户的登录名。

按照这个问题的答案,我尝试了:

public Optional<String> getCurrentUserLogin() {

            SecurityContext securityContext = SecurityContextHolder.getContext();

            return Optional.ofNullable(securityContext.getAuthentication())
                    .map(authentication -> {
                        if (authentication.getPrincipal() instanceof KeycloakPrincipal) {

                            KeycloakPrincipal<KeycloakSecurityContext> kp = (KeycloakPrincipal<KeycloakSecurityContext>)  authentication.getPrincipal();

                            return kp.getKeycloakSecurityContext().getIdToken().getPreferredUsername();
                        } 

                        return null;
                    });
    }

但没有运气。它向我发出有关未经检查的演员表的警告,并且不起作用!

如何让用户登录Keycloak?

柬埔寨:

KeycloakPrincipal使用类,给出警告

原始使用参数化类“ KeycloakPrincipal”

但是有效!

[...]
if (authentication.getPrincipal() instanceof KeycloakPrincipal) {
    KeycloakPrincipal principal = (KeycloakPrincipal) authentication.getPrincipal();
    return principal.getName();
[...]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取服务中的当前登录用户

如何在Django中获取当前登录用户的用户ID?

如何显示使用Spring Boot Thymeleaf的当前登录用户?

在Spring + Angle中获取当前登录的用户

如何获取MVC5中当前登录用户的特定字段?

使用Spring Security获取服务层中的登录用户

如何在QWeb Report Odo中获取当前的登录用户名

如何在Windows中获取登录用户的SID

如何使用Spring Security和Thymeleaf获取当前登录用户的ID

如何在Vue组件中获取当前登录用户的用户对象

如何获取当前登录用户正在关注的用户帖子

XMPPFramework-如何获取当前登录用户的显示名称

如何获取当前Windows登录用户的用户名?

Liferay:如何在Servlet中获取当前的登录用户详细信息?

如何显示当前登录用户的数据

如何从所有登录用户身份列表中获取当前登录请求的userIdentity?

如何在ViewComponent Asp.Net Core中获取当前的登录用户

如何获取当前登录用户authservice的用户名

如何在 UWP App 中获取当前登录用户的用户名或 ID

如何显示当前登录用户的数据

如何获取当前登录用户

如何在 PowerShell Core 中获取当前登录用户的 Active Directory 电子邮件地址?

如何获取当前登录用户的user_id

如何使用自定义抽象用户在 django 中获取当前登录用户

如何在laravel中显示当前登录用户的数据

如何获取当前Windows登录用户的全名而不是域名

如何获取当前登录用户?Django 模型

如何在vuejs中获取登录用户

无法在 Spring Boot 中从 SecurityContextHolder 设置登录用户