Task <IEndpointResult> CreateAuthorizeResultAsync(AuthorizeResponse response) { var request = response.Request; IEndpointResult result = null; if (request.ResponseMode == Constants.ResponseModes.Query || request.ResponseMode == Constants.ResponseModes.Fragment) { result = new AuthorizeRedirectResult(response); } if (request.ResponseMode == Constants.ResponseModes.FormPost) { result = new AuthorizeFormPostResult(response); } if (result != null) { if (response.IsError == false) { _logger.LogDebug("Adding client {0} to client list cookie for subject {1}", request.ClientId, request.Subject.GetSubjectId()); _clientListCookie.AddClient(request.ClientId); } return(Task.FromResult(result)); } _logger.LogError("Unsupported response mode."); throw new InvalidOperationException("Unsupported response mode"); }
public async Task Invoke(HttpContext context, IEndpointRouter router /*, IUserSession session, IEventService events*/) { try { IEndpointHandler endpoint = router.Find(context); if (endpoint != null) { _logger.LogInformation("Invoking IdentityServer endpoint: {endpointType} for {url}", endpoint.GetType().FullName, context.Request.Path.ToString()); IEndpointResult result = await endpoint.ProcessAsync(context); if (result != null) { _logger.LogTrace("Invoking result: {type}", result.GetType().FullName); await result.ExecuteAsync(context); } return; } } catch (Exception ex) { //await events.RaiseAsync(new UnhandledExceptionEvent(ex)); _logger.LogCritical(ex, "Unhandled exception: {exception}", ex.Message); throw; } await _next(context); }
public Task <IEndpointResult> ProcessAsync(HttpContext context) { IEndpointResult result = null; if (context.Request.Method != "GET") { _logger.LogWarning("Invalid HTTP method for check session endpoint"); result = new StatusCodeResult(HttpStatusCode.MethodNotAllowed); } else { _logger.LogDebug("Rendering check session result"); result = new CheckSessionResult(); } return(Task.FromResult(result)); }