09b39a8d63
Associate pads with meetings so session validation is restricted to the meeting's valid session tokens. Meteor will dispatch new redis events on shared notes and closed captions pads creation. This event will go through apps and reach web to populate a new meeting's pad collection that contains all valid pad id's for that session. Nginx will use this collection to check if the user's session token belongs to the pad's authorized users. Besides these modifications, an extra change will be needed at notes.nginx. Location /pad/p/ needs to change it's auth_request: from /bigbluebutton/connection/checkAuthorization; to /bigbluebutton/connection/validatePad;
141 lines
4.8 KiB
Nginx Configuration File
Executable File
141 lines
4.8 KiB
Nginx Configuration File
Executable File
# Handle request to bbb-web running within a SpringBoot Tomcat embedded servlet container. This is for BBB-API and Presentation.
|
|
location /bigbluebutton {
|
|
proxy_http_version 1.1;
|
|
|
|
location /bigbluebutton {
|
|
proxy_pass http://127.0.0.1:8090;
|
|
proxy_redirect default;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
# Workaround IE refusal to set cookies in iframe
|
|
add_header P3P 'CP="No P3P policy available"';
|
|
}
|
|
|
|
|
|
location ~ "^\/bigbluebutton\/presentation\/(?<prestoken>[a-zA-Z0-9_-]+)/upload$" {
|
|
proxy_pass http://127.0.0.1:8090;
|
|
proxy_redirect default;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
# Workaround IE refusal to set cookies in iframe
|
|
add_header P3P 'CP="No P3P policy available"';
|
|
|
|
# Allow 30M uploaded presentation document.
|
|
client_max_body_size 30m;
|
|
client_body_buffer_size 128k;
|
|
|
|
proxy_connect_timeout 90;
|
|
proxy_send_timeout 90;
|
|
proxy_read_timeout 90;
|
|
|
|
proxy_buffer_size 4k;
|
|
proxy_buffers 4 32k;
|
|
proxy_busy_buffers_size 64k;
|
|
proxy_temp_file_write_size 64k;
|
|
|
|
include fastcgi_params;
|
|
|
|
proxy_request_buffering off;
|
|
|
|
# Send a sub-request to allow bbb-web to refuse before loading
|
|
auth_request /bigbluebutton/presentation/checkPresentation;
|
|
|
|
}
|
|
|
|
location /bigbluebutton/presentation/download {
|
|
return 404;
|
|
}
|
|
|
|
location ~ "^/bigbluebutton/presentation/download\/[0-9a-f]+-[0-9]+/[0-9a-f]+-[0-9]+$" {
|
|
if ($arg_presFilename !~ "^[0-9a-f]+-[0-9]+\.[0-9a-zA-Z]+$") {
|
|
return 404;
|
|
}
|
|
proxy_pass http://127.0.0.1:8090$uri$is_args$args;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
# Workaround IE refusal to set cookies in iframe
|
|
add_header P3P 'CP="No P3P policy available"';
|
|
}
|
|
|
|
location = /bigbluebutton/presentation/checkPresentation {
|
|
proxy_pass http://127.0.0.1:8090;
|
|
proxy_redirect default;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
proxy_set_header X-Presentation-Token $prestoken;
|
|
proxy_set_header X-Original-URI $request_uri;
|
|
proxy_set_header Content-Length "";
|
|
proxy_set_header X-Original-Content-Length $http_content_length;
|
|
|
|
# Allow 30M uploaded presentation document.
|
|
client_max_body_size 30m;
|
|
client_body_buffer_size 128k;
|
|
|
|
proxy_pass_request_body off;
|
|
proxy_request_buffering off;
|
|
|
|
}
|
|
|
|
# To check connection authentication, include:
|
|
# auth_request /bigbluebutton/connection/checkAuthorization;
|
|
# auth_request_set $auth_status $upstream_status;
|
|
#
|
|
# and make sure to add sessionToken param in the request URI
|
|
location = /bigbluebutton/connection/checkAuthorization {
|
|
internal;
|
|
proxy_pass http://127.0.0.1:8090;
|
|
proxy_pass_request_body off;
|
|
proxy_set_header Content-Length "";
|
|
proxy_set_header X-Original-URI $request_uri;
|
|
}
|
|
|
|
location = /bigbluebutton/connection/validatePad {
|
|
internal;
|
|
proxy_pass http://127.0.0.1:8090;
|
|
proxy_pass_request_body off;
|
|
proxy_set_header Content-Length "";
|
|
proxy_set_header X-Original-URI $request_uri;
|
|
}
|
|
|
|
location ~ "^/bigbluebutton\/textTrack\/(?<textTrackToken>[a-zA-Z0-9]+)\/(?<recordId>[a-zA-Z0-9_-]+)\/(?<textTrack>.+)$" {
|
|
# Workaround IE refusal to set cookies in iframe
|
|
add_header P3P 'CP="No P3P policy available"';
|
|
|
|
# Allow 30M uploaded presentation document.
|
|
client_max_body_size 30m;
|
|
client_body_buffer_size 128k;
|
|
|
|
proxy_connect_timeout 90;
|
|
proxy_send_timeout 90;
|
|
proxy_read_timeout 90;
|
|
|
|
proxy_buffer_size 4k;
|
|
proxy_buffers 4 32k;
|
|
proxy_busy_buffers_size 64k;
|
|
proxy_temp_file_write_size 64k;
|
|
|
|
include fastcgi_params;
|
|
|
|
proxy_request_buffering off;
|
|
|
|
# Send a sub-request to allow bbb-web to refuse before loading
|
|
auth_request /bigbluebutton/textTrack/validateAuthToken;
|
|
|
|
default_type text/plain;
|
|
alias /var/bigbluebutton/captions/$recordId/$textTrack;
|
|
|
|
}
|
|
|
|
location = /bigbluebutton/textTrack/validateAuthToken {
|
|
internal;
|
|
proxy_pass http://127.0.0.1:8090;
|
|
proxy_redirect default;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
proxy_set_header X-textTrack-token $textTrackToken;
|
|
proxy_set_header X-textTrack-recordId $recordId;
|
|
proxy_set_header X-textTrack-track $textTrack;
|
|
proxy_set_header X-Original-URI $request_uri;
|
|
}
|
|
|
|
}
|