Назад | Перейти на главную страницу

Как перенаправить клиентов на внешнюю центральную службу авторизации (CAS) в приложении web2py?

Я пытаюсь использовать внешний CAS для аутентификации пользователей.

Я использую это для выполнения задачи:

auth = Auth(db, cas_provider = 'https://some_url')    

И при доступе к URL http://127.0.0.1:8000/app/default/user/login

Я получаю следующую ошибку:

web2py™     Version 2.9.11-stable+timestamp.2014.09.15.23.35.11
Traceback

Traceback (most recent call last):
  File "web2py/gluon/restricted.py", line 224, in restricted
    exec ccode in environment
  File "web2py/applications/webuser/controllers/default.py", line 101, in <module>
  File "/web2py/gluon/globals.py", line 392, in <lambda>
    self._caller = lambda f: f()
  File "web2py/applications/webuser/controllers/default.py", line 63, in user
    form = auth()
  File "web2py/gluon/tools.py", line 1437, in __call__
    return getattr(self, args[0])()
  File "gluon/tools.py", line 2511, in login
    cas_user = cas.get_user()
  File "gluon/contrib/login_methods/cas_auth.py", line 80, in get_user
    d[key] = self.maps[key](user)
  File "gluon/tools.py", line 1984, in <lambda>
    maps = dict((name, lambda v, n=name: v.get(n, None)) for name in
AttributeError: 'str' object has no attribute 'get'

Я бы хотел, чтобы пользователь был перенаправлен на URL-адрес cas_provider, чтобы авторизовать пользователя, который затем вернулся в приложение ...

Любая помощь будет благословлена, даже если это django или любое другое решение для веб-разработки, которое могло бы помочь понять это ...

ps: я мог успешно аутентифицировать клиентов с помощью внешнего сервера Ldap, отредактировав auth.login_method, но я действительно застрял с перенаправлением аутентификации cas ...