public static AsymmetricKeyCredentials ConvertExtToInt(this AuthenticationCredentialsExt credentials) { AsymmetricKeyCredentialsExt asymmetricKeyCredentials = credentials as AsymmetricKeyCredentialsExt; AsymmetricKeyCredentials convert = new AsymmetricKeyCredentials { Username = credentials.Username, PrivateKey = asymmetricKeyCredentials.PrivateKey, PublicKey = asymmetricKeyCredentials.PublicKey }; return(convert); }
public async Task <string> AuthenticateUserAsync(AuthenticationCredentialsExt credentials) { try { AuthenticationCredentials credentialsIn; if (credentials is PasswordCredentialsExt) { credentialsIn = new PasswordCredentials { Username = credentials.Username, Password = ((PasswordCredentialsExt)credentials).Password }; } else if (credentials is DigitalSignatureCredentialsExt) { credentialsIn = new DigitalSignatureCredentials { Username = credentials.Username, DigitalSignature = Array.ConvertAll(((DigitalSignatureCredentialsExt)credentials).DigitalSignature, b => unchecked ((byte)b)), SignedContent = CombineContentWithSalt(credentials.Username) }; } else if (credentials is OpenIdCredentialsExt openIdCredentials) { //Username is extracted from the access_token later. credentialsIn = new OpenIdCredentials { OpenIdAccessToken = openIdCredentials.OpenIdAccessToken, }; } else { log.Error("Credentials of class " + credentials.GetType().Name + " are not supported. Change the HaaSMiddleware.ServiceTier.UserAndLimitationManagement.UserAndLimitationManagementService.AuthenticateUser() method to add support for additional credential types."); throw new ArgumentException("Credentials of class " + credentials.GetType().Name + " are not supported. Change the HaaSMiddleware.ServiceTier.UserAndLimitationManagement.UserAndLimitationManagementService.AuthenticateUser() method to add support for additional credential types."); } using (IUnitOfWork unitOfWork = UnitOfWorkFactory.GetUnitOfWorkFactory().CreateUnitOfWork()) { IUserAndLimitationManagementLogic userLogic = LogicFactory.GetLogicFactory().CreateUserAndLimitationManagementLogic(unitOfWork); var result = await userLogic.AuthenticateUserAsync(credentialsIn); return(result); } } catch (Exception exc) { ExceptionHandler.ThrowProperExternalException(exc); return(null); } }
public async Task <OpenStackApplicationCredentialsExt> AuthenticateUserToOpenStackAsync(AuthenticationCredentialsExt credentials) { if (credentials is OpenIdCredentialsExt openIdCredentials) { using (IUnitOfWork unitOfWork = UnitOfWorkFactory.GetUnitOfWorkFactory().CreateUnitOfWork()) { var userLogic = LogicFactory.GetLogicFactory().CreateUserAndLimitationManagementLogic(unitOfWork); var appCreds = await userLogic.AuthenticateUserToOpenStackAsync(new OpenIdCredentials { OpenIdAccessToken = openIdCredentials.OpenIdAccessToken }); return(appCreds.ConvertIntToExt()); } } string errorMessage = $"Credentials of type {credentials.GetType().Name} are not supported for OpenStack authentication."; log.Error(errorMessage); throw new ArgumentException(errorMessage); }