blindsidenetworks / scalelite

Scalable load balancer for BigBlueButton.
GNU Affero General Public License v3.0
465 stars 249 forks source link

Create meeting with pre-upload slides fails #1063

Closed SamuelWei closed 2 months ago

SamuelWei commented 2 months ago

Describe the bug The BigBlueButton's PHP API creates the xml body for a meeting with pre-uploaded slides with the xml declaration: <?xml version="1.0" encoding="UTF-8"?>

The BBB docs don't mention that the xml declaration is required or prohibited, in the provided example no declaration can be seen.

According the the ]xml specification](https://www.w3.org/TR/xml/#NT-XMLDecl) "XML documents should begin with an XML declaration which specifies the version of XML being used."

If the requests POST-Request contains the XML declaration the request fails in scalelite. BigBlueButton servers however can handle requests with a XML declaration.

To Reproduce

Deployment:

  1. Deployment:
  2. Versions:
  3. Tools used for reproducing the issue:

Steps to reproduce the behavior:

  1. '...'
  2. '...'
  3. '...'
  4. See error

Expected behavior The request should be valid and not cause an error

Additional context


I, [2024-04-30T08:11:43.940151 #11]  INFO -- : [3ccbdc4a-e0a1-40c3-b8d7-123861ade752] Started POST "/bigbluebutton/api/create?name=aufzeichnungs_test&meetingID=823300e8-3b9c-45cd-88d8-24e5e31e5d9f&welcome=test1&logoutURL=https%3A%2F%2Fexample.org%2Frooms%2Ff7q-ro5-iw9&record=true&moderatorOnlyMessage=An%20%22aufzeichnungs_test%22%20mit%20Pilos%20demo%20teilnehmen%3Cbr%3ELink%3A%20https%3A%2F%2Fexample.org%2Frooms%2Ff7q-ro5-iw9%3Cbr%3EZugangscode%3A%20503-230-637&autoStartRecording=false&webcamsOnlyForModerator=false&muteOnStart=false&lockSettingsDisableCam=false&lockSettingsDisableMic=false&lockSettingsDisablePrivateChat=false&lockSettingsDisablePublicChat=false&lockSettingsDisableNotes=false&lockSettingsHideUserList=false&lockSettingsLockOnJoin=true&guestPolicy=ALWAYS_ACCEPT&meetingLayout=CUSTOM_LAYOUT&notifyRecordingIsOn=true&remindRecordingIsOn=true&meta_endCallbackUrl=https%3A%2F%2Fexample.orge%2Fapi%2Fv1%2Fmeetings%2F823300e8-3b9c-45cd-88d8-24e5e31e5d9f%2FendCallback%3Fsalt%3D%25242y%252410%2524aDRhqZsaCxumMex9hixVjePSv5m8yvDUaKQjK3da6aDevsLwdp23S&meta_bbb-origin=PILOS&meta_pilos-sub-spool-dir=demo&disabledFeatures=learningDashboard&checksum=a5e1e968236677f97b8d33835f1dfa5286dbb8ff" for xxx.xxx.xxx.xxx at 2024-04-30 08:11:43 +0000
D, [2024-04-30T08:11:43.941148 #11] DEBUG -- : [3ccbdc4a-e0a1-40c3-b8d7-123861ade752] Error occurred while parsing request parameters.
Contents:

<?xml version="1.0" encoding="UTF-8"?>
<modules><module name="presentation"><document url="https://example.org/download/file/2/notes_fehler01.JPG?signature=e660eec4122d6a94e4681e0884ff92771b4c107e4bd3a0f648326f465659028d" filename="notes_fehler01.JPG"/><document url="https://example.org/download/file/1/5df6ed4d-53e2-4cb6-8877-81c17bd1b578.png?signature=02091a61209d7d4b0f869bd5f1928490a942891f7c7e4fdceb8a24497253db40" filename="5df6ed4d53e24cb6887781c17bd1b578.png"/></module></modules>

I, [2024-04-30T08:11:43.941587 #11]  INFO -- : [3ccbdc4a-e0a1-40c3-b8d7-123861ade752] Processing by BigBlueButtonApiController#create as HTML
I, [2024-04-30T08:11:43.942420 #11]  INFO -- : [3ccbdc4a-e0a1-40c3-b8d7-123861ade752] Completed 400 Bad Request in 1ms (Allocations: 105)
F, [2024-04-30T08:11:43.943626 #11] FATAL -- : [3ccbdc4a-e0a1-40c3-b8d7-123861ade752]
[3ccbdc4a-e0a1-40c3-b8d7-123861ade752] ActionDispatch::Http::Parameters::ParseError (859: unexpected token at '<?xml version="1.0" encoding="UTF-8"?>
<modules><module name="presentation"><document url="https://example.org/download/file/2/notes_fehler01.JPG?signature=e660eec4122d6a94e4681e0884ff92771b4c107e4bd3a0f648326f465659028d" filename="notes_fehler01.JPG"/><document url="https://example.org/download/file/1/5df6ed4d-53e2-4cb6-8877-81c17bd1b578.png?signature=02091a61209d7d4b0f869bd5f1928490a942891f7c7e4fdceb8a24497253db40" filename="5df6ed4d53e24cb6887781c17bd1b578.png"/></module></modules>
'):
[3ccbdc4a-e0a1-40c3-b8d7-123861ade752]
[3ccbdc4a-e0a1-40c3-b8d7-123861ade752] app/controllers/concerns/api_helper.rb:23:in `verify_checksum'
SamuelWei commented 2 months ago

Waiting for reproduce steps