Encapsulate device ID in ProvisioningAddress

This commit is contained in:
Chris Eager 2023-10-26 17:10:27 -05:00 committed by Chris Eager
parent 6a428b4da9
commit 2bc4412d66
4 changed files with 13 additions and 7 deletions

View File

@ -47,7 +47,7 @@ public class ProvisioningController {
rateLimiters.getMessagesLimiter().validate(auth.getAccount().getUuid()); rateLimiters.getMessagesLimiter().validate(auth.getAccount().getUuid());
if (!provisioningManager.sendProvisioningMessage(new ProvisioningAddress(destinationName, (byte) 0), if (!provisioningManager.sendProvisioningMessage(ProvisioningAddress.create(destinationName),
Base64.getMimeDecoder().decode(message.body()))) { Base64.getMimeDecoder().decode(message.body()))) {
throw new WebApplicationException(Response.Status.NOT_FOUND); throw new WebApplicationException(Response.Status.NOT_FOUND);
} }

View File

@ -10,8 +10,14 @@ import java.util.Base64;
public class ProvisioningAddress extends WebsocketAddress { public class ProvisioningAddress extends WebsocketAddress {
public ProvisioningAddress(String address, byte id) { public static byte DEVICE_ID = 0;
super(address, id);
public static ProvisioningAddress create(String address) {
return new ProvisioningAddress(address, DEVICE_ID);
}
private ProvisioningAddress(String address, byte deviceId) {
super(address, deviceId);
} }
public ProvisioningAddress(String serialized) throws InvalidWebsocketAddressException { public ProvisioningAddress(String serialized) throws InvalidWebsocketAddressException {
@ -26,6 +32,6 @@ public class ProvisioningAddress extends WebsocketAddress {
byte[] random = new byte[16]; byte[] random = new byte[16];
new SecureRandom().nextBytes(random); new SecureRandom().nextBytes(random);
return new ProvisioningAddress(Base64.getUrlEncoder().withoutPadding().encodeToString(random), (byte) 0); return create(Base64.getUrlEncoder().withoutPadding().encodeToString(random));
} }
} }

View File

@ -93,7 +93,7 @@ class ProvisioningControllerTest {
provisioningMessageCaptor.capture()); provisioningMessageCaptor.capture());
assertEquals(destination, provisioningAddressCaptor.getValue().getAddress()); assertEquals(destination, provisioningAddressCaptor.getValue().getAddress());
assertEquals(0, provisioningAddressCaptor.getValue().getDeviceId()); assertEquals(ProvisioningAddress.DEVICE_ID, provisioningAddressCaptor.getValue().getDeviceId());
assertArrayEquals(messageBody, provisioningMessageCaptor.getValue()); assertArrayEquals(messageBody, provisioningMessageCaptor.getValue());
} }

View File

@ -43,7 +43,7 @@ class ProvisioningManagerTest {
@Test @Test
void sendProvisioningMessage() { void sendProvisioningMessage() {
final ProvisioningAddress address = new ProvisioningAddress("address", (byte) 0); final ProvisioningAddress address = ProvisioningAddress.create("address");
final byte[] content = new byte[16]; final byte[] content = new byte[16];
new Random().nextBytes(content); new Random().nextBytes(content);
@ -64,7 +64,7 @@ class ProvisioningManagerTest {
@Test @Test
void removeListener() { void removeListener() {
final ProvisioningAddress address = new ProvisioningAddress("address", (byte) 0); final ProvisioningAddress address = ProvisioningAddress.create("address");
final byte[] content = new byte[16]; final byte[] content = new byte[16];
new Random().nextBytes(content); new Random().nextBytes(content);