djangosaml2idp icon indicating copy to clipboard operation
djangosaml2idp copied to clipboard

Example setup not working

Open FatemeKhodayari opened this issue 11 months ago • 2 comments

Hi. The code within example_setup directory is not working neither in docker nor in normal setup. In both cases, it returns the following error

Traceback (most recent call last):
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/core/management/base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/core/management/base.py", line 86, in wrapped
    saved_locale = translation.get_language()
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/utils/translation/__init__.py", line 254, in get_language
    return _trans.get_language()
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/utils/translation/__init__.py", line 57, in __getattr__
    if settings.USE_I18N:
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib64/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "djangosaml2idp/example_setup/idp/idp/settings.py", line 166, in <module>
    from saml2.sigver import get_xmlsec_binary  # noqa
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/saml2/sigver.py", line 16, in <module>
    from importlib_resources import path as _resource_path
ImportError: cannot import name 'path' from 'importlib_resources' (djangosaml2idp/venv/lib64/python3.8/site-packages/importlib_resources/__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/core/management/__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/core/management/base.py", line 367, in run_from_argv
    connections.close_all()
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/db/utils.py", line 208, in close_all
    for alias in self:
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/utils/connection.py", line 73, in __iter__
    return iter(self.settings)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/utils/connection.py", line 45, in settings
    self._settings = self.configure_settings(self._settings)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/db/utils.py", line 144, in configure_settings
    databases = super().configure_settings(databases)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/utils/connection.py", line 50, in configure_settings
    settings = getattr(django_settings, self.settings_name)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib64/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "djangosaml2idp/example_setup/idp/idp/settings.py", line 166, in <module>
    from saml2.sigver import get_xmlsec_binary  # noqa
  File "djangosaml2idp/venv/lib64/python3.8/site-packages/saml2/sigver.py", line 16, in <module>
    from importlib_resources import path as _resource_path
ImportError: cannot import name 'path' from 'importlib_resources' (djangosaml2idp/venv/lib64/python3.8/site-packages/importlib_resources/__init__.py)

FatemeKhodayari avatar Jul 16 '23 08:07 FatemeKhodayari

Hi! Not as a solution, but for the sake of running it locally, it works when you change from importlib_resources import path as _resource_path

to from importlib.resources import path as _resource_path

in your local saml2 files.

belle05 avatar Jul 23 '23 13:07 belle05

changing pysaml2 version in requirements.txt for both idp and sp to from 6.5.1 to 7.3.1 solved the issue for me

atynianov avatar Jul 26 '23 10:07 atynianov