Files
RuoYi-Vue3-FastAPI/ruoyi-fastapi-backend/cli/groups/oidc/command.py
T
insistence a89aec54aa feat: 新增 OAuth 2.0 / OIDC 统一认证中心 (#129)
* feat: 新增统一认证中心

* perf: 优化代码

* fix: 修复问题

* perf: 优化页面

* fix: 修复部分接口缺失Request参数的问题

* perf: 优化访问控制机制

* perf: 优化代码

* fix: 修复 Logout Token 缺少 exp

* perf&fix: 优化和修复

* perf: 优化代码

* perf: 优化代码

* fix: 修复测试问题
2026-10-01 22:56:05 +08:00

54 lines
1.6 KiB
Python

from typing import Annotated
import typer
from cli.context import AllowProdOption, DryRunOption, EnvOption, OutputOption, YesOption
from .controller import OidcCommandController
app = typer.Typer(
help='OIDC 认证中心部署与运维命令',
no_args_is_help=True,
context_settings={'help_option_names': ['-h', '--help']},
)
key_app = typer.Typer(
help='OIDC 签名密钥命令',
no_args_is_help=True,
context_settings={'help_option_names': ['-h', '--help']},
)
app.add_typer(key_app, name='key')
_OIDC_COMMAND_CONTROLLER = OidcCommandController()
@key_app.command('bootstrap', help='幂等创建并激活首把 OIDC 签名密钥')
def bootstrap_key(
env: EnvOption = 'dev',
output: OutputOption = 'text',
allow_prod: AllowProdOption = False,
yes: YesOption = False,
dry_run: DryRunOption = False,
kid: Annotated[str, typer.Option('--kid', help='签名密钥公开编号')] = 'bootstrap-primary',
actor: Annotated[str, typer.Option('--actor', help='写入审计记录的部署操作者')] = 'system:deployment',
) -> None:
"""
初始化首把 OIDC 签名密钥
:param env: 当前命令运行环境
:param output: 输出格式
:param allow_prod: 是否允许生产环境危险命令
:param yes: 是否跳过确认
:param dry_run: 是否只执行预演
:param kid: 首把签名密钥标识
:param actor: 部署操作人标识
:return: None
"""
_OIDC_COMMAND_CONTROLLER.bootstrap_key(
env,
output,
allow_prod,
yes,
dry_run,
kid=kid,
actor=actor,
)