Показывать информацию о пользователях в заголовке, используя Spring - PullRequest
0 голосов
/ 27 августа 2018

Я работаю с Spring и Thymeleaf , я пытаюсь показать информацию о пользователе (имя пользователя) в заголовке и выбросить все страницы.

header.html

<div th:fragment="logout" class="logout" sec:authorize="isAuthenticated()">     
        Logged in user: <span sec:authentication="name"></span> |                   
        Roles: <span sec:authentication="principal.authorities"></span>             
        <div>
            <form action="#" th:action="@{/logout}" method="post">                  
                <input type="submit" value="Logout" />
            </form>
        </div>
    </div>

Но это ничего не показывает

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Решение этой проблемы:

ШАГ 1: Создание CommunAdviceController

public class CommunAdviceController {

@Autowired
UtilisateurRepository utilisateurRepository;

@ModelAttribute("nomEtPrenom")
public String nomEtPrenomUtilisateur() {
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    Utilisateur util = utilisateurRepository.findByEmail(authentication.getName()) ;    
    if( util != null) {         
        return util.getUsername();
    }else {
    return "Anonyme";
    }
}

}

Обратите внимание, что в моем случае я получаю почтовый адрес пользователя как getUsername

ШАГ 2: Вызвать метод в HTML

<a href ="#" th:text="${nomEtPrenom}" class="nav-link dropdown-toggle"  id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">      

И работа сделана.

Надеюсь, что это кому-нибудь поможет.

0 голосов
/ 27 августа 2018

Добавьте зависимость к соответствующей версии org.thymeleaf.extras:thymeleaf-extras-springsecurity4.

Затем добавьте xmlns к вам html

<html xmlns:th="http://www.thymeleaf.org"
            xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">

, и вы можете сделать

<div th:text="${#authentication.name}">
    The value of the "name" property of the authentication object should appear here.
</div>

Подробнее о Spring Security Integration модуле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...