Compare commits

...

3 Commits

Author SHA1 Message Date
Maxime Dor
851e0c9d94 Properly build remote 3PID token request 2017-10-05 16:04:29 +02:00
Maxime Dor
ac1cbc4265 Fix redirect with thymleaf 2017-10-05 16:03:59 +02:00
Maxime Dor
62711ee12e Improve README 2017-10-02 20:07:22 +02:00
3 changed files with 17 additions and 20 deletions

View File

@@ -122,7 +122,7 @@ For an overview of a typical mxisd infrastructure, see the [dedicated document](
In the VirtualHost handling the domain with SSL, add the following line and replace `0.0.0.0` by the right address/host. In the VirtualHost handling the domain with SSL, add the following line and replace `0.0.0.0` by the right address/host.
**This line MUST be present before the one for the homeserver!** **This line MUST be present before the one for the homeserver!**
``` ```
ProxyPass /_matrix/identity http://0.0.0.0:8090/_matrix/identity ProxyPass /_matrix/identity/ http://0.0.0.0:8090/_matrix/identity/
``` ```
Typical VirtualHost configuration would be: Typical VirtualHost configuration would be:
@@ -154,11 +154,12 @@ See the [dedicated document](docs/features/federation.md).
## Validate ## Validate
Log in using your Matrix client and set `https://example.org` as your Identity server URL, replacing `example.org` by Log in using your Matrix client and set `https://example.org` as your Identity server URL, replacing `example.org` by
the relevant hostname which you configured in your reverse proxy. the relevant hostname which you configured in your reverse proxy.
Try to invite `mxisd-lookup-test@kamax.io`, which should be turned into a Matrix invite to `@mxisd-lookup-test:kamax.io` Invite `mxisd-lookup-test@kamax.io` to a room, which should be turned into a Matrix invite to `@mxisd-lookup-test:kamax.io`.
**NOTE:** you might not see a Matrix suggestion for the e-mail address, which is normal. Still proceed with the invite.
If it worked, it means you are up and running and can enjoy mxisd in its basic mode! Congratulations! If it worked, it means you are up and running and can enjoy mxisd in its basic mode! Congratulations!
If it did not work, [get in touch](#support) and we'll do our best to get you started. If it did not work, [get in touch](#support) and we'll do our best to get you started.
You can now integrate mxisd further with your infrastructure using the various [features](docs/README.md) guides. You can now integrate mxisd further with your infrastructure using the various [features](docs/README.md) guides.

View File

@@ -23,7 +23,6 @@ package io.kamax.mxisd.controller.identity.v1;
import io.kamax.mxisd.config.ServerConfig; import io.kamax.mxisd.config.ServerConfig;
import io.kamax.mxisd.config.ViewConfig; import io.kamax.mxisd.config.ViewConfig;
import io.kamax.mxisd.controller.identity.v1.remote.RemoteIdentityAPIv1; import io.kamax.mxisd.controller.identity.v1.remote.RemoteIdentityAPIv1;
import io.kamax.mxisd.exception.InternalServerError;
import io.kamax.mxisd.session.SessionMananger; import io.kamax.mxisd.session.SessionMananger;
import io.kamax.mxisd.session.ValidationResult; import io.kamax.mxisd.session.ValidationResult;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -36,7 +35,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import static org.springframework.web.bind.annotation.RequestMethod.GET; import static org.springframework.web.bind.annotation.RequestMethod.GET;
@@ -71,13 +69,7 @@ class SessionController {
if (r.getNextUrl().isPresent()) { if (r.getNextUrl().isPresent()) {
String url = srvCfg.getPublicUrl() + r.getNextUrl().get(); String url = srvCfg.getPublicUrl() + r.getNextUrl().get();
log.info("Session {} validation: next URL is present, redirecting to {}", sid, url); log.info("Session {} validation: next URL is present, redirecting to {}", sid, url);
try { return "redirect:" + url;
response.sendRedirect(url);
return "";
} catch (IOException e) {
log.warn("Unable to redirect user to {}", url);
throw new InternalServerError(e);
}
} else { } else {
if (r.isCanRemote()) { if (r.isCanRemote()) {
String url = srvCfg.getPublicUrl() + RemoteIdentityAPIv1.getRequestToken(r.getSession().getId(), r.getSession().getSecret()); String url = srvCfg.getPublicUrl() + RemoteIdentityAPIv1.getRequestToken(r.getSession().getId(), r.getSession().getSecret());

View File

@@ -283,13 +283,17 @@ 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());
try { if (ThreePidMedium.PhoneNumber.is(session.getThreePid().getMedium())) {
Phonenumber.PhoneNumber msisdn = phoneUtil.parse("+" + session.getThreePid().getAddress(), null); try {
String country = phoneUtil.getRegionCodeForNumber(msisdn).toUpperCase(); Phonenumber.PhoneNumber msisdn = phoneUtil.parse("+" + session.getThreePid().getAddress(), null);
body.addProperty("phone_number", phoneUtil.format(msisdn, PhoneNumberUtil.PhoneNumberFormat.NATIONAL)); String country = phoneUtil.getRegionCodeForNumber(msisdn).toUpperCase();
body.addProperty("country", country); body.addProperty("phone_number", phoneUtil.format(msisdn, PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
} catch (NumberParseException e) { body.addProperty("country", country);
throw new InternalServerError(e); } catch (NumberParseException 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());