我是Spring MVC和Spring Security的新手。我已经使用Spring Security和MVC执行了登录和注册功能。我找不到任何会话管理的方法。
我想访问所有页面上的一些用户信息,如(电子邮件,姓名,id,角色等)。我想将这些保存到会话对象中,这样我就可以在任何页面上获取这些内容。
我在Spring的会议得到以下方式
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
auth.getPrincipal();
但是从这个返回的对象中,我只能得到用户名和密码的详细信息。
但我需要访问该用户的更多详细信息。
请帮助我找到解决方案。提前谢谢。
我想让我的模型类对象从SecurityContextHolder.getContext()返回。
问候,普拉纳夫
您可以使用它来获取User详细信息
(或具有您的自定义详细信息的任何实现)。
UserDetails userDetails = SecurityContextHolder.getContext().getAuthentication().getDetails();
如果没有可用的,您可以从UserDetailsService
加载用户详细信息。
在这两种情况下,我认为您必须将它们保存在会话范围bean中。
您需要使模型类实现用户详细信息接口
class MyUserModel implements UserDetails {
//All fields and setter/getters
//All interface methods implementation
}
然后在您的Spring控制器中,您可以这样做:
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
}
我有一个struts2应用程序。在我的应用程序中,我使用 这边走。 提前致谢
如何使用Keycloak restendpoint获取用户在Keycloak中的最后登录会话详细信息?
Amazon标识管理iam=Amazon标识管理客户端Builder.standard()。US_EAST_1)。 有人能告诉我怎么做吗? 我试图在下面的程序中列出一个用户的标签,但我得到了下面的错误:我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅维修文档。 公共类ListUserTags{ }
目前,我正在使用以下内容将用户登录到我的应用程序中。然而,我想使用一个角函数来实际执行登录。为此,我想创建一个Rest网络服务来进行身份验证,但是我在SO上看到的所有示例都使用我认为被贬低的用户。我还希望该服务返回有关用户的信息。 我要问的是如何将MyUserDetailsService更改为用作登录的restful服务,或者如何创建一个可用于登录的服务,该服务将在登录后返回用户对象。 这是我的a
我在网上搜索这个问题的解决方案,但没有找到任何有效的解决方案。我正在尝试设置基本的Spring Boot OAuth2授权提供程序和客户端。 我按照官方的Spring Boot指令,创建了Facebook和GitHub的单点登录。然后按照说明创建安全的Spring Boot Web应用程序。 以下是记录的内容: 信息2800---[nio-9999-exec-3]O.S.B.A.S.O.R.Use