Я внедряю базовое приложение с Spring Boot 2 и Thymeleaf 3. Я добился того, чтобы заставить вход / выход работать, со слоем безопасности, требующим входа на определенных страницах.
Я собираю очень простой интерфейс и пытаюсь отобразить имя пользователя вошедшего в систему пользователя.
Мой фрагмент этого раздела:
<span class="user" sec:authorize="isAuthenticated()">
<div sec:authentication="name"></div>
<a th:href="@{/logout}">Logout</a>
</span>
Я также получаю ссылку «Выйти» вне зависимости от сценария, что, по-видимому, связано с установкой anonymousUser
authenticated=true
в объекте Authentication
.
Объект "Мой принцип" при входе в систему в точке запроса выглядит как ...
principal = {UsernamePasswordAuthenticationToken@10464} "org.springframework.security.authentication.UsernamePasswordAuthenticationToken@ffff4ca0: Principal: org.springframework.security.core.userdetails.User@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: admin; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null; Granted Authorities: admin"
principal = {User@11314} "org.springframework.security.core.userdetails.User@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: admin"
password = null
username = "admin"
authorities = {Collections$UnmodifiableSet@11320} size = 1
accountNonExpired = true
accountNonLocked = true
credentialsNonExpired = true
enabled = true
credentials = null
authorities = {Collections$UnmodifiableRandomAccessList@11315} size = 1
details = {WebAuthenticationDetails@11316} "org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null"
authenticated = true
Является ли очевидной причиной, по которой значение name
не работает? Я также пробовал username
, principle.username
и user
только на основе того, что я исследовал и попробовал прагматично, но все же я просто получаю это в DOM:
Буду признателен за любую помощь.
У меня thymeleaf-extras-springsecurity4
в моих зависимостях и xmlns:sec="http://www.thymeleaf.org/extras/spring-security"
в моем шаблоне <html>
tag