使用oauth2和使用java配置的spring安全性在浏览器中登录后访问REST服务

使用oauth2和使用java配置的spring安全性在浏览器中登录后访问REST服务,rest,spring-security,oauth-2.0,spring-java-config,Rest,Spring Security,Oauth 2.0,Spring Java Config,我已经使用Spark2应用程序实现了Oauth2。我正在使用spring安全性,如Sparks2应用程序中使用java配置所述。我可以使用curl成功地获取auth令牌,并且可以使用curl调用web服务 我的问题是 如何在登录到应用程序后在同一浏览器中访问REST服务?我不确定我在这里错过了什么 让我更详细地阐述我的问题。浏览器在登录后保持会话的方式,以及我们可以访问应用程序中任何受保护的资源的方式,最好的实现方式是什么,这样我就可以从浏览器测试我的REST api了。会话id存储在浏览器co

我已经使用Spark2应用程序实现了Oauth2。我正在使用spring安全性,如Sparks2应用程序中使用java配置所述。我可以使用curl成功地获取auth令牌,并且可以使用curl调用web服务

我的问题是

如何在登录到应用程序后在同一浏览器中访问REST服务?我不确定我在这里错过了什么


让我更详细地阐述我的问题。浏览器在登录后保持会话的方式,以及我们可以访问应用程序中任何受保护的资源的方式,最好的实现方式是什么,这样我就可以从浏览器测试我的REST api了。会话id存储在浏览器cookie中,因此它会随每个请求一起传递给您的服务。然后,spring安全性应该检查是否允许特定会话(用户登录)访问此特定url

我将从在java配置中配置安全路径开始:

http.authorizeRequests().antMatchers().hasAnyRole(...)
或者用其他方法代替蚂蚁匹配器

您可能必须在oauth回调上将用户登录到spring security,例如:

Authentication auth = new UsernamePasswordAuthenticationToken(user, null, authorities);
SecurityContextHolder.getContext().setAuthentication(auth);

谢谢你的帮助。正如我前面解释的,我使用了Spark2代码并将内存内令牌存储更改为jdbcTokenStore,但我仍然在http筛选器中使用内存内令牌存储,如http.inMemory()。。。因此,我现在修复了这个问题,当我尝试使用curl获取auth令牌时,我不再获取auth令牌。我可以看到,当我使用curl时,不会调用UsernamePasswordAuthenticationFilter,但当我尝试通过应用程序中的登录表单登录时,我成功地通过了身份验证。我错过了什么?看起来现在有两个问题:)你确定你用curl发送帖子吗?是的,我确定我用curl发送帖子,辅助问题已经解决了,我在第一篇评论中提到过。主要问题仍然是这样。