public Task <bool> RevokeToken( RevokeTokenParameter revokeTokenParameter, AuthenticationHeaderValue authenticationHeaderValue, X509Certificate2 certificate, string issuerName) { if (revokeTokenParameter == null) { throw new ArgumentNullException(nameof(revokeTokenParameter)); } var processId = Guid.NewGuid().ToString(); try { _eventPublisher.Publish(new RevokeTokenReceived(Guid.NewGuid().ToString(), processId, _payloadSerializer.GetPayload(revokeTokenParameter, authenticationHeaderValue), authenticationHeaderValue, 0)); _oauthEventSource.StartRevokeToken(revokeTokenParameter.Token); _revokeTokenParameterValidator.Validate(revokeTokenParameter); var result = _revokeTokenAction.Execute(revokeTokenParameter, authenticationHeaderValue, certificate, issuerName); _oauthEventSource.EndRevokeToken(revokeTokenParameter.Token); _eventPublisher.Publish(new TokenRevoked(Guid.NewGuid().ToString(), processId, 1)); return(result); } catch (IdentityServerException ex) { _eventPublisher.Publish(new OAuthErrorReceived(Guid.NewGuid().ToString(), processId, ex.Code, ex.Message, 1)); throw; } }