Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SpringMVC中,如何使所有控制器及其方法都可以使用用户信息?_Java_Spring_Spring Mvc_Spring Security - Fatal编程技术网

Java 在SpringMVC中,如何使所有控制器及其方法都可以使用用户信息?

Java 在SpringMVC中,如何使所有控制器及其方法都可以使用用户信息?,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我是spring新手,正在尝试开发一个具有数据库交互的非常基本的应用程序。我想知道,只要用户登录,如何使所有控制器及其方法都可以使用用户信息??我正在使用spring mvc。spring安全性可以在这里提供帮助。用户登录后,您可以如下方式访问用户主体: SecurityContext context = SecurityContextHolder.getContext(); Authentication auth = context.getAuthentication(); User user

我是spring新手,正在尝试开发一个具有数据库交互的非常基本的应用程序。我想知道,只要用户登录,如何使所有控制器及其方法都可以使用用户信息??我正在使用spring mvc。

spring安全性可以在这里提供帮助。用户登录后,您可以如下方式访问用户主体:

SecurityContext context = SecurityContextHolder.getContext();
Authentication auth = context.getAuthentication();
User user = (User) auth.getPrincipal();

当用户登录时,使用HttpSession存储用户信息。这有助于理解什么是会话[link]是的,我已经使用httpSession.setAttribute完成了这项工作。然后在所需的函数中,我使用了httpSession.getAttribute,它将获取所需的输出。然而,我的问题是,在这些函数中,有类似于@ModelAttributeuserDetails UserFormbean userDetails的东西来支持Jsp。现在由于存在两个表单支持对象,我无法编辑,请更新信息。应该做什么?输出结果是什么?只是登录id和pwd或所有详细信息?用户主体是任意的。默认情况下,我认为auth.getPrincipal只返回一个我不记得的字符串,但是您可以实现并注册自己的自定义用户服务,以返回您喜欢的任何类型的用户对象。它可能有用户名、名字、电子邮件,你想要什么都行。这是我在上面做的DZone RefCard: