2016-06-16 3 views
0

すでにWireCloudは、次のエラーが表示されている権限のあるユーザーでキーストーンを経てWireCloudにログインしようとしている:WireCloudログイン:完全な/でAuthStateForbidden/fiware/

Environment: 

Request Method: GET 
Request URL: http://dashboard.example.com/complete/fiware/?state=pHFsTpzh7lhXKBiqkpZxSYOPpRi5w1ph&code=pxJSjgIqyAVAvHfP8xzFIkAmnCLtx6 

Django Version: 1.9.6 
Python Version: 2.7.9 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'wirecloud.commons', 
'compressor', 
'wirecloud.catalogue', 
'wirecloud.platform', 
'wirecloud.oauth2provider', 
'wirecloud.fiware', 
'social.apps.django_app.default') 
Installed Middleware: 
('wirecloud.commons.middleware.URLMiddleware',) 



Traceback: 

File "/opt/wc/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    149.      response = self.process_exception_by_middleware(e, request) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    147.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    57.   response = view_func(request, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view 
    58.   return view_func(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/apps/django_app/utils.py" in wrapper 
    51.    return func(request, backend, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/apps/django_app/views.py" in complete 
    28.      redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/actions.py" in do_complete 
    43.   user = backend.complete(user=user, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/base.py" in complete 
    41.   return self.auth_complete(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/utils.py" in wrapper 
    229.    return func(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/oauth.py" in auth_complete 
    375.   state = self.validate_state() 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/oauth.py" in validate_state 
    90.    raise AuthStateForbidden(self) 

Exception Type: AuthStateForbidden at /complete/fiware/ 
Exception Value: Wrong state parameter given. 

あなたがしてログインしようとすると、そのユーザーと再びWireCloudに接続し、Keyrockログインからのセッションがまだ有効であれば正常に動作します。しかし、なぜこのエラーは表示されますか?

そしてさらに悪い:新しいユーザーがキーストーンへのログイン後、WireCloudにサインアップしたい場合は、このエラーがスローされます:

Environment: 


Request Method: GET 
Request URL: http://dashboard.example.com/complete/fiware/?state=4Ccx9THwAxUht3rXi3N3J9du1LTTOmcC&code=mZXx34K8ojV9RJiNiNtUuzc10HtoJU 

Django Version: 1.9.6 
Python Version: 2.7.9 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'wirecloud.commons', 
'compressor', 
'wirecloud.catalogue', 
'wirecloud.platform', 
'wirecloud.oauth2provider', 
'wirecloud.fiware', 
'social.apps.django_app.default') 
Installed Middleware: 
('wirecloud.commons.middleware.URLMiddleware',) 



Traceback: 

File "/opt/wc/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    149.      response = self.process_exception_by_middleware(e, request) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    147.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    57.   response = view_func(request, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view 
    58.   return view_func(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/apps/django_app/utils.py" in wrapper 
    51.    return func(request, backend, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/apps/django_app/views.py" in complete 
    28.      redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/actions.py" in do_complete 
    43.   user = backend.complete(user=user, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/base.py" in complete 
    41.   return self.auth_complete(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/utils.py" in wrapper 
    229.    return func(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/oauth.py" in auth_complete 
    387.        *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/utils.py" in wrapper 
    229.    return func(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/oauth.py" in do_auth 
    398.   return self.strategy.authenticate(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/strategies/django_strategy.py" in authenticate 
    96.   return authenticate(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/contrib/auth/__init__.py" in authenticate 
    74.    user = backend.authenticate(**credentials) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/base.py" in authenticate 
    82.   return self.pipeline(pipeline, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/base.py" in pipeline 
    85.   out = self.run_pipeline(pipeline, pipeline_index, *args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/backends/base.py" in run_pipeline 
    112.    result = func(*args, **out) or {} 

File "/opt/wc/venv/lib/python2.7/site-packages/social/pipeline/user.py" in create_user 
    69.   'user': strategy.create_user(**fields) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/strategies/base.py" in create_user 
    53.   return self.storage.user.create_user(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/social/storage/django_orm.py" in create_user 
    60.   return cls.user_model().objects.create_user(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/contrib/auth/models.py" in create_user 
    154.   return self._create_user(username, email, password, **extra_fields) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/contrib/auth/models.py" in _create_user 
    148.   user.save(using=self._db) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/contrib/auth/base_user.py" in save 
    74.   super(AbstractBaseUser, self).save(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/models/base.py" in save 
    708.      force_update=force_update, update_fields=update_fields) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/models/base.py" in save_base 
    736.    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/models/base.py" in _save_table 
    820.    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert 
    859.        using=using, raw=raw) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method 
    122.     return getattr(self.get_queryset(), name)(*args, **kwargs) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/models/query.py" in _insert 
    1039.   return query.get_compiler(using=using).execute_sql(return_id) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql 
    1060.     cursor.execute(sql, params) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/backends/utils.py" in execute 
    79.    return super(CursorDebugWrapper, self).execute(sql, params) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/backends/utils.py" in execute 
    64.     return self.cursor.execute(sql, params) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/utils.py" in __exit__ 
    95.     six.reraise(dj_exc_type, dj_exc_value, traceback) 

File "/opt/wc/venv/lib/python2.7/site-packages/django/db/backends/utils.py" in execute 
    64.     return self.cursor.execute(sql, params) 

Exception Type: IntegrityError at /complete/fiware/ 
Exception Value: FEHLER: NULL-Wert in Spalte „last_login“ verletzt Not-Null-Constraint 
DETAIL: Fehlgeschlagene Zeile enthält (21, !mtZhl9gusVEPg4QTz80CbnY61pc7SxUF73AvtPu7, null, f, bi-demo, , , [email protected], f, t, 2016-06-16 06:40:19.588666+00). 

これは、いくつかのPostgresの制約に違反することができることを示している(私たちはpostgresのを使用しますWireCloudのdbとして)。これは、まだWireCloudを許可していないが、キーストーンにログインしているユーザーがWireCloudにアクセスしようとしたときに発生します。通常、権限ページは表示されますが、代わりにエラーがスローされ、ユーザはWireCloud Django管理パネルで作成されません。

答えて

0

最初のエラーは再現できませんでしたが、2番目のエラーを考慮すると、django-contrib-auth djangoアプリの移行が未適用であることが確認できます。

python manage.py migrate --listを使用して、適用または未適用の移行の一覧を取得します。あなたはこのような何かを得る必要があります:あなたのケースでは

admin 
[X] 0001_initial 
[X] 0002_logentry_remove_auto_add 
auth 
[X] 0001_initial 
[X] 0002_alter_permission_name_max_length 
[X] 0003_alter_user_email_max_length 
[X] 0004_alter_user_username_opts 
[ ] 0005_alter_user_last_login_null 
[ ] 0006_require_contenttypes_0002 
[ ] 0007_alter_validators_add_error_messages 
catalogue 
[X] 0001_initial 
contenttypes 
[X] 0001_initial 
[X] 0002_remove_content_type_name 
default 
[X] 0001_initial 
[X] 0002_add_related_name 
[X] 0003_alter_email_max_length 
[X] 0004_auto_20160423_0400 
platform 
[X] 0001_initial 
[X] 0002_auto_20160127_1143 
[X] 0003_remove_userworkspace_active 
sessions 
[X] 0001_initial 

0005_alter_user_last_login_nullが(django.contrib.authauthとしてリストされている)が正しく適用されていないので、あなたは、2番目のエラーを取得しています。

あなたは(あなたがあなたの代わりにpython manage.py migrate authを使用してdjango.contrib.authアプリのために保留中のマイグレーションを適用することができます好む場合)python manage.py migrateを使用して、保留中のマイグレーションを適用することができます。

最初のエラーは適用されていない移行に関連する場合もありますが、どのような移行が行われるかはわかりません。

+0

'python manage.py migrate --list'は空のボックスのみを表示するので、残っているすべての移行があるようです。しかし、 'python manage.py migrate'を呼び出すと、' django.db.utils.ProgrammingError:ERROR:Relation "というメッセージが表示されます。django_content_typeは既に存在しています。 こうして私は全体のデータベースを落としてから、移行を試みました。このようにして移行は機能しましたが、ログイン時にエラーは同じです。 – Newbird

+0

'0005_alter_user_last_login_null'が正しく適用されていると、' last_login'カラムが 'null'のときにデフォルト値を使用するように指示するので、' NOT NULL constraint failed:auth_user.last_login'を取得できません。 WireCloudを手でインストールしましたか?ドッカーを使ってWireCloudをインストールしましたか?どのDBを使用していますか(postgres/mysql)? –

+0

WireCloudを手動でインストールし、PostgreSQLをdbとして使用しました。 WireCloudのアップデートから来たのだろうか?私たちはまだ 'python manage.py syncdb'を入手して更新したWireCloudバージョンをインストールしました。 – Newbird