mirror of https://github.com/OpenVidu/openvidu.git
Merge branch 'master' of github.com:OpenVidu/openvidu
commit
267b5037e4
|
@ -176,6 +176,8 @@ public class OpenviduConfig {
|
||||||
|
|
||||||
public static String finalUrl;
|
public static String finalUrl;
|
||||||
|
|
||||||
|
private boolean isTurnadminAvailable = false;
|
||||||
|
|
||||||
// Plain config properties getters
|
// Plain config properties getters
|
||||||
|
|
||||||
public String getServerPort() {
|
public String getServerPort() {
|
||||||
|
@ -308,6 +310,14 @@ public class OpenviduConfig {
|
||||||
finalUrl = finalUrlParam.endsWith("/") ? (finalUrlParam) : (finalUrlParam + "/");
|
finalUrl = finalUrlParam.endsWith("/") ? (finalUrlParam) : (finalUrlParam + "/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isTurnadminAvailable() {
|
||||||
|
return this.isTurnadminAvailable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurnadminAvailable(boolean available) {
|
||||||
|
this.isTurnadminAvailable = available;
|
||||||
|
}
|
||||||
|
|
||||||
public OpenViduRole[] getRolesFromRecordingNotification() {
|
public OpenViduRole[] getRolesFromRecordingNotification() {
|
||||||
OpenViduRole[] roles;
|
OpenViduRole[] roles;
|
||||||
switch (this.openviduRecordingNotification) {
|
switch (this.openviduRecordingNotification) {
|
||||||
|
|
|
@ -37,31 +37,22 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
||||||
// Security for API REST
|
// Security for API REST
|
||||||
ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry conf = http.cors().and()
|
ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry conf = http.cors().and()
|
||||||
.csrf().disable().authorizeRequests()
|
.csrf().disable().authorizeRequests()
|
||||||
// /api/sessions
|
// /api
|
||||||
.antMatchers(HttpMethod.GET, "/api/sessions").authenticated()
|
.antMatchers("/api/**").authenticated()
|
||||||
.antMatchers(HttpMethod.GET, "/api/sessions/**").authenticated()
|
|
||||||
.antMatchers(HttpMethod.POST, "/api/sessions").authenticated()
|
|
||||||
.antMatchers(HttpMethod.POST, "/api/sessions/**").authenticated()
|
|
||||||
// /api/tokens
|
|
||||||
.antMatchers(HttpMethod.POST, "/api/tokens").authenticated()
|
|
||||||
// /api/recordings
|
|
||||||
.antMatchers(HttpMethod.GET, "/api/recordings").authenticated()
|
|
||||||
.antMatchers(HttpMethod.GET, "/api/recordings/**").authenticated()
|
|
||||||
.antMatchers(HttpMethod.POST, "/api/recordings/start").authenticated()
|
|
||||||
.antMatchers(HttpMethod.POST, "/api/recordings/stop").authenticated()
|
|
||||||
.antMatchers(HttpMethod.DELETE, "/api/recordings/**").authenticated()
|
|
||||||
// /config
|
// /config
|
||||||
.antMatchers(HttpMethod.GET, "/config/openvidu-publicurl").permitAll()
|
.antMatchers(HttpMethod.GET, "/config/openvidu-publicurl").permitAll()
|
||||||
.antMatchers(HttpMethod.GET, "/config/**").authenticated()
|
.antMatchers(HttpMethod.GET, "/config/**").authenticated()
|
||||||
// /cdr
|
// /cdr
|
||||||
.antMatchers(HttpMethod.GET, "/cdr/**").authenticated()
|
.antMatchers(HttpMethod.GET, "/cdr/**").authenticated()
|
||||||
|
// /accept-certificate
|
||||||
|
.antMatchers(HttpMethod.GET, "/accept-certificate").permitAll()
|
||||||
// Dashboard
|
// Dashboard
|
||||||
.antMatchers("/").authenticated();
|
.antMatchers("/dashboard").authenticated();
|
||||||
|
|
||||||
// Security for layouts
|
// Security for recording layouts
|
||||||
conf.antMatchers("/layouts/**").authenticated();
|
conf.antMatchers("/layouts/**").authenticated();
|
||||||
|
|
||||||
// Security for recorded videos
|
// Security for recorded video files
|
||||||
if (openviduConf.getOpenViduRecordingPublicAccess()) {
|
if (openviduConf.getOpenViduRecordingPublicAccess()) {
|
||||||
conf = conf.antMatchers("/recordings/**").permitAll();
|
conf = conf.antMatchers("/recordings/**").permitAll();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -310,8 +310,7 @@ public abstract class SessionManager {
|
||||||
|
|
||||||
public Token newTokenForInsecureUser(Session session, String token, String serverMetadata) {
|
public Token newTokenForInsecureUser(Session session, String token, String serverMetadata) {
|
||||||
Token tokenObj = new Token(token, OpenViduRole.PUBLISHER, serverMetadata != null ? serverMetadata : "",
|
Token tokenObj = new Token(token, OpenViduRole.PUBLISHER, serverMetadata != null ? serverMetadata : "",
|
||||||
this.coturnCredentialsService.isCoturnAvailable() ? this.coturnCredentialsService.createUser() : null,
|
this.openviduConfig.isTurnadminAvailable() ? this.coturnCredentialsService.createUser() : null, null);
|
||||||
null);
|
|
||||||
session.storeToken(tokenObj);
|
session.storeToken(tokenObj);
|
||||||
session.showTokens("Token created for insecure user");
|
session.showTokens("Token created for insecure user");
|
||||||
return tokenObj;
|
return tokenObj;
|
||||||
|
|
|
@ -49,7 +49,7 @@ public class TokenGeneratorDefault implements TokenGenerator {
|
||||||
token += "&role=" + role.name();
|
token += "&role=" + role.name();
|
||||||
token += "&version=" + openviduBuildConfig.getOpenViduServerVersion();
|
token += "&version=" + openviduBuildConfig.getOpenViduServerVersion();
|
||||||
TurnCredentials turnCredentials = null;
|
TurnCredentials turnCredentials = null;
|
||||||
if (this.coturnCredentialsService.isCoturnAvailable()) {
|
if (this.openviduConfig.isTurnadminAvailable()) {
|
||||||
turnCredentials = coturnCredentialsService.createUser();
|
turnCredentials = coturnCredentialsService.createUser();
|
||||||
if (turnCredentials != null) {
|
if (turnCredentials != null) {
|
||||||
token += "&coturnIp=" + openviduConfig.getCoturnIp();
|
token += "&coturnIp=" + openviduConfig.getCoturnIp();
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class BashCoturnCredentialsService extends CoturnCredentialsService {
|
||||||
} else {
|
} else {
|
||||||
log.error("COTURN DB is not empty");
|
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");
|
log.info("Using COTURN credentials service for BASH environment");
|
||||||
}
|
}
|
||||||
} catch (IOException | InterruptedException e) {
|
} catch (IOException | InterruptedException e) {
|
||||||
|
|
|
@ -17,8 +17,6 @@
|
||||||
|
|
||||||
package io.openvidu.server.coturn;
|
package io.openvidu.server.coturn;
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -37,16 +35,10 @@ public abstract class CoturnCredentialsService {
|
||||||
protected String coturnDatabaseString;
|
protected String coturnDatabaseString;
|
||||||
protected String trimmedCoturnDatabaseString;
|
protected String trimmedCoturnDatabaseString;
|
||||||
|
|
||||||
protected AtomicBoolean coturnAvailable = new AtomicBoolean(false);
|
|
||||||
|
|
||||||
public abstract TurnCredentials createUser();
|
public abstract TurnCredentials createUser();
|
||||||
|
|
||||||
public abstract boolean deleteUser(String user);
|
public abstract boolean deleteUser(String user);
|
||||||
|
|
||||||
public boolean isCoturnAvailable() {
|
|
||||||
return this.coturnAvailable.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
protected void initDatabse() {
|
protected void initDatabse() {
|
||||||
this.coturnDatabaseString = this.openviduConfig.getCoturnDatabaseString();
|
this.coturnDatabaseString = this.openviduConfig.getCoturnDatabaseString();
|
||||||
|
|
|
@ -215,7 +215,7 @@ public class KurentoSessionManager extends SessionManager {
|
||||||
Participant p = sessionidParticipantpublicidParticipant.get(sessionId)
|
Participant p = sessionidParticipantpublicidParticipant.get(sessionId)
|
||||||
.remove(participant.getParticipantPublicId());
|
.remove(participant.getParticipantPublicId());
|
||||||
|
|
||||||
if (this.coturnCredentialsService.isCoturnAvailable()) {
|
if (this.openviduConfig.isTurnadminAvailable()) {
|
||||||
this.coturnCredentialsService.deleteUser(p.getToken().getTurnCredentials().getUsername());
|
this.coturnCredentialsService.deleteUser(p.getToken().getTurnCredentials().getUsername());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -285,7 +285,7 @@ public abstract class MediaEndpoint {
|
||||||
webEndpoint = result;
|
webEndpoint = result;
|
||||||
|
|
||||||
if (openviduConfig.getCoturnIp() != null && !openviduConfig.getCoturnIp().isEmpty()
|
if (openviduConfig.getCoturnIp() != null && !openviduConfig.getCoturnIp().isEmpty()
|
||||||
&& !openviduConfig.getCoturnIp().equals("localhost")) {
|
&& openviduConfig.isTurnadminAvailable()) {
|
||||||
webEndpoint.setStunServerAddress(openviduConfig.getCoturnIp());
|
webEndpoint.setStunServerAddress(openviduConfig.getCoturnIp());
|
||||||
webEndpoint.setStunServerPort(3478);
|
webEndpoint.setStunServerPort(3478);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,14 +17,17 @@
|
||||||
|
|
||||||
package io.openvidu.server.rest;
|
package io.openvidu.server.rest;
|
||||||
|
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
@Controller
|
@RestController
|
||||||
|
@CrossOrigin
|
||||||
|
@RequestMapping("/accept-certificate")
|
||||||
public class CertificateRestController {
|
public class CertificateRestController {
|
||||||
|
|
||||||
@RequestMapping(value = "/accept-certificate", method = RequestMethod.GET)
|
@RequestMapping(method = RequestMethod.GET)
|
||||||
public String acceptCert() throws Exception {
|
public String acceptCert() throws Exception {
|
||||||
System.out.println("Navigating to accept certificate");
|
System.out.println("Navigating to accept certificate");
|
||||||
return "accept-cert";
|
return "accept-cert";
|
||||||
|
|
Loading…
Reference in New Issue