首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在freemarker模板中从当前会话中获取当前已验证的用户

在FreeMarker模板中,您可以使用内置的Session对象来访问当前会话

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>Welcome!</title>
</head>
<body>
    <h1>Welcome, ${session.user.name}!</h1>
</body>
</html>

在这个例子中,我们直接使用了${session.user.name}来获取当前已验证用户的名称。请注意,您可能需要根据实际情况调整属性名称,例如,如果您的用户对象存储在名为currentUser的属性中,那么您需要使用${session.currentUser.name}

如果您在Java代码中使用了Spring Security,您可以通过以下方式在FreeMarker模板中获取当前已验证的用户:

  1. 首先,确保在Spring配置中启用了Spring Security支持。
  2. 然后,在FreeMarker配置中,添加以下内容以将Spring Security的Principal对象暴露给FreeMarker模板:
代码语言:javascript
复制
@Bean
public FreeMarkerConfigurer freemarkerConfig() {
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
    configurer.setTemplateLoaderPath("/WEB-INF/views/");
    Map<String, Object> sharedVariables = new HashMap<>();
    sharedVariables.put("principal", (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal());
    configurer.setFreemarkerVariables(sharedVariables);
    return configurer;
}
  1. 最后,在FreeMarker模板中,您可以使用${principal}来访问当前已验证的用户对象。例如,要显示用户的名称,可以使用${principal.username}
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>Welcome!</title>
</head>
<body>
    <h1>Welcome, ${principal.username}!</h1>
</body>
</html>

请根据您的实际情况调整代码示例。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券