1

我已经使用此处的安装指南在 Ubuntu v.14.04 映像上安装了 keyrock 和 Horizo​​n 。Keyrock 和 Horizo​​n 运行没有错误。当我想访问 localhost:8000 上的门户时,我从 keystone Unauthorized 收到错误:您发出的请求需要身份验证。(HTTP 401)

完整的跟踪是:

Unauthorized: The request you have made requires authentication. (HTTP 401)
Traceback (most recent call last):
  File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 982, in _get_element_and_cache
    resource_element = function(request, element)
  File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 1014, in <lambda>
    request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n), pickle_props=['name'])
  File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 64, in internal_keystoneclient
    cache.set(CACHE_CLIENT, keystoneclient.session.get_token(), INTERNAL_CLIENT_CACHE_TIME)
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 610, in get_token
    return (self.get_auth_headers(auth) or {}).get('X-Auth-Token')
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 589, in get_auth_headers
    return auth.get_headers(self, **kwargs)
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/base.py", line 114, in get_headers
    token = self.get_token(session)
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 104, in get_token
    return self.get_access(session).auth_token
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 144, in get_access
    self.auth_ref = self.get_auth_ref(session)
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/v3.py", line 127, in get_auth_ref
    authenticated=False, log=False, **rkwargs)
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 488, in post
    return self.request(url, 'POST', **kwargs)
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/utils.py", line 318, in inner
    return func(*args, **kwargs)
  File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 389, in request
    raise exceptions.from_response(resp, method, url)
Unauthorized: The request you have made requires authentication. (HTTP 401)
Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 64, in __call__
    return self.application(environ, start_response)
  File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 168, in __call__
    self.load_middleware()
  File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 46, in load_middleware
    mw_instance = mw_class()
  File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/middleware/locale.py", line 23, in __init__
    for url_pattern in get_resolver(None).url_patterns:
  File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 367, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 361, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/ubuntu/horizon/openstack_dashboard/urls.py", line 36, in <module>
    from openstack_dashboard.dashboards.idm_admin.user_accounts \
  File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/views.py", line 28, in <module>
    from openstack_dashboard.dashboards.idm_admin.user_accounts \
  File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 195, in <module>
    class UpdateAccountForm(forms.SelfHandlingForm, UserAccountsLogicMixin):
  File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 202, in UpdateAccountForm
    choices=get_account_choices())
  File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 172, in get_account_choices
    use_idm_account=True),
  File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 1014, in get_basic_role
    request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n), pickle_props=['name'])
  File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 989, in _get_element_and_cache
    exceptions.handle(request)
  File "/home/ubuntu/horizon/horizon/exceptions.py", line 291, in handle
    messages.error(request, message or fallback)
  File "/home/ubuntu/horizon/horizon/messages.py", line 83, in error
    fail_silently=fail_silently)
  File "/home/ubuntu/horizon/horizon/messages.py", line 41, in add_message
    if not horizon_message_already_queued(request, message):
  File "/home/ubuntu/horizon/horizon/messages.py", line 28, in horizon_message_already_queued
    if request.is_ajax():
AttributeError: 'NoneType' object has no attribute 'is_ajax'
[08/Nov/2016 12:42:40] "GET / HTTP/1.1" 500 59

根据文档,门户应该在没有事先认证的情况下显示自己。我能做些什么来解决这个问题?

4

0 回答 0