我构建了一个简单的Spring Boot应用程序,它使用@EnableOAuth2Client
注释充当OAuth 2.0客户端。我的应用程序正在创建OAuth2RestTemplate
并且OAuth舞蹈很成功。
问题在于,当我访问我的应用程序时,例如在http://localhost:8080/someRequest
(提供此资源的方法使用OAuth2RestTemplate#getObject
方法检索某些远程资源的位置,我最终在浏览器中使用了http://localhost:8080/someRequest?code=ABC&state=DEF
。
有没有办法摆脱这些参数使用一些Spring配置魔法,还是我自己必须这样做?我看到样本Tonr应用程序遇到了同样的问题。
答案 0 :(得分:-1)
问题是你必须处理你在OAuth2提供商处注册的回调网址。当您将代码和状态参数传输到提供程序服务器以获取访问令牌和刷新令牌时,提供程序将请求发送回具有访问令牌的回调URL。在回调URL中,你现在必须检查访问令牌是否可用,你重定向到原始请求(你需要在OAuth2跳舞之前保存原始请求)。
我从理论上讲这个东西,但是没有找到Spring-Security-OAuth2来处理回调URL的例子
我问同样的问题,但没有得到任何答案。
OAuth2 Dance With Spring Security
然而,在没有使用弹簧安全性的情况下,我找到了一个链接,它显示了手动处理回调网址。它将帮助您理解流程。
Google Handle callback URl
如果您找到了弹簧处理回调网址的任何示例,请与我分享
我发现这是Spring security oAuth2的一个问题。请检查此JIRA Issue