Я использую Spring MVC + Spring Security в своем проекте. И мне нужно получить пользовательский объект после аутентификации пользователя и его сеанса. Например, для того, чтобы напечатать его имя на моей странице приветствия как: Welcome, ${user.firstName}!
или получить его список компаний на другую страницу:Получить аутентифицированный пользовательский объект Spring MVC
<c:forEach items="${user.userCompanies}" var="company">
${company.name}
</c:forEach>
и т.д. могли бы вы помочь мне решить эту проблему?
Спасибо. Но насколько я знаю, имя main.username дает мне только поля класса UserDetails, такие как имя пользователя, пароль. Как насчет пользовательских полей моего объекта (например, userCompanies и т. Д.)? – sidlejinks
Я думаю, что вы можете получить доступ к любому свойству своего пользовательского объекта 'UserDetails', поскольку реализация [tag] (https://github.com/SpringSource/spring-security/blob/master/taglibs/src/main/java/org /springframework/security/taglibs/authz/AuthenticationTag.java#L100-L101) использует отражение, чтобы получить его. Я думаю, что 'princip.companies' должен работать. – zagyi
Я использовал ' ' на моем jsp и получил 'Invalid property 'main.firstName' из bean-класса [org.springframework.security.authentication.UsernamePasswordAuthenticationToken]:' exception :( –
sidlejinks