From 74541c7bd7005fb945957bbace348d4a8c59602c Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 9 Dec 2022 18:22:20 +0800 Subject: Develop secret api. v21 --- .../CrupestApi.Secrets/SecretsService.cs | 55 ++++++---------------- 1 file changed, 15 insertions(+), 40 deletions(-) (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs') diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs b/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs index 23a0e82..5a49121 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs @@ -1,66 +1,31 @@ -using System.Data; using System.Diagnostics; -using System.Security.Cryptography; -using System.Text; using CrupestApi.Commons; using CrupestApi.Commons.Crud; using Dapper; -using Microsoft.Data.Sqlite; -using Microsoft.Extensions.Options; namespace CrupestApi.Secrets; public class SecretsService : CrudService, ISecretsService { - private readonly IOptionsSnapshot _crupestApiConfig; private readonly ILogger _logger; - public SecretsService(IOptionsSnapshot crupestApiConfig, ILogger logger, ServiceProvider services) - : base(services) + public SecretsService(ITableInfoFactory tableInfoFactory, IDbConnectionFactory dbConnectionFactory, ILoggerFactory loggerFactory) + : base("secrets", tableInfoFactory, dbConnectionFactory, loggerFactory) { - _crupestApiConfig = crupestApiConfig; - _logger = logger; - } - - private string GetDatabasePath() - { - return Path.Combine(_crupestApiConfig.Value.DataDir, "secrets.db"); - } - - public override string GetDbConnectionString() - { - var fileName = GetDatabasePath(); - - return new SqliteConnectionStringBuilder() - { - DataSource = fileName, - Mode = SqliteOpenMode.ReadWriteCreate - }.ToString(); - } - - private string GenerateRandomKey(int length) - { - const string alphanum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - using var randomNumberGenerator = RandomNumberGenerator.Create(); - var result = new StringBuilder(length); - for (int i = 0; i < length; i++) - { - result.Append(alphanum[i]); - } - return result.ToString(); + _logger = loggerFactory.CreateLogger(); } public async Task CreateSecretAsync(SecretInfo secretInfo) { if (secretInfo.Secret is not null) { - throw new ArgumentException("Secret is auto generated. Don't specify it explicit.") + throw new ArgumentException("Secret is auto generated. Don't specify it explicit."); } secretInfo.Secret = GenerateRandomKey(16); secretInfo.CreateTime = DateTime.Now; - await InsertAsync(_table.GenerateInsertClauseFromObject(secretInfo)); + await InsertAsync(_table.GenerateInsertClauseFromEntity(secretInfo)); return secretInfo; } @@ -233,4 +198,14 @@ SELECT Id, Key, Secret, Description, ExpireTime, Revoked, CreateTime FROM secret await VerifySecretAsync(key, secret); } + + public Task GetSecretAsync(string secret) + { + throw new NotImplementedException(); + } + + public Task CreateSecretAsync(string key, string description, DateTime? expireTime = null) + { + throw new NotImplementedException(); + } } -- cgit v1.2.3