mirror of https://github.com/jumpserver/jumpserver
				
				
				
			fix: 获得 oidc acs 等认证方式失败
							parent
							
								
									72d6ea43fa
								
							
						
					
					
						commit
						8e12eebceb
					
				|  | @ -127,7 +127,11 @@ def on_audits_log_create(sender, instance=None, **kwargs): | ||||||
| def get_login_backend(request): | def get_login_backend(request): | ||||||
|     backend = request.session.get(BACKEND_SESSION_KEY, '') |     backend = request.session.get(BACKEND_SESSION_KEY, '') | ||||||
|     backend = backend.rsplit('.', maxsplit=1)[-1] |     backend = backend.rsplit('.', maxsplit=1)[-1] | ||||||
|     return LOGIN_BACKEND.get(backend, '') |     if backend in LOGIN_BACKEND: | ||||||
|  |         return LOGIN_BACKEND[backend] | ||||||
|  |     else: | ||||||
|  |         logger.warn(f'LOGIN_BACKEND_NOT_FOUND: {backend}') | ||||||
|  |         return '' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def generate_data(username, request): | def generate_data(username, request): | ||||||
|  |  | ||||||
|  | @ -1,5 +1,6 @@ | ||||||
| from importlib import import_module | from importlib import import_module | ||||||
| 
 | 
 | ||||||
|  | from django.contrib.auth import BACKEND_SESSION_KEY | ||||||
| from django.conf import settings | from django.conf import settings | ||||||
| from django.contrib.auth import user_logged_in | from django.contrib.auth import user_logged_in | ||||||
| from django.core.cache import cache | from django.core.cache import cache | ||||||
|  | @ -24,14 +25,17 @@ def on_user_auth_login_success(sender, user, request, **kwargs): | ||||||
| 
 | 
 | ||||||
| @receiver(openid_user_login_success) | @receiver(openid_user_login_success) | ||||||
| def on_oidc_user_login_success(sender, request, user, **kwargs): | def on_oidc_user_login_success(sender, request, user, **kwargs): | ||||||
|  |     request.session[BACKEND_SESSION_KEY] = 'OIDCAuthCodeBackend' | ||||||
|     post_auth_success.send(sender, user=user, request=request) |     post_auth_success.send(sender, user=user, request=request) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @receiver(openid_user_login_failed) | @receiver(openid_user_login_failed) | ||||||
| def on_oidc_user_login_failed(sender, username, request, reason, **kwargs): | def on_oidc_user_login_failed(sender, username, request, reason, **kwargs): | ||||||
|  |     request.session[BACKEND_SESSION_KEY] = 'OIDCAuthCodeBackend' | ||||||
|     post_auth_failed.send(sender, username=username, request=request, reason=reason) |     post_auth_failed.send(sender, username=username, request=request, reason=reason) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @receiver(cas_user_authenticated) | @receiver(cas_user_authenticated) | ||||||
| def on_cas_user_login_success(sender, request, user, **kwargs): | def on_cas_user_login_success(sender, request, user, **kwargs): | ||||||
|     post_auth_success.send(sender, user=user, request=request) |     request.session[BACKEND_SESSION_KEY] = 'CASBackend' | ||||||
|  |     post_auth_success.send(sender, user=user, request=request) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 xinwen
						xinwen