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.SessionEventsHandler;
|
||||||
import io.openvidu.server.core.SessionManager;
|
import io.openvidu.server.core.SessionManager;
|
||||||
import io.openvidu.server.core.TokenGenerator;
|
import io.openvidu.server.core.TokenGenerator;
|
||||||
import io.openvidu.server.core.TokenGeneratorDefault;
|
|
||||||
import io.openvidu.server.coturn.CoturnCredentialsService;
|
import io.openvidu.server.coturn.CoturnCredentialsService;
|
||||||
import io.openvidu.server.coturn.CoturnCredentialsServiceFactory;
|
import io.openvidu.server.coturn.CoturnCredentialsServiceFactory;
|
||||||
import io.openvidu.server.kurento.core.KurentoParticipantEndpointConfig;
|
import io.openvidu.server.kurento.core.KurentoParticipantEndpointConfig;
|
||||||
|
@ -160,7 +159,7 @@ public class OpenViduServer implements JsonRpcConfigurer {
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
@DependsOn("openviduConfig")
|
@DependsOn("openviduConfig")
|
||||||
public TokenGenerator tokenGenerator() {
|
public TokenGenerator tokenGenerator() {
|
||||||
return new TokenGeneratorDefault();
|
return new TokenGenerator();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|
|
@ -17,12 +17,45 @@
|
||||||
|
|
||||||
package io.openvidu.server.core;
|
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.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;
|
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,
|
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