public async Task <IActionResult> Issue([FromBody] TokenIssueRequest request) { var token = await _issuer.Issue(request); if (token != null) { return(Ok(token)); } return(StatusCode(401)); }
public async Task <AuthorizedUser> AuthorizeWithLoginAndPasswordAsync(TokenIssueRequest issueRequest) { var user = await _serveUsers.GetUserByName(issueRequest.Username); if (user != null && _checkPasswordService.IsPasswordValidForUser(user, issueRequest.Password)) { var result = new AuthorizedUser(user); return(result); } return(null); }
private async Task <IdentityUser> FindValideUserAsync(TokenIssueRequest request) { var user = await FindWithRefreshToken(request.RefreshToken); if (user == null && request.Username != null) { user = await FindWithUsernamePassword(request.Username, request.Password); } return(user); }
public async Task <Token> Issue(TokenIssueRequest request) { var user = await FindValideUserAsync(request); if (user != null) { var roles = await _userManager.GetRolesAsync(user); var token = _tokenBuilder.Build(user, roles); await UpsertRefreshTokenAsync(token); return(token); } return(null); }
public async Task AuthorizeWithLoginAndPasswordAsync_noUser_null() { // setup _ifPass = false; _user = null; var request = new TokenIssueRequest() { Username = "******", Password = "******" }; // act var result = await _authorizeService.AuthorizeWithLoginAndPasswordAsync(request); // verify Assert.Null(result); }
public async Task AuthorizeWithLoginAndPasswordAsync_valid_authorizedUser() { // setup _ifPass = true; _user = new User { Name = _username }; var request = new TokenIssueRequest() { Username = _username, Password = "******" }; // act var result = await _authorizeService.AuthorizeWithLoginAndPasswordAsync(request); // verify result.Should().NotBeNull(); result.Name.Should().Be(_username); }
public async Task <IActionResult> PostTokenRequest([FromBody] TokenIssueRequest request) { try { var user = await _authService.AuthorizeWithLoginAndPasswordAsync(request); if (user != null) { return(AuthTokenResponse(user)); } return(NotFound("Błędny login lub hasło")); } catch (Exception ex) { if (ex is InvalidOperationException && ex.InnerException is TimeoutException) { _logger.LogError("TimeoutException when trying to connect with DB"); return(StatusCode(500, "Serwer nie otrzymał odpowiedzi z bazy danych, skontaktuj się z administratorem")); } return(BadRequest("Hasło jest nieprawidłowe, skontaktuj się z administratorem")); } }
public async Task <TokenIssueResponse> IssueToken(TokenIssueRequest request) { // Login to CaaS IAccount account = await _computeClient.LoginAsync( new NetworkCredential( request.Message.Credentials.UserName, request.Message.Credentials.Password)); // Get available clouds IEnumerable <DatacenterWithMaintenanceStatusType> dataCenters = await _computeClient.GetDataCentersWithMaintenanceStatuses(); string loginToken = request.Message.Credentials.UserName + ":" + request.Message.Credentials.Password; byte[] buffer = new byte[loginToken.Length]; string loginTokenEncoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(loginToken)); List <Endpoint> endPoints = new List <Endpoint>(); endPoints.Add(new Endpoint() { Url = ConfigurationHelpers.GetTenantUrl(Request.RequestUri.Host, request.Message.TenantName), Id = "AU1", // TODO: Map to cloud id? InternalURL = ConfigurationHelpers.GetTenantUrl(Request.RequestUri.Host, request.Message.TenantName), PublicURL = ConfigurationHelpers.GetTenantUrl(Request.RequestUri.Host, request.Message.TenantName), Region = "RegionOne" }); foreach (var dataCenter in dataCenters) { endPoints.Add(new Endpoint() { Url = ConfigurationHelpers.GetTenantUrl(Request.RequestUri.Host, request.Message.TenantName), Id = dataCenter.location, // TODO: Map to cloud id? InternalURL = ConfigurationHelpers.GetTenantUrl(Request.RequestUri.Host, request.Message.TenantName), PublicURL = ConfigurationHelpers.GetTenantUrl(Request.RequestUri.Host, request.Message.TenantName), Region = "Dimension Data " + dataCenter.displayName }); } TokenIssueResponse response = new TokenIssueResponse() { AccessToken = new AccessToken() { Token = new Token(request.Message.TenantName, request.Message.TenantName, loginTokenEncoded), Catalog = new ServiceCatalogEntry[] { new ServiceCatalogEntry() { Endpoints = endPoints.ToArray(), EndpointsLinks = new string[] { ConfigurationHelpers.GetTenantUrl(Request.RequestUri.Host, request.Message.TenantName) }, Name = "nova", Type = EndpointType.compute }, new ServiceCatalogEntry() { Endpoints = endPoints.ToArray(), EndpointsLinks = new string[] { ConfigurationHelpers.GetTenantUrl(Request.RequestUri.Host, request.Message.TenantName) }, Name = "keystone", Type = EndpointType.identity } }, User = new User() { Id = Guid.NewGuid().ToString(), Name = account.FullName, Roles = new User.Role[] { }, RolesLinks = new string[] {}, UserName = request.Message.Credentials.UserName } } }; return(response); }