Java 在jsp标头中为经过身份验证的用户显示用户全名和其他字段

Java 在jsp标头中为经过身份验证的用户显示用户全名和其他字段,java,spring-mvc,spring-security,Java,Spring Mvc,Spring Security,我想实现的是,在标题的底部,我想显示一些关于经过身份验证的用户的字段 我希望能够获得的字段是该用户的ID、位置和全名 我不确定如何着手解决这个问题 提前感谢。我上次处理Spring Security已经有一段时间了,但我还是从一个旧项目中找到了这个: public static Object getPrincipal() { Authentication auth = SecurityContextHolder.getContext().getAuthentication();

我想实现的是,在标题的底部,我想显示一些关于经过身份验证的用户的字段

我希望能够获得的字段是该用户的ID、位置和全名

我不确定如何着手解决这个问题


提前感谢。

我上次处理Spring Security已经有一段时间了,但我还是从一个旧项目中找到了这个:

public static Object getPrincipal() 
{
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    return auth == null ? null : auth.getPrincipal();
}
我可能错了,但我认为它返回的“主体”是用户登录时UserDetailsService实现返回的对象(可能是UserDetails实现)。因此,您可以通过此方法获取用户信息,然后将其传递到jsp页面进行呈现。希望这有帮助

编辑:查看Spring安全文档,似乎有一个可用于jsp的文件,因此您可以直接从Spring安全获取信息:

此标记允许访问存储在中的当前身份验证对象 安全上下文。它直接在中渲染对象的属性 JSP。例如,如果 身份验证是Spring Security的UserDetails对象的一个实例, 然后使用
将 呈现当前用户的名称


我使用的是Maven,所以我必须添加taglibs库,并将其添加到pom.xml中

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>3.1.3.RELEASE</version>
</dependency>

org.springframework.security
spring安全标记库
3.1.3.1发布
然后在我的jsp中添加:

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

以及:


<sec:authentication property="principal" />