@@ -282,6 +282,7 @@ def _load_middlewares(app: FastAPI) -> None:
282
282
pkg_names = {get_pkg_name (p , strip_fps = False ) for p in grouped_middlewares }
283
283
logger .info (f"Loading middlewares from plugin package(s) { pkg_names } " )
284
284
285
+ middleware_dict = {}
285
286
for p , middlewares in grouped_middlewares .items ():
286
287
p_name = Config .plugin_name (p )
287
288
plugin_config = Config .from_name (p_name )
@@ -294,7 +295,6 @@ def _load_middlewares(app: FastAPI) -> None:
294
295
Config (FPSConfig ).enabled_plugins
295
296
and p_name not in Config (FPSConfig ).enabled_plugins
296
297
)
297
- or p_name not in Config (FPSConfig ).middlewares
298
298
)
299
299
if not middlewares or disabled :
300
300
disabled_msg = " (disabled)" if disabled else ""
@@ -303,15 +303,34 @@ def _load_middlewares(app: FastAPI) -> None:
303
303
)
304
304
continue
305
305
306
- for plugin_middleware , plugin_kwargs in middlewares :
307
- app .add_middleware (
308
- plugin_middleware ,
309
- ** plugin_kwargs ,
310
- )
306
+ logger .info (f"Registered middleware(s) for plugin '{ p_name } ':" )
307
+ for middleware in middlewares :
308
+ logger .info (f"Middleware: { middleware .__module__ } .{ middleware .__qualname__ } " )
311
309
312
- logger .info (
313
- f"{ len (middlewares )} middleware(s) added from plugin '{ p_name } '"
310
+ middleware_dict .update (
311
+ {
312
+ f"{ middleware .__module__ } .{ middleware .__qualname__ } " : middleware
313
+ for middleware in middlewares
314
+ }
314
315
)
316
+
317
+ middleware_cnt = 0
318
+ for middleware in Config (FPSConfig ).middlewares :
319
+ middleware_class_path = middleware .class_path
320
+ if middleware_class_path not in middleware_dict :
321
+ logger .warning (f"Unknown middleware { middleware_class_path } " )
322
+ continue
323
+
324
+ logger .info (f"Adding middleware { middleware_class_path } " )
325
+ middleware_class = middleware_dict [middleware_class_path ]
326
+ app .add_middleware (
327
+ middleware_class ,
328
+ ** middleware .kwargs ,
329
+ )
330
+ middleware_cnt += 1
331
+
332
+ logger .info (f"{ middleware_cnt } middleware(s) added" )
333
+
315
334
else :
316
335
logger .info ("No plugin middleware to load" )
317
336
0 commit comments