From 92d0c1bdba4d9af988a5c06a446802bb158a8abb Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Thu, 16 Apr 2020 13:31:49 +0200 Subject: [PATCH] openvidu-server: change isCoturnAvailable for OpenviduConfig#isTurnAdminAvailable --- .../java/io/openvidu/server/config/OpenviduConfig.java | 10 ++++++++++ .../java/io/openvidu/server/core/SessionManager.java | 3 +-- .../io/openvidu/server/core/TokenGeneratorDefault.java | 2 +- .../server/coturn/BashCoturnCredentialsService.java | 2 +- .../server/coturn/CoturnCredentialsService.java | 8 -------- .../server/kurento/core/KurentoSessionManager.java | 2 +- .../server/kurento/endpoint/MediaEndpoint.java | 2 +- 7 files changed, 15 insertions(+), 14 deletions(-) diff --git a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java index a54086eb..544ea1ea 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java +++ b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java @@ -176,6 +176,8 @@ public class OpenviduConfig { public static String finalUrl; + private boolean isTurnadminAvailable = false; + // Plain config properties getters public String getServerPort() { @@ -308,6 +310,14 @@ public class OpenviduConfig { finalUrl = finalUrlParam.endsWith("/") ? (finalUrlParam) : (finalUrlParam + "/"); } + public boolean isTurnadminAvailable() { + return this.isTurnadminAvailable; + } + + public void setTurnadminAvailable(boolean available) { + this.isTurnadminAvailable = available; + } + public OpenViduRole[] getRolesFromRecordingNotification() { OpenViduRole[] roles; switch (this.openviduRecordingNotification) { 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 559ded71..0c24c0a4 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 @@ -310,8 +310,7 @@ public abstract class SessionManager { public Token newTokenForInsecureUser(Session session, String token, String serverMetadata) { Token tokenObj = new Token(token, OpenViduRole.PUBLISHER, serverMetadata != null ? serverMetadata : "", - this.coturnCredentialsService.isCoturnAvailable() ? this.coturnCredentialsService.createUser() : null, - null); + this.openviduConfig.isTurnadminAvailable() ? this.coturnCredentialsService.createUser() : null, null); session.storeToken(tokenObj); session.showTokens("Token created for insecure user"); return tokenObj; 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 dc84dcf1..1d0d83a0 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 @@ -49,7 +49,7 @@ public class TokenGeneratorDefault implements TokenGenerator { token += "&role=" + role.name(); token += "&version=" + openviduBuildConfig.getOpenViduServerVersion(); TurnCredentials turnCredentials = null; - if (this.coturnCredentialsService.isCoturnAvailable()) { + if (this.openviduConfig.isTurnadminAvailable()) { turnCredentials = coturnCredentialsService.createUser(); if (turnCredentials != null) { token += "&coturnIp=" + openviduConfig.getCoturnIp(); diff --git a/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java b/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java index 46b7766b..9294c626 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java @@ -63,7 +63,7 @@ public class BashCoturnCredentialsService extends CoturnCredentialsService { } else { log.error("COTURN DB is not empty"); } - this.coturnAvailable.compareAndSet(false, true); + this.openviduConfig.setTurnadminAvailable(true); log.info("Using COTURN credentials service for BASH environment"); } } catch (IOException | InterruptedException e) { diff --git a/openvidu-server/src/main/java/io/openvidu/server/coturn/CoturnCredentialsService.java b/openvidu-server/src/main/java/io/openvidu/server/coturn/CoturnCredentialsService.java index 3a1c085c..048ce0f4 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/coturn/CoturnCredentialsService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/coturn/CoturnCredentialsService.java @@ -17,8 +17,6 @@ package io.openvidu.server.coturn; -import java.util.concurrent.atomic.AtomicBoolean; - import javax.annotation.PostConstruct; import org.slf4j.Logger; @@ -37,16 +35,10 @@ public abstract class CoturnCredentialsService { protected String coturnDatabaseString; protected String trimmedCoturnDatabaseString; - protected AtomicBoolean coturnAvailable = new AtomicBoolean(false); - public abstract TurnCredentials createUser(); public abstract boolean deleteUser(String user); - public boolean isCoturnAvailable() { - return this.coturnAvailable.get(); - } - @PostConstruct protected void initDatabse() { this.coturnDatabaseString = this.openviduConfig.getCoturnDatabaseString(); 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 2e32fd5f..1cf66bdc 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 @@ -215,7 +215,7 @@ public class KurentoSessionManager extends SessionManager { Participant p = sessionidParticipantpublicidParticipant.get(sessionId) .remove(participant.getParticipantPublicId()); - if (this.coturnCredentialsService.isCoturnAvailable()) { + if (this.openviduConfig.isTurnadminAvailable()) { this.coturnCredentialsService.deleteUser(p.getToken().getTurnCredentials().getUsername()); } diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java index e3fcf8f8..70a5c70e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java @@ -285,7 +285,7 @@ public abstract class MediaEndpoint { webEndpoint = result; if (openviduConfig.getCoturnIp() != null && !openviduConfig.getCoturnIp().isEmpty() - && !openviduConfig.getCoturnIp().equals("localhost")) { + && openviduConfig.isTurnadminAvailable()) { webEndpoint.setStunServerAddress(openviduConfig.getCoturnIp()); webEndpoint.setStunServerPort(3478); }