Login/Changepassword: change to verifying the hostname without the part.
Verifying the port was causing issues, and anyhow, this check is paranoid and isn't strictly necessary for security. The problem is that Django's `get_host()` and the equivalent on some platforms returns it without the port, though on others (like e.g. the library we use from JS) it returns with the port. This was inconsistent and was causing authentication to fail. We thus relaxed the test to not include the port when matching, which should make it work consistently across all platforms.
This commit is contained in:
parent
a6f5e070a4
commit
843b59a0ac
@ -710,7 +710,7 @@ class AuthenticationViewSet(viewsets.ViewSet):
|
||||
elif challenge_data['userId'] != user.id:
|
||||
content = {'code': 'wrong_user', 'detail': 'This challenge is for the wrong user'}
|
||||
return Response(content, status=status.HTTP_400_BAD_REQUEST)
|
||||
elif not settings.DEBUG and host != request.get_host():
|
||||
elif not settings.DEBUG and host.split(':', 1)[0] != request.get_host():
|
||||
detail = 'Found wrong host name. Got: "{}" expected: "{}"'.format(host, request.get_host())
|
||||
content = {'code': 'wrong_host', 'detail': detail}
|
||||
return Response(content, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
Loading…
Reference in New Issue
Block a user