From 0254f0f0785079035f78cc92eb369aa42eef266a Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Tue, 29 Sep 2020 15:02:56 +0200 Subject: [PATCH] openvidu-server: TokenGenerator refactoring --- .../io/openvidu/server/OpenViduServer.java | 3 +- .../openvidu/server/core/TokenGenerator.java | 39 +++++++++++- .../server/core/TokenGeneratorDefault.java | 62 ------------------- 3 files changed, 37 insertions(+), 67 deletions(-) delete mode 100644 openvidu-server/src/main/java/io/openvidu/server/core/TokenGeneratorDefault.java diff --git a/openvidu-server/src/main/java/io/openvidu/server/OpenViduServer.java b/openvidu-server/src/main/java/io/openvidu/server/OpenViduServer.java index f1acf638..b1fe5e82 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/OpenViduServer.java +++ b/openvidu-server/src/main/java/io/openvidu/server/OpenViduServer.java @@ -50,7 +50,6 @@ import io.openvidu.server.config.OpenviduConfig.Error; import io.openvidu.server.core.SessionEventsHandler; import io.openvidu.server.core.SessionManager; import io.openvidu.server.core.TokenGenerator; -import io.openvidu.server.core.TokenGeneratorDefault; import io.openvidu.server.coturn.CoturnCredentialsService; import io.openvidu.server.coturn.CoturnCredentialsServiceFactory; import io.openvidu.server.kurento.core.KurentoParticipantEndpointConfig; @@ -160,7 +159,7 @@ public class OpenViduServer implements JsonRpcConfigurer { @ConditionalOnMissingBean @DependsOn("openviduConfig") public TokenGenerator tokenGenerator() { - return new TokenGeneratorDefault(); + return new TokenGenerator(); } @Bean diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/TokenGenerator.java b/openvidu-server/src/main/java/io/openvidu/server/core/TokenGenerator.java index 472f4ee8..6320f7bf 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/core/TokenGenerator.java +++ b/openvidu-server/src/main/java/io/openvidu/server/core/TokenGenerator.java @@ -17,12 +17,45 @@ package io.openvidu.server.core; +import org.apache.commons.lang3.RandomStringUtils; +import org.springframework.beans.factory.annotation.Autowired; + import io.openvidu.java.client.OpenViduRole; +import io.openvidu.server.OpenViduServer; +import io.openvidu.server.config.OpenviduBuildInfo; +import io.openvidu.server.config.OpenviduConfig; +import io.openvidu.server.coturn.CoturnCredentialsService; +import io.openvidu.server.coturn.TurnCredentials; import io.openvidu.server.kurento.core.KurentoTokenOptions; -public interface TokenGenerator { +public class TokenGenerator { + + @Autowired + private CoturnCredentialsService coturnCredentialsService; + + @Autowired + protected OpenviduConfig openviduConfig; + + @Autowired + protected OpenviduBuildInfo openviduBuildConfig; public Token generateToken(String sessionId, OpenViduRole role, String serverMetadata, - KurentoTokenOptions kurentoTokenOptions) throws Exception; - + KurentoTokenOptions kurentoTokenOptions) throws Exception { + String token = OpenViduServer.wsUrl; + token += "?sessionId=" + sessionId; + token += "&token=" + IdentifierPrefixes.TOKEN_ID + RandomStringUtils.randomAlphabetic(1).toUpperCase() + + RandomStringUtils.randomAlphanumeric(15); + token += "&role=" + role.name(); + token += "&version=" + openviduBuildConfig.getOpenViduServerVersion(); + TurnCredentials turnCredentials = null; + if (this.openviduConfig.isTurnadminAvailable()) { + turnCredentials = coturnCredentialsService.createUser(); + if (turnCredentials != null) { + token += "&coturnIp=" + openviduConfig.getCoturnIp(); + token += "&turnUsername=" + turnCredentials.getUsername(); + token += "&turnCredential=" + turnCredentials.getCredential(); + } + } + return new Token(token, role, serverMetadata, turnCredentials, kurentoTokenOptions); + } } 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 deleted file mode 100644 index eeb46563..00000000 --- a/openvidu-server/src/main/java/io/openvidu/server/core/TokenGeneratorDefault.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * (C) Copyright 2017-2020 OpenVidu (https://openvidu.io) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package io.openvidu.server.core; - -import org.apache.commons.lang3.RandomStringUtils; -import org.springframework.beans.factory.annotation.Autowired; - -import io.openvidu.java.client.OpenViduRole; -import io.openvidu.server.OpenViduServer; -import io.openvidu.server.config.OpenviduBuildInfo; -import io.openvidu.server.config.OpenviduConfig; -import io.openvidu.server.coturn.CoturnCredentialsService; -import io.openvidu.server.coturn.TurnCredentials; -import io.openvidu.server.kurento.core.KurentoTokenOptions; - -public class TokenGeneratorDefault implements TokenGenerator { - - @Autowired - private CoturnCredentialsService coturnCredentialsService; - - @Autowired - protected OpenviduConfig openviduConfig; - - @Autowired - protected OpenviduBuildInfo openviduBuildConfig; - - @Override - public Token generateToken(String sessionId, OpenViduRole role, String serverMetadata, - KurentoTokenOptions kurentoTokenOptions) throws Exception { - String token = OpenViduServer.wsUrl; - token += "?sessionId=" + sessionId; - token += "&token=" + IdentifierPrefixes.TOKEN_ID + RandomStringUtils.randomAlphabetic(1).toUpperCase() - + RandomStringUtils.randomAlphanumeric(15); - token += "&role=" + role.name(); - token += "&version=" + openviduBuildConfig.getOpenViduServerVersion(); - TurnCredentials turnCredentials = null; - if (this.openviduConfig.isTurnadminAvailable()) { - turnCredentials = coturnCredentialsService.createUser(); - if (turnCredentials != null) { - token += "&coturnIp=" + openviduConfig.getCoturnIp(); - token += "&turnUsername=" + turnCredentials.getUsername(); - token += "&turnCredential=" + turnCredentials.getCredential(); - } - } - return new Token(token, role, serverMetadata, turnCredentials, kurentoTokenOptions); - } -}