From 78deea7f3bbabab630041a4548d9f86e368ffe84 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Wed, 29 Jan 2020 18:19:13 +0100 Subject: [PATCH] openvidu-server: IdentifierPrefixes enumeration --- .../openvidu/server/core/IdentifierPrefixes.java | 16 ++++++++++++++++ .../io/openvidu/server/core/Participant.java | 2 +- .../io/openvidu/server/core/SessionManager.java | 8 ++++---- .../server/core/TokenGeneratorDefault.java | 2 +- .../server/kurento/core/KurentoParticipant.java | 7 ++++--- .../kurento/core/KurentoSessionManager.java | 8 ++++---- .../server/kurento/kms/FixedOneKmsManager.java | 4 +++- .../server/rest/SessionRestController.java | 3 ++- .../java/io/openvidu/server/rpc/RpcHandler.java | 6 ++++-- .../server/rpc/RpcNotificationService.java | 3 ++- 10 files changed, 41 insertions(+), 18 deletions(-) create mode 100644 openvidu-server/src/main/java/io/openvidu/server/core/IdentifierPrefixes.java diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/IdentifierPrefixes.java b/openvidu-server/src/main/java/io/openvidu/server/core/IdentifierPrefixes.java new file mode 100644 index 00000000..2f6e6703 --- /dev/null +++ b/openvidu-server/src/main/java/io/openvidu/server/core/IdentifierPrefixes.java @@ -0,0 +1,16 @@ +package io.openvidu.server.core; + +/** + * @author Pablo Fuente (pablofuenteperez@gmail.com) + */ +public interface IdentifierPrefixes { + + public static final String PARTICIPANT_PUBLIC_ID = "con_"; + public static final String STREAM_ID = "str_"; + public static final String SESSION_ID = "ses_"; + public static final String TOKEN_ID = "tok_"; + public static final String IPCAM_ID = "ipc_"; + public static final String KMS_ID = "kms_"; + public static final String CLUSTER_ID = "clu_"; + +} diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/Participant.java b/openvidu-server/src/main/java/io/openvidu/server/core/Participant.java index c2ffe8a9..a428bf64 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/core/Participant.java +++ b/openvidu-server/src/main/java/io/openvidu/server/core/Participant.java @@ -146,7 +146,7 @@ public class Participant { } public boolean isIpcam() { - return this.platform.equals("IPCAM") && this.participantPrivatetId.startsWith("ipc_"); + return this.platform.equals("IPCAM") && this.participantPrivatetId.startsWith(IdentifierPrefixes.IPCAM_ID); } public String getPublisherStreamId() { diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/SessionManager.java b/openvidu-server/src/main/java/io/openvidu/server/core/SessionManager.java index 992f065d..c62d5ffc 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/core/SessionManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/core/SessionManager.java @@ -368,14 +368,14 @@ public abstract class SessionManager { public Participant newParticipant(String sessionId, String participantPrivatetId, Token token, String clientMetadata, GeoLocation location, String platform, String finalUserId) { if (this.sessionidParticipantpublicidParticipant.get(sessionId) != null) { - String participantPublicId = "con_" + RandomStringUtils.randomAlphabetic(1).toUpperCase() - + RandomStringUtils.randomAlphanumeric(9); + String participantPublicId = IdentifierPrefixes.PARTICIPANT_PUBLIC_ID + + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(9); Participant p = new Participant(finalUserId, participantPrivatetId, participantPublicId, sessionId, token, clientMetadata, location, platform, EndpointType.WEBRTC_ENDPOINT, null); while (this.sessionidParticipantpublicidParticipant.get(sessionId).putIfAbsent(participantPublicId, p) != null) { - participantPublicId = "con_" + RandomStringUtils.randomAlphabetic(1).toUpperCase() - + RandomStringUtils.randomAlphanumeric(9); + participantPublicId = IdentifierPrefixes.PARTICIPANT_PUBLIC_ID + + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(9); p.setParticipantPublicId(participantPublicId); } diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/TokenGeneratorDefault.java b/openvidu-server/src/main/java/io/openvidu/server/core/TokenGeneratorDefault.java index ceae7763..4574c29b 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/core/TokenGeneratorDefault.java +++ b/openvidu-server/src/main/java/io/openvidu/server/core/TokenGeneratorDefault.java @@ -40,7 +40,7 @@ public class TokenGeneratorDefault implements TokenGenerator { KurentoTokenOptions kurentoTokenOptions) { String token = OpenViduServer.wsUrl; token += "?sessionId=" + sessionId; - token += "&token=" + "tok_" + RandomStringUtils.randomAlphabetic(1).toUpperCase() + token += "&token=" + IdentifierPrefixes.TOKEN_ID + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(15); token += "&role=" + role.name(); token += "&version=" + openviduConfig.getOpenViduServerVersion(); diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java index 32ea180b..f013886e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java @@ -47,6 +47,7 @@ import io.openvidu.client.internal.ProtocolElements; import io.openvidu.java.client.OpenViduRole; import io.openvidu.server.config.OpenviduConfig; import io.openvidu.server.core.EndReason; +import io.openvidu.server.core.IdentifierPrefixes; import io.openvidu.server.core.MediaOptions; import io.openvidu.server.core.Participant; import io.openvidu.server.kurento.endpoint.MediaEndpoint; @@ -101,9 +102,9 @@ public class KurentoParticipant extends Participant { public void createPublishingEndpoint(MediaOptions mediaOptions) { String type = mediaOptions.hasVideo() ? mediaOptions.getTypeOfVideo() : "MICRO"; - final String publisherStreamId = "str_" + type.substring(0, Math.min(type.length(), 3)) + "_" - + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(3) + "_" - + this.getParticipantPublicId().substring(4, this.getParticipantPublicId().length()); + final String publisherStreamId = IdentifierPrefixes.STREAM_ID + type.substring(0, Math.min(type.length(), 3)) + + "_" + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(3) + + "_" + this.getParticipantPublicId().substring(4, this.getParticipantPublicId().length()); publisher.setStreamId(publisherStreamId); publisher.setEndpointName(publisherStreamId); publisher.setMediaOptions(mediaOptions); diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java index af229017..f8424c6e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java @@ -52,6 +52,7 @@ import io.openvidu.java.client.RecordingProperties; import io.openvidu.java.client.SessionProperties; import io.openvidu.server.core.EndReason; import io.openvidu.server.core.FinalUser; +import io.openvidu.server.core.IdentifierPrefixes; import io.openvidu.server.core.MediaOptions; import io.openvidu.server.core.Participant; import io.openvidu.server.core.Session; @@ -900,14 +901,13 @@ public class KurentoSessionManager extends SessionManager { } String rtspConnectionId = kMediaOptions.getTypeOfVideo() + "_" + protocol + "_" - + RandomStringUtils.randomAlphanumeric(4).toUpperCase() + "_" + url.getAuthority() - + url.getPath(); + + RandomStringUtils.randomAlphanumeric(4).toUpperCase() + "_" + url.getAuthority() + url.getPath(); rtspConnectionId = rtspConnectionId.replace("/", "_").replace("-", "").replace(".", "_"); - rtspConnectionId = "ipc_" + rtspConnectionId; + rtspConnectionId = IdentifierPrefixes.IPCAM_ID + rtspConnectionId; // Store a "fake" participant for the IpCam connection this.newInsecureParticipant(rtspConnectionId); - String token = "tok_" + RandomStringUtils.randomAlphabetic(1).toUpperCase() + String token = IdentifierPrefixes.TOKEN_ID + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(15); Token tokenObj = null; if (this.isTokenValidInSession(token, sessionId, rtspConnectionId, serverMetadata)) { diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java index 2361ba57..0f8d2c6a 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java @@ -27,6 +27,8 @@ import org.apache.commons.lang3.RandomStringUtils; import org.kurento.client.KurentoClient; import org.kurento.commons.exception.KurentoException; +import io.openvidu.server.core.IdentifierPrefixes; + public class FixedOneKmsManager extends KmsManager { @Override @@ -60,7 +62,7 @@ public class FixedOneKmsManager extends KmsManager { try { List kmsProps = new ArrayList<>(); for (String kmsUri : this.openviduConfig.getKmsUris()) { - String kmsId = "kms_" + RandomStringUtils.randomAlphabetic(1).toUpperCase() + String kmsId = IdentifierPrefixes.KMS_ID + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(7); kmsProps.add(new KmsProperties(kmsId, kmsUri)); } diff --git a/openvidu-server/src/main/java/io/openvidu/server/rest/SessionRestController.java b/openvidu-server/src/main/java/io/openvidu/server/rest/SessionRestController.java index 6e8fb5a6..9e40f29f 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rest/SessionRestController.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rest/SessionRestController.java @@ -55,6 +55,7 @@ import io.openvidu.java.client.RecordingProperties; import io.openvidu.java.client.SessionProperties; import io.openvidu.server.config.OpenviduConfig; import io.openvidu.server.core.EndReason; +import io.openvidu.server.core.IdentifierPrefixes; import io.openvidu.server.core.Participant; import io.openvidu.server.core.Session; import io.openvidu.server.core.SessionManager; @@ -159,7 +160,7 @@ public class SessionRestController { } sessionId = customSessionId; } else { - sessionId = "ses_" + RandomStringUtils.randomAlphabetic(1).toUpperCase() + sessionId = IdentifierPrefixes.SESSION_ID + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(9); } diff --git a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java index 4453e516..735aa2b4 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java @@ -47,6 +47,7 @@ import io.openvidu.client.OpenViduException.Code; import io.openvidu.client.internal.ProtocolElements; import io.openvidu.server.config.OpenviduConfig; import io.openvidu.server.core.EndReason; +import io.openvidu.server.core.IdentifierPrefixes; import io.openvidu.server.core.MediaOptions; import io.openvidu.server.core.Participant; import io.openvidu.server.core.SessionManager; @@ -231,7 +232,7 @@ public class RpcHandler extends DefaultJsonRpcHandler { if (openviduConfig.isOpenViduSecret(secret)) { sessionManager.newInsecureParticipant(participantPrivatetId); - token = "tok_" + RandomStringUtils.randomAlphabetic(1).toUpperCase() + token = IdentifierPrefixes.TOKEN_ID + RandomStringUtils.randomAlphabetic(1).toUpperCase() + RandomStringUtils.randomAlphanumeric(15); if (recorder) { generateRecorderParticipant = true; @@ -326,7 +327,8 @@ public class RpcHandler extends DefaultJsonRpcHandler { String senderPublicId = getStringParam(request, ProtocolElements.RECEIVEVIDEO_SENDER_PARAM); // Parse sender public id from stream id - senderPublicId = "con" + senderPublicId.substring(senderPublicId.lastIndexOf("_"), senderPublicId.length()); + senderPublicId = IdentifierPrefixes.PARTICIPANT_PUBLIC_ID + + senderPublicId.substring(senderPublicId.lastIndexOf("_") + 1, senderPublicId.length()); String sdpOffer = getStringParam(request, ProtocolElements.RECEIVEVIDEO_SDPOFFER_PARAM); sessionManager.subscribe(participant, senderPublicId, sdpOffer, request.getId()); diff --git a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcNotificationService.java b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcNotificationService.java index a8540436..cf5fb653 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcNotificationService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcNotificationService.java @@ -30,6 +30,7 @@ import org.slf4j.LoggerFactory; import com.google.gson.JsonObject; import io.openvidu.client.OpenViduException; +import io.openvidu.server.core.IdentifierPrefixes; public class RpcNotificationService { @@ -151,7 +152,7 @@ public class RpcNotificationService { } private boolean isIpcamParticipant(String participantPrivateId) { - return participantPrivateId.startsWith("ipc_"); + return participantPrivateId.startsWith(IdentifierPrefixes.IPCAM_ID); } }