簡體   English   中英

為什么 spring 引導對於當前登錄的用戶返回空值?

[英]Why is spring boot returning empty for currently logged in user?

我正在使用 spring 引導版本 2.5.6,並嘗試獲取當前登錄的用戶,以便我可以使用它來獲取有關用戶的其他詳細信息以創建他們的配置文件。

我使用以下代碼查找用戶,但它在日志中返回空。 所有 inte.net 搜索都表明這是獲取當前登錄用戶的正確方法。

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (!(authentication instanceof AnonymousAuthenticationToken)){
    currentUserName = authentication.getName();
    user = userRepository.findByTag(currentUserName);
    log.info("User is logged in "+ user);
}

你必須添加 requestContextFilter。 如果您使用的是 web.xml,請嘗試:

  <filter>
        <description>
        </description>
        <display-name>RequestContextFilter</display-name>
        <filter-name>RequestContextFilter</filter-name>
        <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>RequestContextFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

使用@AuthenticationPrincipal 或 Authetication 的另一種選擇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM