Files
RuoYi-Vue3-FastAPI/ruoyi-fastapi-backend/module_admin/controller/transport_crypto_controller.py
T
insistence 726883f68a feat: 新增跨时区支持并完善定时任务调度 (#127)
* feat: 新增跨时区支持

* perf: 优化代码

* fix: 修复测试

* perf: 优化调度器日志打印
2026-09-12 17:01:05 +08:00

61 lines
2.8 KiB
Python

from fastapi import Request, Response
from common.annotation.rate_limit_annotation import ApiRateLimit, ApiRateLimitPreset
from common.aspect.interface_auth import UserInterfaceAuthDependency
from common.aspect.pre_auth import PreAuthDependency
from common.constant import ApiNamespace
from common.router import APIRouterPro
from common.vo import DataResponseModel
from module_admin.entity.vo.transport_crypto_vo import (
TransportCryptoFrontendConfigModel,
TransportCryptoMonitorModel,
TransportCryptoPublicKeyModel,
)
from module_admin.service.transport_crypto_service import TransportCryptoService
from utils.log_util import logger
from utils.response_util import ResponseUtil
transport_crypto_controller = APIRouterPro(prefix='/transport/crypto', order_num=15, tags=['传输加密模块'])
@transport_crypto_controller.get(
'/frontend-config',
summary='获取前端传输加密配置接口',
description='公开接口,用于向前端下发当前传输层加解密启用状态与运行模式,供前端统一跟随后端策略',
response_model=DataResponseModel[TransportCryptoFrontendConfigModel],
)
@ApiRateLimit(namespace=ApiNamespace.TRANSPORT_CRYPTO_FRONTEND_CONFIG, preset=ApiRateLimitPreset.ANON_PUBLIC_METADATA)
async def get_transport_frontend_config(request: Request) -> Response:
transport_frontend_config = await TransportCryptoService.get_transport_frontend_config_services()
logger.info('获取成功')
return ResponseUtil.success(data=transport_frontend_config)
@transport_crypto_controller.get(
'/public-key',
summary='获取传输加密公钥接口',
description='公开接口,用于向前端下发当前可用的传输层加密公钥,已配置匿名限流保护',
response_model=DataResponseModel[TransportCryptoPublicKeyModel],
)
@ApiRateLimit(namespace=ApiNamespace.TRANSPORT_CRYPTO_PUBLIC_KEY, preset=ApiRateLimitPreset.ANON_PUBLIC_METADATA)
async def get_transport_public_key(request: Request) -> Response:
transport_public_key = await TransportCryptoService.get_transport_public_key_services()
logger.info('获取成功')
return ResponseUtil.success(data=transport_public_key)
@transport_crypto_controller.get(
'/monitor',
summary='获取传输层加解密监控信息接口',
description='用于获取基于Redis聚合的传输层加解密运行状态与统计信息',
response_model=DataResponseModel[TransportCryptoMonitorModel],
dependencies=[PreAuthDependency(), UserInterfaceAuthDependency('monitor:transportCrypto:list')],
)
async def get_transport_crypto_monitor_info(request: Request) -> Response:
transport_crypto_monitor_info = await TransportCryptoService.get_transport_crypto_monitor_info_services(request)
logger.info('获取成功')
return ResponseUtil.success(data=transport_crypto_monitor_info)