46 lines
1.4 KiB
PHP
46 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace app\adminapi\controller\system;
|
|
|
|
use app\adminapi\controller\Base;
|
|
use app\attribute\SkipApiEncrypt;
|
|
use core\tool\ApiEncryptService;
|
|
use core\tool\Json;
|
|
use madong\swagger\annotation\response\DataResponse;
|
|
use madong\swagger\attribute\AllowAnonymous;
|
|
use OpenApi\Attributes as OA;
|
|
use support\Request;
|
|
use support\Response;
|
|
|
|
#[SkipApiEncrypt]
|
|
final class SecurityController extends Base
|
|
{
|
|
protected ApiEncryptService $encryptService;
|
|
|
|
public function __construct(ApiEncryptService $encryptService)
|
|
{
|
|
$this->encryptService = $encryptService;
|
|
}
|
|
|
|
#[OA\Get(path: '/system/security/api-encrypt/public-key', summary: '获取接口加密公钥', tags: ['system-security'])]
|
|
#[DataResponse(description: '获取成功')]
|
|
#[AllowAnonymous(requireToken: false, requirePermission: false, description: '公共接口')]
|
|
public function publicKey(Request $request): Response
|
|
{
|
|
$publicKey = $this->encryptService->getPublicKey();
|
|
if ($publicKey === '') {
|
|
return Json::fail('接口加密公钥未配置');
|
|
}
|
|
|
|
return Json::success('获取成功', [
|
|
'enabled' => $this->encryptService->isEnabled(),
|
|
'scope' => $this->encryptService->getScope(),
|
|
'algorithm' => $this->encryptService->getAlgorithm(),
|
|
'key_version' => $this->encryptService->getKeyVersion(),
|
|
'public_key' => $publicKey,
|
|
]);
|
|
}
|
|
}
|