gpt4 book ai didi

spring - 从 Spring Security 中的 Session 获取用户详细信息

转载 作者:行者123 更新时间:2023-12-04 06:39:49 27 4
gpt4 key购买 nike

我是 Spring MVC 和 Spring Security 的新手。我已经使用 Spring security 和 MVC 执行了登录和注册功能。我找不到任何 session 管理的方法。

我想访问所有页面上的一些用户详细信息,例如(电子邮件、姓名、ID、角色等)。
我想将这些保存到 session 对象,以便我可以在任何页面上获取这些。

我在 Spring 的 session 中获得以下方式

Authentication auth = SecurityContextHolder.getContext().getAuthentication(); 
auth.getPrincipal();

但是从这个返回的对象我只能得到用户名和密码的详细信息。

但我需要访问该用户的更多详细信息。
  • 有没有办法通过将其保存到 session 并在jsp页面上获取来做到这一点?
  • 或者 Spring 有没有OOTB的方式来完成这项工作?

  • 请帮我解决这个问题。
    提前致谢。

    我想让我的模型类对象从 SecurityContextHolder.getContext().getAuthentication().getDetails(); 返回为此,我需要配置。

    问候,
    普拉纳夫

    最佳答案

    你需要让你的模型类实现 UserDetails界面

    class MyUserModel implements UserDetails {
    //All fields and setter/getters

    //All interface methods implementation
    }

    然后在你的 Spring Controller 中你可以这样做:
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    Object myUser = (auth != null) ? auth.getPrincipal() : null;

    if (myUser instanceof MyUserModel) {
    MyUserModel user = (MyUserModel) myUser;
    //get details from model object
    }

    关于spring - 从 Spring Security 中的 Session 获取用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17827003/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com