// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure( IApplicationBuilder app, IHostingEnvironment env, ISigningKeyEncoder signingKeyEncoder, IOptions <HostOptions> hostOptions) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(context => { var encodedSigningKey = context.Request.Path.Value.Substring(1); var signingKey = signingKeyEncoder.Decode(encodedSigningKey); // TODO: Audit var appBase = new Uri(hostOptions.Value.App); var uriBuilder = new UriBuilder(); uriBuilder.Host = appBase.Host; uriBuilder.Scheme = appBase.Scheme; uriBuilder.Port = appBase.Port; uriBuilder.Path = "sign"; uriBuilder.Query = $"email={signingKey.SignatoryEmail}&key={encodedSigningKey}"; var redirectUrl = uriBuilder.ToString(); context.Response.ContentType = "text/html"; context.Response.WriteAsync($"<html><head><script>window.location.replace('{redirectUrl}');</script></head><body></body></html>"); return(Task.CompletedTask); }); }
public SigningService( ISigningKeyEncoder signingKeyEncoder, IDocumentExportsFactory documentExportsFactory, ITemplateRepository templateRepository, ISigningRequestRepository signingRequestRepository, ISignatureImageRepository signatureImageRepository, ISigningNotifier signingNotifier, IOptions <HostOptions> hostOptions) { _signingKeyEncoder = signingKeyEncoder; _documentExportsFactory = documentExportsFactory; _templateRepository = templateRepository; _signingRequestRepository = signingRequestRepository; _signatureImageRepository = signatureImageRepository; _signingNotifier = signingNotifier; _hostOptions = hostOptions.Value; }