Added skoruba api integration
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
using PostFundManagement.Domain.Attributes;
|
||||
using PostFundManagement.Domain.Models.Security;
|
||||
|
||||
namespace PostFundManagement.Domain.Abstractions;
|
||||
|
||||
public interface ISkorubaUserService
|
||||
{
|
||||
[Log]
|
||||
[Audit]
|
||||
Task<Result<string>> CreateUserAsync(CreateUserRequest request, CancellationToken cancellationToken = default);
|
||||
|
||||
[Log]
|
||||
Task<Result<UserResponse>> GetUserAsync(string userId, CancellationToken cancellationToken = default);
|
||||
|
||||
[Log]
|
||||
[Audit]
|
||||
Task<Result> UpdateUserAsync(UpdateUserRequest request, CancellationToken cancellationToken = default);
|
||||
|
||||
[Log]
|
||||
[Audit]
|
||||
Task<Result> SetUserLockoutAsync(string userId, bool disabled, CancellationToken cancellationToken = default);
|
||||
|
||||
[Log]
|
||||
[Audit]
|
||||
Task<Result> AddClaimAsync(string userId, string claimType, string claimValue, CancellationToken cancellationToken = default);
|
||||
|
||||
[Log]
|
||||
[Audit]
|
||||
Task<Result> RemoveClaimAsync(string userId, int claimId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace PostFundManagement.Domain.Security;
|
||||
namespace PostFundManagement.Domain.Attributes;
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
|
||||
public sealed class ApiVersionTargetAttribute(int majorVersion) : Attribute
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace PostFundManagement.Domain.Configuration.Security;
|
||||
|
||||
public sealed class MachineIdentitySettings
|
||||
{
|
||||
public string? Authority { get; set; }
|
||||
|
||||
public string? Scope { get; set; }
|
||||
|
||||
public string? ClientId { get; set; }
|
||||
|
||||
public string? ClientSecret { get; set; }
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace PostFundManagement.Domain.Security.Configuration;
|
||||
namespace PostFundManagement.Domain.Configuration.Security;
|
||||
|
||||
public sealed class SecurityClientSettings
|
||||
{
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace PostFundManagement.Domain.Security.Configuration;
|
||||
namespace PostFundManagement.Domain.Configuration.Security;
|
||||
|
||||
public sealed class SecuritySettings
|
||||
{
|
||||
@@ -4,38 +4,28 @@ public static class Constants
|
||||
{
|
||||
public const string ServiceCachingFeature = "EnableServiceCaching";
|
||||
|
||||
public const string SkorubaCredentialClient = nameof(SkorubaCredentialClient);
|
||||
public const string SkorubaHttpClient = nameof(SkorubaHttpClient);
|
||||
public const string MainScope = "ApiScope";
|
||||
|
||||
public const string CorsPolicy = "AllowConfiguredOrigins";
|
||||
|
||||
public const string CachePolicy = "DefaultCachePolicy";
|
||||
|
||||
public const string EmailtemKey = "UserEmail";
|
||||
|
||||
public const string UserRoleItemKey = "UserRole";
|
||||
|
||||
public const string UserIdItemKey = "UserId";
|
||||
|
||||
public const string DefaultSchedulerName = "pfm-scheduler";
|
||||
|
||||
public const string GeneralS3SettingsSection = "GeneralS3Settings";
|
||||
|
||||
public const string EvidenceS3SettingsSection = "EvidenceS3Settings";
|
||||
|
||||
public const string ContractS3SettingsSection = "ContractS3Settings";
|
||||
|
||||
public const string GeneralBucketName = "pfm";
|
||||
|
||||
public const string DatabaseConfigName = "PfmDatabase";
|
||||
public const string DefaultSchedulerName = "pfm-scheduler";
|
||||
public const string SchedulerDatabaseConfigName = "PfmSchedulerDatabase";
|
||||
|
||||
public const int LabelLength = 256;
|
||||
|
||||
public const int ShortLabelLength = 100;
|
||||
|
||||
public const int TextLength = 1024;
|
||||
|
||||
public const int MediumTextLength = 2048;
|
||||
|
||||
public const int LargeTextLength = 4096;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace PostFundManagement.Domain.Models.Security;
|
||||
|
||||
public sealed record CreateUserRequest(string UserName, string Email, string Password, bool EmailConfirmed = true, string? PhoneNumber = null, bool PhoneNumberConfirmed = false);
|
||||
|
||||
public sealed record UpdateUserRequest(string Id, string UserName, string Email, bool EmailConfirmed, string? PhoneNumber, bool PhoneNumberConfirmed, bool LockoutEnabled, DateTimeOffset? LockoutEnd, int AccessFailedCount, bool TwoFactorEnabled);
|
||||
|
||||
public sealed record UserClaim(string ClaimType, string ClaimValue, int? ClaimId = null);
|
||||
|
||||
public sealed record UserResponse(string Id, string UserName, string Email, bool IsLockedOut, bool LockoutEnabled);
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace PostFundManagement.Domain.Security.Models;
|
||||
namespace PostFundManagement.Domain.Models.Security;
|
||||
|
||||
public sealed class TokenErrorResponse
|
||||
{
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace PostFundManagement.Domain.Security.Models;
|
||||
namespace PostFundManagement.Domain.Models.Security;
|
||||
|
||||
public sealed class TokenRequest
|
||||
{
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace PostFundManagement.Domain.Security.Models;
|
||||
namespace PostFundManagement.Domain.Models.Security;
|
||||
|
||||
public sealed class TokenResponse
|
||||
{
|
||||
@@ -1,12 +0,0 @@
|
||||
namespace PostFundManagement.Domain.Security.Configuration;
|
||||
|
||||
public sealed class MachineIdentity
|
||||
{
|
||||
public string? Authority { get; set; }
|
||||
|
||||
public string? Audience { get; set; }
|
||||
|
||||
public string? ClientId { get; set; }
|
||||
|
||||
public string? ClientSecret { get; set; }
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
namespace PostFundManagement.Domain.Security;
|
||||
|
||||
public sealed class OpenApiBearerSecuritySchemeTransformer : IOpenApiDocumentTransformer
|
||||
{
|
||||
public async Task TransformAsync(OpenApiDocument document, OpenApiDocumentTransformerContext context, CancellationToken cancellationToken)
|
||||
{
|
||||
var bearerScheme = new OpenApiSecurityScheme
|
||||
{
|
||||
Type = SecuritySchemeType.Http,
|
||||
Scheme = "bearer",
|
||||
Description = "JWT Authorization header using the Bearer scheme",
|
||||
};
|
||||
|
||||
document.AddComponent("Bearer", bearerScheme);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
namespace PostFundManagement.Domain.Security.Sdk;
|
||||
|
||||
public interface ISecurityConnectApi
|
||||
{
|
||||
[Post("/connect/token")]
|
||||
ValueTask<HttpResponseMessage> GetToken([Body(BodySerializationMethod.UrlEncoded)] Models.TokenRequest request, CancellationToken cancellationToken = default);
|
||||
}
|
||||
Reference in New Issue
Block a user