Exemple #1
0
        public async ValueTask <OperationResult <CompletedResult> > Delete([FromServices] IKeyVaultLogic keyVault, long userId)
        {
            var result = await keyVault.DeleteUser(HttpContext.User, userId);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <CompletedResult> > AddAccess([FromServices] IKeyVaultLogic keyVault, string secretName, [FromBody] UserAccessData data)
        {
            var result = await keyVault.AddSecretAccess(HttpContext.User, secretName, data.UserId, data);

            SetStatusCode(result);
            return(result);
        }
Exemple #3
0
        public async ValueTask <OperationResult <SecretResult> > Post([FromServices] IKeyVaultLogic keyVault, [FromBody] NewSecret newSecret)
        {
            var result = await keyVault.NewSecret(HttpContext.User, newSecret);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <SecretAccessResult> > Access([FromServices] IKeyVaultLogic keyVault, string secretName)
        {
            var result = await keyVault.GetSecretAccess(HttpContext.User, secretName);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <AllSecretData> > GetData([FromServices] IKeyVaultLogic keyVault, string secretName)
        {
            var result = await keyVault.GetSecretDataForSecret(HttpContext.User, secretName);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <UserRolesResult> > DeleteRoles([FromServices] IKeyVaultLogic keyVault, long userId, [FromBody] string[] roles)
        {
            var result = await keyVault.DeleteUserRoles(HttpContext.User, userId, roles);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <CompletedResult> > UpdateSecretData([FromServices] IKeyVaultLogic keyVault, string secretName, string name, [FromBody] UpdateSecretData data)
        {
            var result = await keyVault.UpdateSecretData(HttpContext.User, secretName, name, data);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <UserRolesResult> > Roles([FromServices] IKeyVaultLogic keyVault, long userId)
        {
            var result = await keyVault.GetUserRoles(HttpContext.User, userId);

            SetStatusCode(result);
            return(result);
        }
Exemple #9
0
        public async ValueTask <OperationResult <AllSecretsResult> > GetAllSecrets([FromServices] IKeyVaultLogic keyVault)
        {
            var result = await keyVault.GetAllSecrets(HttpContext.User);

            SetStatusCode(result);
            return(result);
        }
Exemple #10
0
        public async ValueTask <OperationResult <UserResult> > Create([FromServices] IKeyVaultLogic keyVault, [FromBody] NewUser data)
        {
            var result = await keyVault.AddUser(HttpContext.User, data);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <CompletedResult> > DeleteAccess([FromServices] IKeyVaultLogic keyVault, string secretName, long userId)
        {
            var result = await keyVault.DeleteSecretAccess(HttpContext.User, secretName, userId);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <CompletedResult> > DeleteNoAccess([FromServices] IKeyVaultLogic keyVault)
        {
            var result = await keyVault.DeleteSecretsWithNoAccess(HttpContext.User);

            SetStatusCode(result);
            return(result);
        }
Exemple #13
0
        public async ValueTask <IActionResult> Windows([FromServices] IKeyVaultLogic keyVault)
        {
            var result = await keyVault.AuthenticateWindows(HttpContext.User);

            if (!result.success)
            {
                return(Unauthorized());
            }
            return(new ObjectResult(result.token));
        }
Exemple #14
0
        public async ValueTask <IActionResult> Get([FromServices] IKeyVaultLogic keyVault, string secretName, string name, KeyVaultSecretValueMode mode)
        {
            if (mode == KeyVaultSecretValueMode.Text)
            {
                var secret = await keyVault.GetSecretValue(HttpContext.User, secretName, name);

                if (secret.Status == OperationStatus.NotFound)
                {
                    return(NotFound());
                }
                else if (secret.Status == OperationStatus.Unauthorized)
                {
                    return(Unauthorized());
                }
                return(new ObjectResult(secret.Result));
            }
            else if (mode == KeyVaultSecretValueMode.Binary)
            {
                var secret = await keyVault.GetSecretValueAsBinrary(HttpContext.User, secretName, name);

                if (secret.Status == OperationStatus.NotFound)
                {
                    return(NotFound());
                }
                else if (secret.Status == OperationStatus.Unauthorized)
                {
                    return(Unauthorized());
                }
                if (secret.Result.type == KeyVaultSecretType.Text)
                {
                    return(File(secret.Result.data, "text/plain; charset=utf-8"));
                }
                return(File(secret.Result.data, "application/octet-stream"));
            }
            else
            {
                throw new NotImplementedException(mode.ToString());
            }
        }
Exemple #15
0
        public async ValueTask <IActionResult> Basic([FromServices] IKeyVaultLogic keyVault)
        {
            string authorization = HttpContext.Request.Headers["Authorization"];

            if (authorization != null && authorization.StartsWith("Basic ", StringComparison.Ordinal))
            {
                var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authorization.Substring(6)));
                int x           = credentials.IndexOf(':');
                if (x > 0)
                {
                    string user     = credentials.Substring(0, x);
                    string password = credentials.Substring(x + 1);
                    var    result   = await keyVault.AuthenticateBasic(user, password);

                    if (result.success)
                    {
                        return(new ObjectResult(result.token));
                    }
                }
            }

            HttpContext.Response.Headers["WWW-Authenticate"] = "Basic realm=\"KeyVault basic authentication\", charset=\"UTF-8\"";
            return(StatusCode(401));
        }
Exemple #16
0
        public async ValueTask <OperationResult <CredentialResult> > AddBasicCredential([FromServices] IKeyVaultLogic keyVault, long userId, [FromBody] BasicCredentialData data)
        {
            var result = await keyVault.AddBasicCredential(HttpContext.User, userId, data.Username, data.Password);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <CompletedResult> > DeleteDefaultSecretData([FromServices] IKeyVaultLogic keyVault, string secretName)
        {
            var result = await keyVault.DeleteSecretData(HttpContext.User, secretName, null);

            SetStatusCode(result);
            return(result);
        }
Exemple #18
0
 public ValueTask <OperationResult <UserData> > Get([FromServices] IKeyVaultLogic keyVault, long userId)
 {
     return(keyVault.GetUser(HttpContext.User, userId));
 }
Exemple #19
0
 public ValueTask <OperationResult <AllUsersResult> > GetAll([FromServices] IKeyVaultLogic keyVault)
 {
     return(keyVault.GetUsers(HttpContext.User));
 }
Exemple #20
0
        public async ValueTask <IActionResult> Create([FromServices] IWebHostEnvironment environment, [FromServices] IKeyVaultLogic keyVault)
        {
            if (!environment.IsDevelopment())
            {
                throw new InvalidOperationException();
            }
            await keyVault.Create();

            return(Ok());
        }
Exemple #21
0
        public async ValueTask <OperationResult <CredentialResult> > AddWindowsCredential([FromServices] IKeyVaultLogic keyVault, long userId, [FromBody] WindowsCredentialData data)
        {
            var result = await keyVault.AddWindowsCredential(HttpContext.User, userId, data.Account);

            SetStatusCode(result);
            return(result);
        }
        public async ValueTask <OperationResult <SecretDataItem> > GetSecretDataDescription([FromServices] IKeyVaultLogic keyVault, string secretName, string name)
        {
            var result = await keyVault.GetSecretData(HttpContext.User, secretName, name);

            SetStatusCode(result);
            return(result);
        }