Add support for "registrationId" session enforcement.

This commit is contained in:
Moxie Marlinspike
2014-02-20 09:32:42 -08:00
parent 35e212a30f
commit f4ecb5d7be
18 changed files with 204 additions and 32 deletions

View File

@@ -31,12 +31,16 @@ public class AccountAttributes {
@JsonProperty
private boolean fetchesMessages;
@JsonProperty
private int registrationId;
public AccountAttributes() {}
public AccountAttributes(String signalingKey, boolean supportsSms, boolean fetchesMessages) {
this.signalingKey = signalingKey;
this.supportsSms = supportsSms;
public AccountAttributes(String signalingKey, boolean supportsSms, boolean fetchesMessages, int registrationId) {
this.signalingKey = signalingKey;
this.supportsSms = supportsSms;
this.fetchesMessages = fetchesMessages;
this.registrationId = registrationId;
}
public String getSignalingKey() {
@@ -51,4 +55,7 @@ public class AccountAttributes {
return fetchesMessages;
}
public int getRegistrationId() {
return registrationId;
}
}

View File

@@ -30,6 +30,9 @@ public class IncomingMessage {
@JsonProperty
private long destinationDeviceId = 1;
@JsonProperty
private int destinationRegistrationId;
@JsonProperty
@NotEmpty
private String body;
@@ -40,6 +43,7 @@ public class IncomingMessage {
@JsonProperty
private long timestamp;
public String getDestination() {
return destination;
}
@@ -59,4 +63,8 @@ public class IncomingMessage {
public long getDestinationDeviceId() {
return destinationDeviceId;
}
public int getDestinationRegistrationId() {
return destinationRegistrationId;
}
}

View File

@@ -52,6 +52,9 @@ public class PreKey {
@JsonProperty
private boolean lastResort;
@JsonProperty
private int registrationId;
public PreKey() {}
public PreKey(long id, String number, long deviceId, long keyId,
@@ -125,4 +128,12 @@ public class PreKey {
public long getDeviceId() {
return deviceId;
}
public int getRegistrationId() {
return registrationId;
}
public void setRegistrationId(int registrationId) {
this.registrationId = registrationId;
}
}

View File

@@ -0,0 +1,18 @@
package org.whispersystems.textsecuregcm.entities;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public class StaleDevices {
@JsonProperty
private List<Long> staleDevices;
public StaleDevices() {}
public StaleDevices(List<Long> staleDevices) {
this.staleDevices = staleDevices;
}
}