فهرست منبع

HUE-1687 [core] SAML backend with simple redirect logout

Abraham Elmahrek 12 سال پیش
والد
کامیت
408962a

+ 5 - 2
desktop/libs/libsaml/src/libsaml/backend.py

@@ -18,9 +18,10 @@
 See desktop/auth/backend.py
 """
 import logging
+from django.contrib.auth import logout as auth_logout
 from django.contrib.auth.models import User
 from djangosaml2.backends import Saml2Backend as _Saml2Backend
-from djangosaml2.views import logout
+from djangosaml2.views import logout as saml_logout
 from desktop.auth.backend import rewrite_user
 from useradmin.models import get_profile, get_default_user_group, UserProfile
 
@@ -76,4 +77,6 @@ class SAML2Backend(_Saml2Backend):
     return True
 
   def logout(self, request, next_page=None):
-    return logout(request)
+    response = saml_logout(request)
+    auth_logout(request)
+    return response

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

@@ -15,15 +15,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from django.conf.urls.defaults import patterns, handler500, url
+from django.conf.urls.defaults import patterns, url
 
 urlpatterns = patterns(
     'djangosaml2.views',
-    url(r'^logout/$', 'logout', name='saml2_logout'),
-    url(r'^ls/$', 'logout_service', name='saml2_ls')
+    url(r'^logout/$', 'logout', name='saml2_logout')
 )
 
 urlpatterns += patterns('libsaml.views',
+                        url(r'^ls/$', 'logout_service', name='saml2_ls'),
                         url(r'^acs/$', 'acs', name='saml2_acs'),
                         url(r'^login/$', 'login', name='saml2_login'),
                         url(r'^metadata/$', 'metadata', name='saml2_metadata'),

+ 3 - 1
desktop/libs/libsaml/src/libsaml/views.py

@@ -15,7 +15,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from djangosaml2.views import login, echo_attributes, metadata, assertion_consumer_service
+from djangosaml2.views import login, echo_attributes, metadata,\
+							  assertion_consumer_service, logout_service
 
 import libsaml.conf
 
@@ -28,6 +29,7 @@ def acs(request, config_loader_path=None, attribute_mapping=None, create_unknown
   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)