mcp-security-framework 1.2.2__tar.gz → 1.2.3__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 (90) hide show
  1. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/PKG-INFO +1 -1
  2. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/__init__.py +1 -1
  3. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/core/cert_manager.py +5 -0
  4. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/PKG-INFO +1 -1
  5. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/pyproject.toml +1 -1
  6. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_core/test_cert_manager.py +44 -0
  7. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/README.md +0 -0
  8. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/cli/__init__.py +0 -0
  9. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/cli/cert_cli.py +0 -0
  10. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/cli/security_cli.py +0 -0
  11. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/constants.py +0 -0
  12. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/core/__init__.py +0 -0
  13. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/core/auth_manager.py +0 -0
  14. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/core/permission_manager.py +0 -0
  15. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/core/rate_limiter.py +0 -0
  16. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/core/security_manager.py +0 -0
  17. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/core/ssl_manager.py +0 -0
  18. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/__init__.py +0 -0
  19. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/comprehensive_example.py +0 -0
  20. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/django_example.py +0 -0
  21. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/fastapi_example.py +0 -0
  22. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/flask_example.py +0 -0
  23. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/gateway_example.py +0 -0
  24. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/microservice_example.py +0 -0
  25. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/standalone_example.py +0 -0
  26. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/test_all_examples.py +0 -0
  27. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/__init__.py +0 -0
  28. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/auth_middleware.py +0 -0
  29. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/fastapi_auth_middleware.py +0 -0
  30. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/fastapi_middleware.py +0 -0
  31. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/flask_auth_middleware.py +0 -0
  32. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/flask_middleware.py +0 -0
  33. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/mtls_middleware.py +0 -0
  34. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/rate_limit_middleware.py +0 -0
  35. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/security_middleware.py +0 -0
  36. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/schemas/__init__.py +0 -0
  37. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/schemas/config.py +0 -0
  38. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/schemas/models.py +0 -0
  39. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/schemas/responses.py +0 -0
  40. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/tests/__init__.py +0 -0
  41. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/__init__.py +0 -0
  42. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/cert_utils.py +0 -0
  43. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/crypto_utils.py +0 -0
  44. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/datetime_compat.py +0 -0
  45. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/validation_utils.py +0 -0
  46. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/SOURCES.txt +0 -0
  47. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/dependency_links.txt +0 -0
  48. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/entry_points.txt +0 -0
  49. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/requires.txt +0 -0
  50. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/top_level.txt +0 -0
  51. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/setup.cfg +0 -0
  52. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/__init__.py +0 -0
  53. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/conftest.py +0 -0
  54. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_cli/__init__.py +0 -0
  55. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_cli/test_cert_cli.py +0 -0
  56. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_cli/test_security_cli.py +0 -0
  57. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_core/__init__.py +0 -0
  58. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_core/test_auth_manager.py +0 -0
  59. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_core/test_permission_manager.py +0 -0
  60. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_core/test_rate_limiter.py +0 -0
  61. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_core/test_security_manager.py +0 -0
  62. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_core/test_ssl_manager.py +0 -0
  63. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_examples/__init__.py +0 -0
  64. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_examples/test_comprehensive_example.py +0 -0
  65. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_examples/test_fastapi_example.py +0 -0
  66. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_examples/test_flask_example.py +0 -0
  67. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_examples/test_standalone_example.py +0 -0
  68. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_integration/__init__.py +0 -0
  69. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_integration/test_auth_flow.py +0 -0
  70. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_integration/test_certificate_flow.py +0 -0
  71. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_integration/test_fastapi_integration.py +0 -0
  72. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_integration/test_flask_integration.py +0 -0
  73. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_integration/test_standalone_integration.py +0 -0
  74. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_middleware/__init__.py +0 -0
  75. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_middleware/test_fastapi_auth_middleware.py +0 -0
  76. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_middleware/test_fastapi_middleware.py +0 -0
  77. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_middleware/test_flask_auth_middleware.py +0 -0
  78. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_middleware/test_flask_middleware.py +0 -0
  79. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_middleware/test_security_middleware.py +0 -0
  80. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_schemas/__init__.py +0 -0
  81. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_schemas/test_config.py +0 -0
  82. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_schemas/test_models.py +0 -0
  83. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_schemas/test_responses.py +0 -0
  84. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_schemas/test_serialization.py +0 -0
  85. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_utils/__init__.py +0 -0
  86. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_utils/test_cert_utils.py +0 -0
  87. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_utils/test_crypto_utils.py +0 -0
  88. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_utils/test_datetime_compat.py +0 -0
  89. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_utils/test_unitid_compat.py +0 -0
  90. {mcp_security_framework-1.2.2 → mcp_security_framework-1.2.3}/tests/test_utils/test_validation_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-security-framework
3
- Version: 1.2.2
3
+ Version: 1.2.3
4
4
  Summary: Universal security framework for microservices with SSL/TLS, authentication, authorization, and rate limiting. Requires cryptography>=42.0.0 for certificate operations.
5
5
  Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
6
6
  Maintainer-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
@@ -71,7 +71,7 @@ from mcp_security_framework.schemas.responses import (
71
71
  )
72
72
 
73
73
  # Version information
74
- __version__ = "1.2.2"
74
+ __version__ = "1.2.3"
75
75
  __author__ = "Vasiliy Zdanovskiy"
76
76
  __email__ = "vasilyvz@gmail.com"
77
77
  __license__ = "MIT"
@@ -1953,6 +1953,11 @@ WvWwM6xqxW0Sf6s5AxJmTn3amZ0G+aP4Y2AEojlbQR7g5aigKbFQqGDFW07egp6
1953
1953
  if not self.config.enabled:
1954
1954
  return
1955
1955
 
1956
+ # BUGFIX: Skip CA path validation if in CA creation mode
1957
+ if self.config.ca_creation_mode:
1958
+ self.logger.info("CA creation mode enabled, skipping CA path validation")
1959
+ return
1960
+
1956
1961
  if not self.config.ca_cert_path:
1957
1962
  raise CertificateConfigurationError("CA certificate path is required")
1958
1963
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-security-framework
3
- Version: 1.2.2
3
+ Version: 1.2.3
4
4
  Summary: Universal security framework for microservices with SSL/TLS, authentication, authorization, and rate limiting. Requires cryptography>=42.0.0 for certificate operations.
5
5
  Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
6
6
  Maintainer-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mcp-security-framework"
7
- version = "1.2.2"
7
+ version = "1.2.3"
8
8
  description = "Universal security framework for microservices with SSL/TLS, authentication, authorization, and rate limiting. Requires cryptography>=42.0.0 for certificate operations."
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -676,6 +676,50 @@ class TestCertificateManager:
676
676
 
677
677
  assert "CA certificate and key paths are required" in str(exc_info.value)
678
678
 
679
+ def test_ca_creation_mode_bypasses_validation(self):
680
+ """Test that CA creation mode bypasses CA path validation in CertificateManager."""
681
+ config = CertificateConfig(
682
+ enabled=True,
683
+ ca_creation_mode=True,
684
+ cert_storage_path=self.temp_dir,
685
+ key_storage_path=self.temp_dir
686
+ )
687
+
688
+ # This should not raise an exception
689
+ cert_manager = CertificateManager(config)
690
+ assert cert_manager is not None
691
+ assert cert_manager.config.ca_creation_mode is True
692
+
693
+ def test_ca_creation_mode_with_ca_paths(self):
694
+ """Test that CA creation mode works even with CA paths provided."""
695
+ config = CertificateConfig(
696
+ enabled=True,
697
+ ca_creation_mode=True,
698
+ ca_cert_path=self.ca_cert_path,
699
+ ca_key_path=self.ca_key_path,
700
+ cert_storage_path=self.temp_dir,
701
+ key_storage_path=self.temp_dir
702
+ )
703
+
704
+ # This should not raise an exception
705
+ cert_manager = CertificateManager(config)
706
+ assert cert_manager is not None
707
+ assert cert_manager.config.ca_creation_mode is True
708
+ assert cert_manager.config.ca_cert_path == self.ca_cert_path
709
+ assert cert_manager.config.ca_key_path == self.ca_key_path
710
+
711
+ def test_normal_mode_requires_ca_paths(self):
712
+ """Test that normal mode requires CA paths."""
713
+ with pytest.raises(ValidationError) as exc_info:
714
+ CertificateConfig(
715
+ enabled=True,
716
+ ca_creation_mode=False,
717
+ cert_storage_path=self.temp_dir,
718
+ key_storage_path=self.temp_dir
719
+ )
720
+
721
+ assert "ca_creation_mode=True" in str(exc_info.value)
722
+
679
723
  def test_create_output_directory(self):
680
724
  """Test automatic output directory creation."""
681
725
  # Create new temp directory