Convert User Verification Service check to a non-blocking HTTP call #11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #10
This PR reworks the bit where we make a call out to the User Verification Service in order to check a user's provided credentials. Instead of a blocking HTTP call, we now do the call async, allowing Prosody to continue serving requests while we wait for the response.
#9 was an initial attempt to do the same and was quite close! But it had a couple bugs in it, one being the very non-obvious fact that
options.bodyneeds to be the JSON string and not be set directly to a table.Tested with success on my own Jitsi Auth setup. One thing I noticed while doing so is that if
verify_room_membershiphappened to returnnilfor it's first return argument, the user would be allowed into the Jitsi room. This was due to us only checking whether the return value ofisMemberwasfalse, rather than checking it was nottrue. The second commit tackles that problem as a defensive measure.Signed-off-by: Andrew Morgan andrewm@element.io