seafile11.X登录时报"CSRF verification failed. Origin checking failed"
docker seafile-ce 11.0.5安装时,web端登录报错。Forbidden (403)
CSRF verification failed. Request aborted.
Help
Reason given for failure:
Origin checking failed - https://**.com does not match any trusted origins.
日志
2023-11-28 13:47:58,429 django.security.csrf:241 log_response Forbidden (Origin checking failed -
docker中使用了端口映射,将seafile容器的TCP 80映射为TCP 1080,10.0.X及之前版本都没问题。
通过官方论坛终于找到原因及解决办法。
原因分析:
10 版本用的是 django 3.2。11 版本用的是 django 4.2。django 4.2 相对 django 3.2,在 csrf 检查时,新增了对 origin http header 的检查。
可能是因为本人修改了端口映射,导致 django 4.2 中 origin http header 检查不通过。配置了 CSRF_TRUSTED_ORIGINS 就会跳过 csrf 的检查。
解决办法1:
在seahub_settings.py 中添加配置:
CSRF_TRUSTED_ORIGINS = ['https://**.com'] #填你的访问地址
解决办法2:(官方推荐)
因为本人自定义了端口号,所以最优的解决方法是修改一下 nginx 的配置,把 8899 端口加入到 host 中:
# vim /....../seafile/seafile-data/nginx/conf/seafile.nginx.conf
location / {
...
proxy_set_header Host $host:1080;
....
以上方法,亲试有效!
页:
[1]