61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
"""多渠道网关安全策略组件。"""
|
|
|
|
from yuxi.channel.security.models import DmPolicy, GroupPolicy, RateLimitPolicy
|
|
|
|
__all__ = [
|
|
"AllowlistChecker",
|
|
"BotLoopDetector",
|
|
"DmPolicy",
|
|
"GroupPolicy",
|
|
"IdentityLinkResolver",
|
|
"PairingChecker",
|
|
"PairingManager",
|
|
"RateLimitPolicy",
|
|
"RateLimiter",
|
|
"SecurityCheckResult",
|
|
"SecurityChecker",
|
|
"SecurityCheckerRegistry",
|
|
"SecurityContext",
|
|
"SecurityPolicy",
|
|
]
|
|
|
|
|
|
def __getattr__(name: str):
|
|
if name == "AllowlistChecker":
|
|
from .allowlist import AllowlistChecker
|
|
|
|
return AllowlistChecker
|
|
if name == "BotLoopDetector":
|
|
from .bot_loop import BotLoopDetector
|
|
|
|
return BotLoopDetector
|
|
if name == "IdentityLinkResolver":
|
|
from .identity import IdentityLinkResolver
|
|
|
|
return IdentityLinkResolver
|
|
if name == "PairingChecker":
|
|
from .pairing import PairingChecker
|
|
|
|
return PairingChecker
|
|
if name == "PairingManager":
|
|
from .pairing import PairingManager
|
|
|
|
return PairingManager
|
|
if name == "RateLimiter":
|
|
from .rate_limit import RateLimiter
|
|
|
|
return RateLimiter
|
|
if name == "SecurityCheckResult":
|
|
from .policy import SecurityCheckResult
|
|
|
|
return SecurityCheckResult
|
|
if name in ("SecurityChecker", "SecurityCheckerRegistry", "SecurityContext"):
|
|
from . import registry
|
|
|
|
return getattr(registry, name)
|
|
if name == "SecurityPolicy":
|
|
from .policy import SecurityPolicy
|
|
|
|
return SecurityPolicy
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|