我的rest api应该接受一个String相对uri,然后重定向到该位置。
因此,假设我通过redirect_uri = / login?foo = bar我应该重定向到{host} {redirect_uri}。
我正在尝试使用UriBuilder,但查询参数始终经过编码:
Cognito
结果始终以:
UriBuilder.fromUri("//{baseurl}")
.path(redirectUri)
.scheme("https")
.buildFromEncoded(domainInfo.getHost())
和连续的重定向将不起作用
/login%3Ffoo=bar
有任何提示吗?
答案 0 :(得分:0)
.path(redirectUri)
表示您正在传递路径。该方法不要求查询。因此,/login?foo=bar
被视为没有查询的路径。
将路径部分作为路径传递,并将查询部分作为查询传递:
UriBuilder.fromUri("//{baseurl}")
.path("/login")
.queryParam("foo", "bar")
.scheme("https")
.buildFromEncoded(domainInfo.getHost())
答案 1 :(得分:0)
受@VGR评论的启发,我解决了这个问题
UriBuilder.fromUri("//{baseurl}")
.uri(postLogin) // in place of path
.scheme("https")
.buildFromEncoded(domainInfo.getHost())