mcp-proxy-adapter 6.4.28__tar.gz → 6.4.32__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/PKG-INFO +1 -1
  2. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/__init__.py +7 -0
  3. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/user_info_middleware.py +18 -9
  4. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/version.py +1 -1
  5. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter.egg-info/PKG-INFO +1 -1
  6. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/pyproject.toml +1 -1
  7. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/README.md +0 -0
  8. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/__init__.py +0 -0
  9. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/__main__.py +0 -0
  10. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/__init__.py +0 -0
  11. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/app.py +0 -0
  12. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/handlers.py +0 -0
  13. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/base.py +0 -0
  14. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -0
  15. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/error_handling.py +0 -0
  16. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/factory.py +0 -0
  17. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/logging.py +0 -0
  18. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
  19. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/protocol_middleware.py +0 -0
  20. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -0
  21. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/middleware/unified_security.py +0 -0
  22. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/schemas.py +0 -0
  23. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/tool_integration.py +0 -0
  24. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/api/tools.py +0 -0
  25. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/__init__.py +0 -0
  26. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/auth_validation_command.py +0 -0
  27. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/base.py +0 -0
  28. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/builtin_commands.py +0 -0
  29. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/catalog_manager.py +0 -0
  30. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/cert_monitor_command.py +0 -0
  31. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/certificate_management_command.py +0 -0
  32. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/command_registry.py +0 -0
  33. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/config_command.py +0 -0
  34. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
  35. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/dependency_manager.py +0 -0
  36. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/echo_command.py +0 -0
  37. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/health_command.py +0 -0
  38. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/help_command.py +0 -0
  39. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/hooks.py +0 -0
  40. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/key_management_command.py +0 -0
  41. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/load_command.py +0 -0
  42. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/plugins_command.py +0 -0
  43. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/protocol_management_command.py +0 -0
  44. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/proxy_registration_command.py +0 -0
  45. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/reload_command.py +0 -0
  46. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/result.py +0 -0
  47. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/role_test_command.py +0 -0
  48. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/roles_management_command.py +0 -0
  49. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/security_command.py +0 -0
  50. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/settings_command.py +0 -0
  51. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/ssl_setup_command.py +0 -0
  52. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/token_management_command.py +0 -0
  53. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/transport_management_command.py +0 -0
  54. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/commands/unload_command.py +0 -0
  55. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/config.py +0 -0
  56. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/__init__.py +0 -0
  57. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/app_factory.py +0 -0
  58. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/app_runner.py +0 -0
  59. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/auth_validator.py +0 -0
  60. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/certificate_utils.py +0 -0
  61. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/client.py +0 -0
  62. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/client_manager.py +0 -0
  63. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/client_security.py +0 -0
  64. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/config_converter.py +0 -0
  65. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/config_validator.py +0 -0
  66. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/crl_utils.py +0 -0
  67. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/errors.py +0 -0
  68. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/logging.py +0 -0
  69. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/mtls_asgi.py +0 -0
  70. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/mtls_asgi_app.py +0 -0
  71. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/mtls_server.py +0 -0
  72. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/protocol_manager.py +0 -0
  73. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/proxy_client.py +0 -0
  74. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/proxy_registration.py +0 -0
  75. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/role_utils.py +0 -0
  76. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/security_adapter.py +0 -0
  77. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/security_factory.py +0 -0
  78. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/security_integration.py +0 -0
  79. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/server_adapter.py +0 -0
  80. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/server_engine.py +0 -0
  81. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/settings.py +0 -0
  82. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/ssl_utils.py +0 -0
  83. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/transport_manager.py +0 -0
  84. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/unified_config_adapter.py +0 -0
  85. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/core/utils.py +0 -0
  86. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/custom_openapi.py +0 -0
  87. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/__init__.py +0 -0
  88. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/basic_framework/__init__.py +0 -0
  89. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +0 -0
  90. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +0 -0
  91. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/basic_framework/main.py +0 -0
  92. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/commands/__init__.py +0 -0
  93. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/create_certificates_simple.py +0 -0
  94. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/create_test_configs.py +0 -0
  95. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/debug_request_state.py +0 -0
  96. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/debug_role_chain.py +0 -0
  97. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/demo_client.py +0 -0
  98. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/__init__.py +0 -0
  99. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/commands/__init__.py +0 -0
  100. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -0
  101. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -0
  102. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -0
  103. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -0
  104. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -0
  105. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/main.py +0 -0
  106. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -0
  107. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/generate_all_certificates.py +0 -0
  108. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/generate_certificates.py +0 -0
  109. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/generate_certificates_and_tokens.py +0 -0
  110. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/generate_test_configs.py +0 -0
  111. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/proxy_registration_example.py +0 -0
  112. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/run_example.py +0 -0
  113. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/run_full_test_suite.py +0 -0
  114. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/run_proxy_server.py +0 -0
  115. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/run_security_tests.py +0 -0
  116. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -0
  117. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/scripts/config_generator.py +0 -0
  118. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/scripts/create_certificates_simple.py +0 -0
  119. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py +0 -0
  120. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/security_test_client.py +0 -0
  121. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/setup_test_environment.py +0 -0
  122. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/test_config.py +0 -0
  123. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/test_config_generator.py +0 -0
  124. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/test_examples.py +0 -0
  125. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/examples/universal_client.py +0 -0
  126. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/main.py +0 -0
  127. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter/openapi.py +0 -0
  128. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter.egg-info/SOURCES.txt +0 -0
  129. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter.egg-info/dependency_links.txt +0 -0
  130. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter.egg-info/entry_points.txt +0 -0
  131. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter.egg-info/not-zip-safe +0 -0
  132. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter.egg-info/requires.txt +0 -0
  133. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/mcp_proxy_adapter.egg-info/top_level.txt +0 -0
  134. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/setup.cfg +0 -0
  135. {mcp_proxy_adapter-6.4.28 → mcp_proxy_adapter-6.4.32}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 6.4.28
3
+ Version: 6.4.32
4
4
  Summary: Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration
5
5
  Home-page: https://github.com/maverikod/mcp-proxy-adapter
6
6
  Author: Vasiliy Zdanovskiy
@@ -12,6 +12,13 @@ from .base import BaseMiddleware
12
12
  from .factory import MiddlewareFactory
13
13
  from .protocol_middleware import setup_protocol_middleware
14
14
 
15
+ # Export mcp_security_framework availability
16
+ try:
17
+ from .user_info_middleware import _MCP_SECURITY_AVAILABLE
18
+ mcp_security_framework = _MCP_SECURITY_AVAILABLE
19
+ except ImportError:
20
+ mcp_security_framework = False
21
+
15
22
 
16
23
  def setup_middleware(app: FastAPI, app_config: Optional[Dict[str, Any]] = None) -> None:
17
24
  """
@@ -119,12 +119,16 @@ class UserInfoMiddleware(BaseHTTPMiddleware):
119
119
  logger.warning(f"⚠️ Failed to initialize AuthManager: {e}")
120
120
  self._security_available = False
121
121
 
122
+ # Always initialize api_keys for fallback
123
+ security_config = config.get("security", {})
124
+ auth_config = security_config.get("auth", {})
125
+ self.api_keys = auth_config.get("api_keys", {})
126
+
122
127
  if not self._security_available:
123
128
  # Fallback to basic API key handling
124
- security_config = config.get("security", {})
125
- auth_config = security_config.get("auth", {})
126
- self.api_keys = auth_config.get("api_keys", {})
127
129
  logger.info("ℹ️ User info middleware initialized with basic auth")
130
+ else:
131
+ logger.info("ℹ️ User info middleware initialized with mcp_security_framework (fallback enabled)")
128
132
 
129
133
  async def dispatch(
130
134
  self, request: Request, call_next: Callable[[Request], Awaitable[Response]]
@@ -190,9 +194,15 @@ class UserInfoMiddleware(BaseHTTPMiddleware):
190
194
 
191
195
  if not self._security_available:
192
196
  # Fallback to basic API key handling
193
- if api_key in getattr(self, "api_keys", {}):
194
- user_role = self.api_keys[api_key]
195
-
197
+ api_keys_dict = getattr(self, "api_keys", {})
198
+ # Find role by API key value (not key)
199
+ user_role = None
200
+ for role, key_value in api_keys_dict.items():
201
+ if key_value == api_key:
202
+ user_role = role
203
+ break
204
+
205
+ if user_role:
196
206
  # Get permissions for this role from roles file if available
197
207
  role_permissions = ["read"] # default permissions
198
208
  if (
@@ -211,10 +221,9 @@ class UserInfoMiddleware(BaseHTTPMiddleware):
211
221
  "roles": [user_role],
212
222
  "permissions": role_permissions,
213
223
  }
214
-
215
224
  logger.debug(
216
- f"✅ Authenticated user with basic auth: "
217
- f"{request.state.user}"
225
+ f"✅ User authenticated with API key: "
226
+ f"{api_key[:8]}..."
218
227
  )
219
228
  else:
220
229
  # API key not found
@@ -2,4 +2,4 @@
2
2
  Version information for MCP Proxy Adapter.
3
3
  """
4
4
 
5
- __version__ = "6.4.28"
5
+ __version__ = "6.4.32"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 6.4.28
3
+ Version: 6.4.32
4
4
  Summary: Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration
5
5
  Home-page: https://github.com/maverikod/mcp-proxy-adapter
6
6
  Author: Vasiliy Zdanovskiy
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mcp-proxy-adapter"
7
- version = "6.4.28"
7
+ version = "6.4.32"
8
8
  description = "Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}