[ https://jira.fiware.org/browse/HELP-8934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Fernando Lopez reassigned HELP-8934: ------------------------------------ Assignee: Backlog Manager > [fiware-stackoverflow] "Unauthorized: The request you have made requires authentication. (HTTP 401)" on Fiware Horizon > -------------------------------------------------------------------------------------------------------------------------------- > > Key: HELP-8934 > URL: https://jira.fiware.org/browse/HELP-8934 > Project: Help-Desk > Issue Type: Monitor > Components: FIWARE-TECH-HELP > Reporter: Backlog Manager > Assignee: Backlog Manager > Labels: fiware, horizon, keystone, openstack > > Created question in FIWARE Q/A platform on 09-01-2017 at 14:01 > {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/41548799/unauthorized-the-request-you-have-made-requires-authentication-http-401-on > +Question:+ > "Unauthorized: The request you have made requires authentication. (HTTP 401)" on Fiware Horizon > +Description:+ > I am new to FIWARE. On my Ubuntu 16.04, I have setup Fiware's KeyRock which is a combination of OpenStack Keystone Identity Management and Horizon Dashboard. I have used this guide to set up everything. > After installing Keystone (which is a RESTful API), I have used curl to send HTTP requests and everything is working fine, i.e. I can run these commands on the keystone server using curl. > However, when I run Horizon on the same server using the reference Django project located in the openstack_dashboard directory with: > sudo tools/with_venv.sh python manage.py runserver 0.0.0.0:8000, > Horizon server starts with no errors but when I access it via browser, I get the following error: > A server error occured. Please contact the administrator > On the Keystone server console, I get the following error: > 2017-01-09 11:53:40.962 13285 ERROR keystone.notifications [-] Failed to construct notifier > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications Traceback (most recent call last): > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications File "/keystone/keystone/notifications.py", line 220, in _get_notifier > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications transport = messaging.get_transport(CONF) > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications File "/keystone/.venv/local/lib/python2.7/site-packages/oslo/messaging/transport.py", line 185, in get_transport > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications invoke_kwds=kwargs) > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications File "/keystone/.venv/local/lib/python2.7/site-packages/stevedore/driver.py", line 45, in __init__ > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications verify_requirements=verify_requirements, > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications File "/keystone/.venv/local/lib/python2.7/site-packages/stevedore/named.py", line 55, in __init__ > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications verify_requirements) > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications File "/keystone/.venv/local/lib/python2.7/site-packages/stevedore/extension.py", line 170, in _load_plugins > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications self._on_load_failure_callback(self, ep, err) > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications File "/keystone/.venv/local/lib/python2.7/site-packages/stevedore/driver.py", line 50, in _default_on_load_failure > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications raise err > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications ImportError: cannot import name _uuid_generate_random > 2017-01-09 11:53:40.962 13285 TRACE keystone.notifications > 2017-01-09 11:53:40.964 13285 WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from 127.0.0.1 > 2017-01-09 11:53:40.970 13285 INFO eventlet.wsgi.server [-] 127.0.0.1 - - [09/Jan/2017 11:53:40] "POST /v3/auth/tokens HTTP/1.1" 401 331 0.261293 > On the Horizon server console, I get the following error: > DEBUG:idm_logger:Creating a new internal keystoneclient connection to http://0.0.0.0:5000/v3. > Unauthorized: The request you have made requires authentication. (HTTP 401) > Traceback (most recent call last): > File "/horizon/openstack_dashboard/fiware_api/keystone.py", line 990, in _get_element_and_cache > resource_element = function(request, element) > File "/horizon/openstack_dashboard/fiware_api/keystone.py", line 1022, in <lambda> > request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n), pickle_props=['name']) > File "/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 "/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 "/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 589, in get_auth_headers > return auth.get_headers(self, **kwargs) > File "/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/base.py", line 114, in get_headers > token = self.get_token(session) > File "/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 104, in get_token > return self.get_access(session).auth_token > File "/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 144, in get_access > self.auth_ref = self.get_auth_ref(session) > File "/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/v3.py", line 127, in get_auth_ref > authenticated=False, log=False, **rkwargs) > File "/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 488, in post > return self.request(url, 'POST', **kwargs) > File "/horizon/.venv/src/python-keystoneclient/keystoneclient/utils.py", line 318, in inner > return func(*args, **kwargs) > File "/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 "/horizon/.venv/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 64, in __call__ > return self.application(environ, start_response) > File "/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 168, in __call__ > self.load_middleware() > File "/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 46, in load_middleware > mw_instance = mw_class() > File "/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 "/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 "/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 "/horizon/openstack_dashboard/urls.py", line 36, in <module> > from openstack_dashboard.dashboards.idm_admin.user_accounts \ > File "/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/views.py", line 28, in <module> > from openstack_dashboard.dashboards.idm_admin.user_accounts \ > File "/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 195, in <module> > class UpdateAccountForm(forms.SelfHandlingForm, UserAccountsLogicMixin): > File "/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 202, in UpdateAccountForm > choices=get_account_choices()) > File "/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 172, in get_account_choices > use_idm_account=True), > File "/horizon/openstack_dashboard/fiware_api/keystone.py", line 1022, in get_basic_role > request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n), pickle_props=['name']) > File "/horizon/openstack_dashboard/fiware_api/keystone.py", line 997, in _get_element_and_cache > exceptions.handle(request) > File "/horizon/horizon/exceptions.py", line 291, in handle > messages.error(request, message or fallback) > File "/horizon/horizon/messages.py", line 83, in error > fail_silently=fail_silently) > File "/horizon/horizon/messages.py", line 41, in add_message > if not horizon_message_already_queued(request, message): > File "/horizon/horizon/messages.py", line 28, in horizon_message_already_queued > if request.is_ajax(): > AttributeError: 'NoneType' object has no attribute 'is_ajax' > [09/Jan/2017 12:39:35] "GET / HTTP/1.1" 500 59 > I am sending a GET request via the browser but the Keystone server is receiving a POST request as indicated in its console output. I don't understand why is this so. -- This message was sent by Atlassian JIRA (v6.4.1#64016)
You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy Cookies policy