mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: TokenGenerator refactoring
parent
6a8e85c763
commit
0254f0f078
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue