弹簧OAuth2和redirect_uri中的查询字符串参数

时间:2018-05-29 17:39:01

标签: java spring-security oauth-2.0

所以我们有一个基于spring-boot的oauth2服务器。 我们的一个依赖此服务器的应用程序尝试使用以下URL启动身份验证请求:

  

https://oauth2server/oauth/authorize?response_type=code&grant_type=authorization_code&client_id=myClient&redirect_uri=http%3A%2F%2Fapplicationserver%2Flogin%3Fparameter%3Dvalue

用户输入凭据,批准应用程序,然后通过redirect_uri将代码重定向回应用程序服务器:

  

http://applicationserver/login?parameter=value&code=tokenCode

当应用程序服务器随后调用oauth2资源api(oath / token)时,它获得RedirectMismatchException("Redirect URI mismatch."),因为批准的重定向不包含查询字符串参数,而只包含http://applicationserver/login

如何在忽略查询字符串参数的同时将某个网址前缀设置为已批准的重定向uri?或者我们在做一些内在错误的事情?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您的意图是使用初始授权请求发送数据,该请求应在重定向回应用程序时返回。

我正在使用的library目前提供的功能是,附加状态可以与状态参数中的随机数一起存储,如:

state = nonce + nonceStateSeparator + customState;

state参数描述为:

  

客户端用于维护的不透明值            请求和回调之间的状态。授权            服务器在重定向用户代理时包含此值            给客户。该参数应该用于防止            跨站点请求伪造,如第10.12节所述。