modoboa / modoboa-imap-migration

An extension to ease the migration between 2 IMAP servers using offlineimap
ISC License
16 stars 12 forks source link

Authentication issue with python3 #55

Closed tonioo closed 3 years ago

tonioo commented 4 years ago

The authentication backend fails on Python3 with the following error:

Environment:

Request Method: POST
Request URL: https://modoboa.example.net/accounts/login/

Django Version: 1.11.25
Python Version: 3.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.sites',
 'django.contrib.staticfiles',
 'reversion',
 'ckeditor',
 'ckeditor_uploader',
 'rest_framework',
 'rest_framework.authtoken',
 'modoboa',
 'modoboa.core',
 'modoboa.lib',
 'modoboa.admin',
 'modoboa.transport',
 'modoboa.relaydomains',
 'modoboa.limits',
 'modoboa.parameters',
 'modoboa.dnstools',
 'modoboa_webmail',
 'modoboa_stats',
 'modoboa_sievefilters',
 'modoboa_radicale',
 'modoboa_postfix_autoreply',
 'modoboa_amavis',
 'modoboa_dmarc',
 'modoboa_imap_migration',
 'webpack_loader')
Installed Middleware:
('x_forwarded_for.middleware.XForwardedForMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'modoboa.core.middleware.LocalConfigMiddleware',
 'modoboa.lib.middleware.AjaxLoginRedirect',
 'modoboa.lib.middleware.CommonExceptionCatcher',
 'modoboa.lib.middleware.RequestCatcherMiddleware')

Traceback:

File "/srv/modoboa/env/lib/python3.7/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/srv/modoboa/env/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/srv/modoboa/env/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/lib/python3.7/contextlib.py" in inner
  74.                 return func(*args, **kwds)

File "/srv/modoboa/env/lib/python3.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  57.         response = view_func(request, *args, **kwargs)

File "/srv/modoboa/env/lib/python3.7/site-packages/modoboa/core/views/auth.py" in dologin
  36.                                 password=form.cleaned_data["password"])

File "/srv/modoboa/env/lib/python3.7/site-packages/django/contrib/auth/__init__.py" in authenticate
  70.             user = _authenticate_with_backend(backend, backend_path, request, credentials)

File "/srv/modoboa/env/lib/python3.7/site-packages/django/contrib/auth/__init__.py" in _authenticate_with_backend
  116.     return backend.authenticate(*args, **credentials)

File "/srv/modoboa/env/lib/python3.7/site-packages/modoboa_imap_migration/auth_backends.py" in authenticate
  49.                 smart_bytes(username), smart_bytes(password))

File "/usr/lib/python3.7/imaplib.py" in login
  596.         typ, dat = self._simple_command('LOGIN', user, self._quote(password))

File "/usr/lib/python3.7/imaplib.py" in _quote
  1188.         arg = arg.replace('\\', '\\\\')

Exception Type: TypeError at /accounts/login/
Exception Value: a bytes-like object is required, not 'str'