Beispiel #1
0
        public async Task <IEndpointResult> ProcessAsync(HttpContext context)
        {
            _logger.LogTrace("Processing discovery request.");

            // validate HTTP
            if (!HttpMethods.IsGet(context.Request.Method))
            {
                _logger.LogWarning("Discovery endpoint only supports GET requests");
                return(new StatusCodeResult(HttpStatusCode.MethodNotAllowed));
            }

            _logger.LogDebug("Start key discovery request");

            if (_options.Discovery.ShowKeySet == false)
            {
                _logger.LogInformation("Key discovery disabled. 404.");
                return(new StatusCodeResult(HttpStatusCode.NotFound));
            }

            // generate response
            _logger.LogTrace("Calling into discovery response generator: {type}", _responseGenerator.GetType().FullName);
            var response = await _responseGenerator.CreateJwkDocumentAsync();

            return(new JsonWebKeysResult(response, _options.Discovery.ResponseCacheInterval, _options.Discovery.JwkSetContentType));
        }
Beispiel #2
0
        private async Task <IEndpointResult> ExecuteJwksAsync()
        {
            _logger.LogDebug("Start key discovery request");

            if (_options.Discovery.ShowKeySet == false)
            {
                _logger.LogInformation("Key discovery disabled. 404.");
                return(new StatusCodeResult(HttpStatusCode.NotFound));
            }

            var response = await _responseGenerator.CreateJwkDocumentAsync();

            return(new JsonWebKeysResult(response));
        }
Beispiel #3
0
        private async Task <IEndpointResult> ExecuteJwksAsync()
        {
            _logger.LogDebug("Start key discovery request");

            if (_options.Discovery.ShowKeySet == false)
            {
                _logger.LogInformation("Key discovery disabled. 404.");
                return(new StatusCodeResult(HttpStatusCode.NotFound));
            }

            // generate response
            _logger.LogTrace("Calling into discovery response generator: {type}", _responseGenerator.GetType().FullName);
            var response = await _responseGenerator.CreateJwkDocumentAsync();

            return(new JsonWebKeysResult(response, _options.Discovery.ResponseCacheInterval));
        }
Beispiel #4
0
        public Task <IEndpointResult> ProcessAsync(HttpContext context)
        {
            _logger.LogTrace("Processing discovery request.");

            // validate HTTP
            if (!HttpMethods.IsGet(context.Request.Method))
            {
                _logger.LogWarning("Discovery endpoint only supports GET requests");
                return(Task.FromResult((IEndpointResult) new StatusCodeResult(HttpStatusCode.MethodNotAllowed)));
            }

            if (!_options.Discovery.ShowKeySet)
            {
                _logger.LogInformation("Key discovery disabled. 404.");
                return(Task.FromResult((IEndpointResult) new StatusCodeResult(HttpStatusCode.NotFound)));
            }

            // generate response
            _logger.LogTrace("Calling into discovery response generator: {type}", _responseGenerator.GetType().FullName);
            var response = _responseCache.GetOrAdd(1, _ => _responseGenerator.CreateJwkDocumentAsync().GetAwaiter().GetResult());

            _logger.LogTrace("Discovery request completed. Return JsonWebKeysResult");
            return(Task.FromResult((IEndpointResult) new JsonWebKeysResult(response, _options.Discovery.ResponseCacheInterval)));
        }
Beispiel #5
0
 /// <summary>
 /// Creates the JWK document.
 /// </summary>
 public Task <IEnumerable <JsonWebKey> > CreateJwkDocumentAsync()
 {
     return(_inner.CreateJwkDocumentAsync());
 }