Browse Source

HUE-2458 [core] make libsaml backwards compatible with abec's saml2 forks

Erick Tryzelaar 11 năm trước cách đây
mục cha
commit
4d5d078

+ 3 - 0
desktop/libs/libsaml/src/libsaml/saml_settings.py

@@ -90,3 +90,6 @@ SAML_CONFIG = {
 
 SAML_ATTRIBUTE_MAPPING = libsaml.conf.USER_ATTRIBUTE_MAPPING.get()
 SAML_CREATE_UNKNOWN_USER = libsaml.conf.CREATE_USERS_ON_LOGIN.get()
+
+if libsaml.conf.USERNAME_SOURCE.get() == 'nameid':
+  SAML_USE_NAME_ID_AS_USERNAME = True

+ 1 - 1
desktop/libs/libsaml/src/libsaml/urls.py

@@ -31,7 +31,7 @@ urlpatterns = patterns(
 
 urlpatterns += patterns('libsaml.views',
                         url(r'^ls/$', 'logout_service', name='saml2_ls'),
-                        url(r'^acs/$', 'acs', name='saml2_acs'),
+                        url(r'^acs/$', 'assertion_consumer_service', name='saml2_acs'),
                         url(r'^login/$', 'login', name='saml2_login'),
                         url(r'^metadata/$', 'metadata', name='saml2_metadata'),
                         url(r'^test/$', 'echo_attributes'))

+ 9 - 6
desktop/libs/libsaml/src/libsaml/views.py

@@ -32,17 +32,20 @@ import libsaml.conf
 __all__ = ['login', 'echo_attributes', 'assertion_consumer_service', 'metadata']
 
 
-@require_POST
-@csrf_exempt
-def acs(request, config_loader_path=None, attribute_mapping=None, create_unknown_user=None):
-  username_source = libsaml.conf.USERNAME_SOURCE.get().lower()
-  return assertion_consumer_service(request, config_loader_path, attribute_mapping, create_unknown_user, username_source)
+if logout_service_post is None:
+  _assertion_consumer_service = assertion_consumer_service
+
+  @require_POST
+  @csrf_exempt
+  def assertion_consumer_service(request, config_loader_path=None, attribute_mapping=None, create_unknown_user=None):
+    username_source = libsaml.conf.USERNAME_SOURCE.get().lower()
+    return _assertion_consumer_service(request, config_loader_path, attribute_mapping, create_unknown_user, username_source)
 
 
 setattr(logout_service, 'login_notrequired', True)
 setattr(login, 'login_notrequired', True)
 setattr(echo_attributes, 'login_notrequired', True)
-setattr(acs, 'login_notrequired', True)
+setattr(assertion_consumer_service, 'login_notrequired', True)
 setattr(metadata, 'login_notrequired', True)
 
 if logout_service_post is not None: