Java 尽管成功登录,但SecurityContextHolder仍承载匿名用户

Java 尽管成功登录,但SecurityContextHolder仍承载匿名用户,java,spring,authentication,spring-security,Java,Spring,Authentication,Spring Security,这里的第一个问题,我是spring和spring Security的新手,我目前正在从事一个小项目,该项目涉及使用ReactJS和spring Boot的简单身份验证系统,我遇到了一个问题,成功登录后,服务器无法提供当前登录的用户,默认为匿名用户,我怀疑我在更改实现websecurityConfigureAdapter接口的类上的配置时,无意中犯了一个错误,因为在我进行这些更改之前,该类通常都能正常工作。除此之外,我在这一点上一无所知 所以重述,注册就像一个符咒,登录工作,并执行一个方法,表明它

这里的第一个问题,我是spring和spring Security的新手,我目前正在从事一个小项目,该项目涉及使用ReactJS和spring Boot的简单身份验证系统,我遇到了一个问题,成功登录后,服务器无法提供当前登录的用户,默认为匿名用户,我怀疑我在更改实现
websecurityConfigureAdapter
接口的类上的配置时,无意中犯了一个错误,因为在我进行这些更改之前,该类通常都能正常工作。除此之外,我在这一点上一无所知

所以重述,注册就像一个符咒,登录工作,并执行一个方法,表明它是成功的,但似乎不能保存会话

这是my config类中实现
WebSecurityConfigureAdapter
接口的配置方法:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.cors().disable().csrf().disable();

    http.authorizeRequests()
    .antMatchers("/resources/**" , "/register")
    .permitAll()
    .anyRequest().authenticated()
    .and().formLogin()
    .failureHandler(handleFailure())
    .successHandler(handleSuccess()) 
    .permitAll()
    .and()
    .cors();
}
这是用来返回我想要获取的值的代码

@GetMapping(path="/userdetails")
public ResponseEntity<Object> getUserDetails(){
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    return createResponse(auth.getPrincipal(),HttpStatus.OK);
}
我是不是误解了什么?文档中说发送登录表单的默认端点是/login(如果未指定)

这是用于注册的url字符串:

http://localhost:8080/register?username=example@mail.com&password=asdfasdf&passwordConfirm=asdfasdf
这是用于登录表单的

http://localhost:8080/login?username=example@mail.com&password=asdfasdf
在服务器中调试它们表明,它们确实到达了,并且被整齐地包装在各自的对象中,但不知何故,它就是不起作用

截图:

更新: 显然,一些用户在使用microsoft edge时遇到了与我类似的问题:

所以我安装了其他浏览器只是为了检查,不幸的是没有一个浏览器能够解决这个问题

我决定玩一些我在网上找到的教程,我偶然发现了这个:

我创建了一个教程回购协议的副本,然后进行了增量修改,引起我注意(并最终解决了这个问题)的是这段代码

spring.mvc.view.prefix = /
这是在我的应用程序属性中找到的,我将它插入到我的属性文件中,它成功了!,什么

有人能解释一下这种改变是如何以及为什么会起作用的吗


在这一点上,整个模型看起来如此混乱,任何澄清都将不胜感激

啊,我明白了,我以前删除过,但没有删除,我还编辑了这篇文章,提供了有关服务器收到的请求的更多详细信息,登录有效!因为如果服务器按预期提供了无效凭据,则会拒绝登录。但由于某些原因,我无法访问任何经过身份验证的端点/userdetails只是用来确认securitycontextholder是否确实记住了会话。这可能是事后诸葛亮。helpI附加了一些缩略图,希望这些缩略图能够提供一个关于在您的请求中看不到会话cookie的情况的见解。那么您没有登录。查看cookie选项卡,检查是否有与response相同ID的cookie。顺便说一句:您的屏幕截图来自Postman,而不是您的浏览器。这可能就是你的问题所在。使用浏览器。啊,我的错,我在成功登录后(从springs默认表单登录)现在包含了cookies
spring.mvc.view.prefix = /