mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-23 03:48:03 +01:00
Disallow registration from clients registered on another relay.
This commit is contained in:
@@ -135,6 +135,10 @@ public class AccountController {
|
||||
throw new WebApplicationException(Response.status(403).build());
|
||||
}
|
||||
|
||||
if (accounts.isRelayListed(number)) {
|
||||
throw new WebApplicationException(Response.status(417).build());
|
||||
}
|
||||
|
||||
Device device = new Device();
|
||||
device.setId(Device.MASTER_ID);
|
||||
device.setAuthenticationCredentials(new AuthenticationCredentials(password));
|
||||
|
||||
@@ -90,6 +90,13 @@ public class AccountsManager {
|
||||
else return Optional.absent();
|
||||
}
|
||||
|
||||
public boolean isRelayListed(String number) {
|
||||
byte[] token = Util.getContactToken(number);
|
||||
Optional<ClientContact> contact = directory.get(token);
|
||||
|
||||
return contact.isPresent() && !Util.isEmpty(contact.get().getRelay());
|
||||
}
|
||||
|
||||
private void updateDirectory(Account account) {
|
||||
if (account.isActive()) {
|
||||
byte[] token = Util.getContactToken(account.getNumber());
|
||||
|
||||
Reference in New Issue
Block a user