@@ -2911,7 +2911,7 @@ def __init__(self, cli_args: argparse.Namespace, extra_args: Dict[str, Any]):
29112911 self .index_headers = []
29122912 self .index_footers = []
29132913 self .allowed_directories = []
2914- self .auth_providers = []
2914+ self .auth_provider = None
29152915 self .sessions = {} # OAuth session storage: {session_token: {userId, userName, displayName, profileUrl, email, created}}
29162916 self .oauth_states = {} # CSRF protection: {state: {created, redirect_uri}}
29172917 self .request_args = {
@@ -2991,26 +2991,28 @@ def get_allowed_directories(self) -> List[str]:
29912991 """Get the list of allowed directories."""
29922992 return self .allowed_directories
29932993
2994- def add_auth_provider (self , auth_provider : AuthProvider ) -> None :
2994+ def set_auth_provider (self , auth_provider : AuthProvider ) -> None :
29952995 """Add an authentication provider."""
2996- self .auth_providers . append ( auth_provider )
2996+ self .auth_provider = auth_provider
29972997
29982998 def is_auth_enabled (self ) -> bool :
2999- return len ( self .auth_providers ) > 0
2999+ return self .auth_provider is not None
30003000
30013001 def get_session (self , request : web .Request ) -> Optional [Dict [str , Any ]]:
3002- for auth_provider in self .auth_providers :
3003- session = auth_provider .get_session (request )
3004- if session :
3005- return session
3002+ if self .auth_provider is None :
30063003 return None
3004+ session = self .auth_provider .get_session (request )
3005+ if session :
3006+ return session
3007+ return None
30073008
30083009 def get_username (self , request : web .Request ) -> Optional [str ]:
3009- for auth_provider in self .auth_providers :
3010- username = auth_provider .get_username (request )
3011- if username :
3012- return username
3010+ if self .auth_provider is None :
30133011 return None
3012+ username = self .auth_provider .get_username (request )
3013+ if username :
3014+ return username
3015+ return None
30143016
30153017 def assert_username (self , request : web .Request ) -> str :
30163018 if not self .is_auth_enabled ():
@@ -3022,13 +3024,12 @@ def assert_username(self, request: web.Request) -> str:
30223024
30233025 def check_auth (self , request : web .Request ) -> Tuple [bool , Optional [Dict [str , Any ]]]:
30243026 """Check if request is authenticated. Returns (is_authenticated, user_data)"""
3025- if len ( self .auth_providers ) == 0 :
3027+ if self .auth_provider is None :
30263028 return True , None
30273029
3028- for auth_provider in self .auth_providers :
3029- is_authenticated , user_data = auth_provider .check_auth (request )
3030- if is_authenticated :
3031- return True , user_data
3030+ is_authenticated , user_data = self .auth_provider .check_auth (request )
3031+ if is_authenticated :
3032+ return True , user_data
30323033
30333034 return False , None
30343035
@@ -3160,9 +3161,9 @@ def __init__(self, app: AppExtensions, path: str):
31603161 def get_client_timeout (self ):
31613162 return self .app .get_client_timeout ()
31623163
3163- def add_auth_provider (self , auth_provider : AuthProvider ) -> None :
3164+ def set_auth_provider (self , auth_provider : AuthProvider ) -> None :
31643165 """Add an authentication provider."""
3165- self .app .add_auth_provider (auth_provider )
3166+ self .app .set_auth_provider (auth_provider )
31663167 self .log (f"Added Auth Provider: { auth_provider .__class__ .__name__ } , Authentication is now enabled" )
31673168
31683169 def is_auth_enabled (self ) -> bool :
@@ -4510,7 +4511,6 @@ async def config_handler(request):
45104511 ret ["extensions" ] = [ext .get ("name" ) for ext in g_app .extensions ]
45114512 # Add auth configuration
45124513 ret ["requiresAuth" ] = g_app .is_auth_enabled ()
4513- ret ["authTypes" ] = [provider .__class__ .__name__ for provider in g_app .auth_providers ]
45144514 return web .json_response (ret )
45154515
45164516 app .router .add_get ("/config" , config_handler )
0 commit comments