From bb9880c44aeba391de7d057b35e2cff4df65beb6 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Fri, 18 May 2018 13:50:54 +0200 Subject: [PATCH] Alert shown in insecure tutorials when invalid certificate --- openvidu-getaroom/web/app.js | 18 +++++++++++++++--- openvidu-hello-world/web/app.js | 18 +++++++++++++++--- .../src/app/app.component.ts | 17 ++++++++++++++--- openvidu-insecure-js/web/app.js | 18 +++++++++++++++--- 4 files changed, 59 insertions(+), 12 deletions(-) diff --git a/openvidu-getaroom/web/app.js b/openvidu-getaroom/web/app.js index e8c8e43b..42e49d99 100644 --- a/openvidu-getaroom/web/app.js +++ b/openvidu-getaroom/web/app.js @@ -266,6 +266,8 @@ function updateLayout() { * 3) The token must be consumed in Session.connect() method */ +var OPENVIDU_SERVER_URL = "https://" + location.hostname + ":4443"; + function getToken(mySessionId) { return createSession(mySessionId).then(sId => createToken(sId)); } @@ -274,14 +276,24 @@ function createSession(sId) { return new Promise((resolve, reject) => { $.ajax({ type: "POST", - url: "https://" + location.hostname + ":4443/api/sessions", + url: OPENVIDU_SERVER_URL + "/api/sessions", data: JSON.stringify({ customSessionId: sId }), headers: { "Authorization": "Basic " + btoa("OPENVIDUAPP:MY_SECRET"), "Content-Type": "application/json" }, success: response => resolve(response.id), - error: error => error.status === 409 ? resolve(sId) : reject(error) + error: (error) => { + if (error.status === 409) { + resolve(sId); + } else { + console.warn('No connection to OpenVidu Server. This may be a certificate error at ' + OPENVIDU_SERVER_URL); + if (window.confirm('No connection to OpenVidu Server. This may be a certificate error at \"' + OPENVIDU_SERVER_URL + '\"\n\nClick OK to navigate and accept it. ' + + 'If no certificate warning is shown, then check that your OpenVidu Server is up and running at "' + OPENVIDU_SERVER_URL + '"')) { + location.assign(OPENVIDU_SERVER_URL + '/accept-certificate'); + } + } + } }); }); } @@ -290,7 +302,7 @@ function createToken(sId) { return new Promise((resolve, reject) => { $.ajax({ type: "POST", - url: "https://" + location.hostname + ":4443/api/tokens", + url: OPENVIDU_SERVER_URL + "/api/tokens", data: JSON.stringify({ session: sId }), headers: { "Authorization": "Basic " + btoa("OPENVIDUAPP:MY_SECRET"), diff --git a/openvidu-hello-world/web/app.js b/openvidu-hello-world/web/app.js index 2b2c80e5..dd384d7b 100644 --- a/openvidu-hello-world/web/app.js +++ b/openvidu-hello-world/web/app.js @@ -53,6 +53,8 @@ window.onbeforeunload = function () { * 3) The token must be consumed in Session.connect() method */ +var OPENVIDU_SERVER_URL = "https://" + location.hostname + ":4443"; + function getToken(mySessionId) { return createSession(mySessionId).then(sessionId => createToken(sessionId)); } @@ -61,14 +63,24 @@ function createSession(sessionId) { return new Promise((resolve, reject) => { $.ajax({ type: "POST", - url: "https://" + location.hostname + ":4443/api/sessions", + url: OPENVIDU_SERVER_URL + "/api/sessions", data: JSON.stringify({ customSessionId: sessionId }), headers: { "Authorization": "Basic " + btoa("OPENVIDUAPP:MY_SECRET"), "Content-Type": "application/json" }, success: response => resolve(response.id), - error: error => error.status === 409 ? resolve(sessionId) : reject(error) + error: (error) => { + if (error.status === 409) { + resolve(sessionId); + } else { + console.warn('No connection to OpenVidu Server. This may be a certificate error at ' + OPENVIDU_SERVER_URL); + if (window.confirm('No connection to OpenVidu Server. This may be a certificate error at \"' + OPENVIDU_SERVER_URL + '\"\n\nClick OK to navigate and accept it. ' + + 'If no certificate warning is shown, then check that your OpenVidu Server is up and running at "' + OPENVIDU_SERVER_URL + '"')) { + location.assign(OPENVIDU_SERVER_URL + '/accept-certificate'); + } + } + } }); }); } @@ -77,7 +89,7 @@ function createToken(sessionId) { return new Promise((resolve, reject) => { $.ajax({ type: "POST", - url: "https://" + location.hostname + ":4443/api/tokens", + url: OPENVIDU_SERVER_URL + "/api/tokens", data: JSON.stringify({ session: sessionId }), headers: { "Authorization": "Basic " + btoa("OPENVIDUAPP:MY_SECRET"), diff --git a/openvidu-insecure-angular/src/app/app.component.ts b/openvidu-insecure-angular/src/app/app.component.ts index 837e35c3..6f92a836 100644 --- a/openvidu-insecure-angular/src/app/app.component.ts +++ b/openvidu-insecure-angular/src/app/app.component.ts @@ -12,6 +12,8 @@ import { OpenVidu, Session, Stream, StreamEvent } from 'openvidu-browser'; }) export class AppComponent implements OnDestroy { + OPENVIDU_SERVER_URL = 'https://' + location.hostname + ':4443'; + // OpenVidu objects OV: OpenVidu; session: Session; @@ -179,10 +181,19 @@ export class AppComponent implements OnDestroy { 'Content-Type': 'application/json' }) }; - return this.httpClient.post('https://' + location.hostname + ':4443/api/sessions', body, options) + return this.httpClient.post(this.OPENVIDU_SERVER_URL + '/api/sessions', body, options) .pipe( catchError(error => { - error.status === 409 ? resolve(sessionId) : reject(error); + if (error.status === 409) { + resolve(sessionId); + } else { + console.warn('No connection to OpenVidu Server. This may be a certificate error at ' + this.OPENVIDU_SERVER_URL); + if (window.confirm('No connection to OpenVidu Server. This may be a certificate error at \"' + this.OPENVIDU_SERVER_URL + + '\"\n\nClick OK to navigate and accept it. If no certificate warning is shown, then check that your OpenVidu Server' + + 'is up and running at "' + this.OPENVIDU_SERVER_URL + '"')) { + location.assign(this.OPENVIDU_SERVER_URL + '/accept-certificate'); + } + } return observableThrowError(error); }) ) @@ -203,7 +214,7 @@ export class AppComponent implements OnDestroy { 'Content-Type': 'application/json' }) }; - return this.httpClient.post('https://' + location.hostname + ':4443/api/tokens', body, options) + return this.httpClient.post(this.OPENVIDU_SERVER_URL + '/api/tokens', body, options) .pipe( catchError(error => { reject(error); diff --git a/openvidu-insecure-js/web/app.js b/openvidu-insecure-js/web/app.js index dcb94627..9c8b984f 100644 --- a/openvidu-insecure-js/web/app.js +++ b/openvidu-insecure-js/web/app.js @@ -186,6 +186,8 @@ function initMainVideo(videoElement, userData) { * 3) The token must be consumed in Session.connect() method */ +var OPENVIDU_SERVER_URL = "https://" + location.hostname + ":4443"; + function getToken(mySessionId) { return createSession(mySessionId).then(sessionId => createToken(sessionId)); } @@ -194,14 +196,24 @@ function createSession(sessionId) { return new Promise((resolve, reject) => { $.ajax({ type: "POST", - url: "https://" + location.hostname + ":4443/api/sessions", + url: OPENVIDU_SERVER_URL + "/api/sessions", data: JSON.stringify({ customSessionId: sessionId }), headers: { "Authorization": "Basic " + btoa("OPENVIDUAPP:MY_SECRET"), "Content-Type": "application/json" }, success: response => resolve(response.id), - error: error => error.status === 409 ? resolve(sessionId) : reject(error) + error: (error) => { + if (error.status === 409) { + resolve(sessionId); + } else { + console.warn('No connection to OpenVidu Server. This may be a certificate error at ' + OPENVIDU_SERVER_URL); + if (window.confirm('No connection to OpenVidu Server. This may be a certificate error at \"' + OPENVIDU_SERVER_URL + '\"\n\nClick OK to navigate and accept it. ' + + 'If no certificate warning is shown, then check that your OpenVidu Server is up and running at "' + OPENVIDU_SERVER_URL + '"')) { + location.assign(OPENVIDU_SERVER_URL + '/accept-certificate'); + } + } + } }); }); } @@ -210,7 +222,7 @@ function createToken(sessionId) { return new Promise((resolve, reject) => { $.ajax({ type: "POST", - url: "https://" + location.hostname + ":4443/api/tokens", + url: OPENVIDU_SERVER_URL + "/api/tokens", data: JSON.stringify({ session: sessionId }), headers: { "Authorization": "Basic " + btoa("OPENVIDUAPP:MY_SECRET"),