public async Task <GrantedToken> GetTokenByResourceOwnerCredentialsGrantType( ResourceOwnerGrantTypeParameter resourceOwnerGrantTypeParameter, AuthenticationHeaderValue authenticationHeaderValue, X509Certificate2 certificate = null) { if (resourceOwnerGrantTypeParameter == null) { throw new ArgumentNullException(nameof(resourceOwnerGrantTypeParameter)); } var processId = Guid.NewGuid().ToString(); try { _eventPublisher.Publish(new GrantTokenViaResourceOwnerCredentialsReceived(Guid.NewGuid().ToString(), processId, _payloadSerializer.GetPayload(resourceOwnerGrantTypeParameter, authenticationHeaderValue), authenticationHeaderValue, 0)); _simpleIdentityServerEventSource.StartGetTokenByResourceOwnerCredentials(resourceOwnerGrantTypeParameter.ClientId, resourceOwnerGrantTypeParameter.UserName, resourceOwnerGrantTypeParameter.Password); _resourceOwnerGrantTypeParameterValidator.Validate(resourceOwnerGrantTypeParameter); var result = await _getTokenByResourceOwnerCredentialsGrantType.Execute(resourceOwnerGrantTypeParameter, authenticationHeaderValue, certificate); var accessToken = result != null ? result.AccessToken : string.Empty; var identityToken = result != null ? result.IdToken : string.Empty; _simpleIdentityServerEventSource.EndGetTokenByResourceOwnerCredentials(accessToken, identityToken); _eventPublisher.Publish(new TokenGranted(Guid.NewGuid().ToString(), processId, _payloadSerializer.GetPayload(result), 1)); return(result); } catch (IdentityServerException ex) { _eventPublisher.Publish(new OpenIdErrorReceived(Guid.NewGuid().ToString(), processId, ex.Code, ex.Message, 1)); throw; } }
public void When_Passing_Empty_UserName_Then_Exception_Is_Thrown() { // ARRANGE InitializeFakeObject(); var parameter = new ResourceOwnerGrantTypeParameter { ClientId = "clientId", UserName = null }; // ACT & ASSERT var exception = Assert.Throws <IdentityServerException>(() => _resourceOwnerGrantTypeParameterValidator.Validate(parameter)); Assert.True(exception.Code == ErrorCodes.InvalidRequestCode); Assert.True(exception.Message == string.Format(ErrorDescriptions.MissingParameter, Constants.StandardTokenRequestParameterNames.UserName)); }