我想在登录后存储用户信息并在每个页面上显示我的登录名和用户名(使用jsp)。我如何在我的jsp视图中访问会话bean,以存储登录用户的信息?春季安全。在每个页面上显示用户名
4
A
回答
10
这个标签允许访问存储在 安全上下文当前 认证对象。它直接在 JSP中呈现对象的 属性。因此,举例来说,如果认证的主要 属性是Spring Security的 的UserDetails的 对象实例,然后使用 <秒:认证 属性=“principal.username”/>将 呈现当前用户的名称。
当然,它是没有必要使用 JSP标签这种东西和 有些人喜欢保持尽可能少 逻辑尽可能在视图中。您可以 访问在 你的MVC控制器的认证对象(通过调用 SecurityContextHolder.getContext()。getAuthentication()) 和直接的数据添加到您的 模型由视图渲染。
1
这是与When using Spring Security, what is the proper way to obtain current username (i.e. SecurityContext) information in a bean?近似重复。 Spring认可的方法是
final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName();
但链接的讨论有其他选择。
3
我假设你正在使用弹簧安全。后成功登录把UserDetails对象中,像这样的会议(这通常是控制器,其中,如果登录为全成,你会向前)
Object principal = SecurityContextHolder.getContext()
.getAuthentication().getPrincipal();
HttpSession session = request.getSession(true); //create a new session
// put the UserDetails object here.
session.setAttribute("userDetails", principal);
在你的JSP可以访问UserDetails对象,像这样:
<span class="message">Welcome ${userDetails.username}</span>
相关问题
- 1. 春季安全只显示登录页面的页眉
- 2. 春季安全不显示相应页面
- 3. 春季安全登录页面?
- 4. 强制用户在春季安全
- 5. 春季安全显示访问被拒绝的有效用户
- 6. 春季安全
- 7. 春季安全:显示错误页面403,而不是登录表单页面非认证用户
- 8. 春季安全用户通过用户名查询与id_user
- 9. 春季安全当前用户线程
- 10. 春季安全到用户JPA连接
- 11. 春季安全检查用户有RoleGroup
- 12. 春季安全:JDBC用户查询,PreparedStatementCallback
- 13. 春季安全用户请求登录
- 14. 春季安全标签在错误页面中不起作用
- 15. AccessDeniedException;春季安全
- 16. 春季安全badcredentials
- 17. Vaadin春季安全
- 18. BCryptPasswordEncoder春季安全
- 19. 春季3.5安全
- 20. 从春季安全
- 21. 春季安全春季启动4.x
- 22. 安全注释在春季安全
- 23. 如何在春季安全
- 24. 春季安全用俄语用户名的UTF-8 codpage
- 25. 如何检查每个请求用户身份在春季安全
- 26. 春季安全 - 允许匿名访问
- 27. 春季安全允许替代用户名
- 28. 春季安全:如何检索用户名到accessDeniedPage?
- 29. Grails的春季安全插件 - 用户名逃避问题
- 30. 春季安全来拦截拦截后恢复用户名