Support 3PID in memory identity store profile

This commit is contained in:
Max Dor
2018-03-30 18:31:22 +02:00
parent 7f9c7aa76d
commit ac6f549618
3 changed files with 10 additions and 6 deletions

View File

@@ -23,6 +23,7 @@ package io.kamax.mxisd.auth;
import io.kamax.matrix.MatrixID; import io.kamax.matrix.MatrixID;
import io.kamax.matrix.ThreePid; import io.kamax.matrix.ThreePid;
import io.kamax.matrix._MatrixID; import io.kamax.matrix._MatrixID;
import io.kamax.matrix._ThreePid;
import io.kamax.mxisd.UserIdType; import io.kamax.mxisd.UserIdType;
import io.kamax.mxisd.auth.provider.AuthenticatorProvider; import io.kamax.mxisd.auth.provider.AuthenticatorProvider;
import io.kamax.mxisd.auth.provider.BackendAuthResult; import io.kamax.mxisd.auth.provider.BackendAuthResult;
@@ -72,7 +73,7 @@ public class AuthManager {
} }
UserAuthResult authResult = new UserAuthResult().success(result.getProfile().getDisplayName()); UserAuthResult authResult = new UserAuthResult().success(result.getProfile().getDisplayName());
for (ThreePid pid : result.getProfile().getThreePids()) { for (_ThreePid pid : result.getProfile().getThreePids()) {
authResult.withThreePid(pid.getMedium(), pid.getAddress()); authResult.withThreePid(pid.getMedium(), pid.getAddress());
} }
log.info("{} was authenticated by {}, publishing 3PID mappings, if any", id, provider.getClass().getSimpleName()); log.info("{} was authenticated by {}, publishing 3PID mappings, if any", id, provider.getClass().getSimpleName());

View File

@@ -20,7 +20,7 @@
package io.kamax.mxisd.auth.provider; package io.kamax.mxisd.auth.provider;
import io.kamax.matrix.ThreePid; import io.kamax.matrix._ThreePid;
import io.kamax.mxisd.UserID; import io.kamax.mxisd.UserID;
import io.kamax.mxisd.UserIdType; import io.kamax.mxisd.UserIdType;
@@ -32,13 +32,13 @@ public class BackendAuthResult {
public static class BackendAuthProfile { public static class BackendAuthProfile {
private String displayName; private String displayName;
private Set<ThreePid> threePids = new HashSet<>(); private Set<_ThreePid> threePids = new HashSet<>();
public String getDisplayName() { public String getDisplayName() {
return displayName; return displayName;
} }
public Set<ThreePid> getThreePids() { public Set<_ThreePid> getThreePids() {
return threePids; return threePids;
} }
} }
@@ -85,7 +85,7 @@ public class BackendAuthResult {
return profile; return profile;
} }
public BackendAuthResult withThreePid(ThreePid threePid) { public BackendAuthResult withThreePid(_ThreePid threePid) {
this.profile.threePids.add(threePid); this.profile.threePids.add(threePid);
return this; return this;

View File

@@ -162,7 +162,10 @@ public class MemoryIdentityStore implements AuthenticatorProvider, IDirectoryPro
if (!StringUtils.equals(id.getUsername(), mxid.getLocalPart())) { if (!StringUtils.equals(id.getUsername(), mxid.getLocalPart())) {
return BackendAuthResult.failure(); return BackendAuthResult.failure();
} else { } else {
return BackendAuthResult.success(mxid.getId(), UserIdType.MatrixID, ""); BackendAuthResult result = new BackendAuthResult();
id.getThreepids().forEach(result::withThreePid);
result.succeed(mxid.getId(), UserIdType.MatrixID.getId(), "");
return result;
} }
}).orElseGet(BackendAuthResult::failure); }).orElseGet(BackendAuthResult::failure);
} }