Properly build remote 3PID token request

This commit is contained in:
Maxime Dor
2017-10-05 16:04:29 +02:00
parent ac1cbc4265
commit 851e0c9d94

View File

@@ -283,6 +283,7 @@ public class SessionMananger {
body.addProperty("client_secret", remoteSecret); body.addProperty("client_secret", remoteSecret);
body.addProperty(session.getThreePid().getMedium(), session.getThreePid().getAddress()); body.addProperty(session.getThreePid().getMedium(), session.getThreePid().getAddress());
body.addProperty("send_attempt", session.increaseAndGetRemoteAttempt()); body.addProperty("send_attempt", session.increaseAndGetRemoteAttempt());
if (ThreePidMedium.PhoneNumber.is(session.getThreePid().getMedium())) {
try { try {
Phonenumber.PhoneNumber msisdn = phoneUtil.parse("+" + session.getThreePid().getAddress(), null); Phonenumber.PhoneNumber msisdn = phoneUtil.parse("+" + session.getThreePid().getAddress(), null);
String country = phoneUtil.getRegionCodeForNumber(msisdn).toUpperCase(); String country = phoneUtil.getRegionCodeForNumber(msisdn).toUpperCase();
@@ -291,6 +292,9 @@ public class SessionMananger {
} catch (NumberParseException e) { } catch (NumberParseException e) {
throw new InternalServerError(e); throw new InternalServerError(e);
} }
} else {
body.addProperty(session.getThreePid().getMedium(), session.getThreePid().getAddress());
}
log.info("Requesting remote session with attempt {}", session.getRemoteAttempt()); log.info("Requesting remote session with attempt {}", session.getRemoteAttempt());
HttpPost tokenReq = RestClientUtils.post(url + "/_matrix/identity/api/v1/validate/" + session.getThreePid().getMedium() + "/requestToken", body); HttpPost tokenReq = RestClientUtils.post(url + "/_matrix/identity/api/v1/validate/" + session.getThreePid().getMedium() + "/requestToken", body);