Login broken after upgrade from version 10 to 11

Hi,

I am running seafile in docker. It is currently on version 10.0.1.
When upgrading to 11.0.13, after login I get a 403 (Forbidden) error: CSRF Verification failed.

When I set DEBUG=True in seahub_settings-py, I see the following additional information:

Reason given for failure:

    Origin checking failed - https://my.seafile.server does not match any trusted origins.
    
In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django’s CSRF mechanism has not been used correctly. For POST forms, you need to ensure:

Your browser is accepting cookies.
The view function passes a request to the template’s render method.
In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.
The form has a valid CSRF token. After logging in in another browser tab or hitting the back button after a login, you may need to reload the page with the form, because the token is rotated after a login.
You’re seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed.

You can customize this page using the CSRF_FAILURE_VIEW setting.

When I downgrade back to 10.0.1, everthing is running well.

Also when I log in with version 10.0.1, then upgrade and then open the webinterface again (without a need to relogin) everything seem to be running correctly.

What’s going on here? What do I have to do to get version 11.0.13 running?

This is a new security feature that came with a new version of django or something used by seahub version 11. You need to set it to accept cookies bearing the name of your seafile server. So add to your seahub_settings.py:

CSRF_TRUSTED_ORIGINS = ['https://www.myseafile.com']

You can get extra details on configuring CSRF here:
https://manual.seafile.com/11.0/config/seahub_settings_py/

2 Likes

Thank you! That did it.