Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 Spring安全检查用户是否已登录_Java_Spring_Spring Security - Fatal编程技术网

Java Spring安全检查用户是否已登录

Java Spring安全检查用户是否已登录,java,spring,spring-security,Java,Spring,Spring Security,在我的控制器中,我试图检查是否有登录用户发出了请求,或者是否有未登录用户发出了请求。控制器不需要任何权限,但出于日志记录的目的,如果请求是由登录用户发出的,我想记录用户名;如果请求是由非登录用户发出的,我想记录来宾。当我不使用@Secured标记时,SecurityContextHolder.getContext.getAuthentication总是返回null,而不管用户是否登录。此外,我还尝试将Principal作为方法参数传入,但这也不起作用,并且在未登录用户的情况下也不会调用contr

在我的控制器中,我试图检查是否有登录用户发出了请求,或者是否有未登录用户发出了请求。控制器不需要任何权限,但出于日志记录的目的,如果请求是由登录用户发出的,我想记录用户名;如果请求是由非登录用户发出的,我想记录来宾。当我不使用@Secured标记时,SecurityContextHolder.getContext.getAuthentication总是返回null,而不管用户是否登录。此外,我还尝试将Principal作为方法参数传入,但这也不起作用,并且在未登录用户的情况下也不会调用controller方法。如果用户已登录,而不使用@Secured标记,如何获取用户名

应该返回登录用户的身份验证对象。您的配置似乎有问题。你能发布你的配置吗?配置没有问题,所有其他安全方法都可以正常工作。你不会得到任何关于规定描述的帮助。。。这太夸张了,不能说你的配置是好的,那么就由你自己来解决问题了!主体无法作为参数传递,因为登录用户没有主体。我无法使用@Secured,因为未登录的用户应该能够使用此方法。我认为缺少@Secured使得SecurityContextHolder.getContext.getAuthentication总是返回null。这就是为什么我问是否还有另一种我不知道的方法。配置并没有问题,因为我使用的所有其他方法、控制器等都很好,这只是一个特例,我不确定Spring是否能够处理它。