Skip to content

Commit 031995a

Browse files
authored
Merge pull request #191 from docusign/feature/pkce-in-quick-acg
Added pkce to quick acg project
2 parents 53db00f + a4d67c7 commit 031995a

File tree

2 files changed

+33
-10
lines changed

2 files changed

+33
-10
lines changed

Quick_ACG/Quick_ACG.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,17 @@
4747
</ItemGroup>
4848

4949
<ItemGroup>
50-
<PackageReference Include="DocuSign.Admin" Version="2.0.0-rc4" />
51-
<PackageReference Include="DocuSign.eSign.dll" Version="8.0.0-rc2" />
50+
<PackageReference Include="DocuSign.Admin" Version="2.0.0" />
51+
<PackageReference Include="DocuSign.eSign.dll" Version="8.0.0" />
5252
<PackageReference Include="Microsoft.AspNetCore.Session" Version="2.2.0" />
53-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.18" />
54-
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.29">
53+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.10" />
54+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.10">
5555
<PrivateAssets>all</PrivateAssets>
5656
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
5757
</PackageReference>
58-
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
59-
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.16" />
60-
<PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
58+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.1" />
59+
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.6" />
60+
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.1" />
6161
</ItemGroup>
6262

6363
<ItemGroup>

Quick_ACG/Startup.cs

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
using Microsoft.Extensions.DependencyInjection;
1313
using Microsoft.Extensions.Hosting;
1414
using Newtonsoft.Json.Linq;
15+
16+
using System.Threading.Tasks;
1517
using System;
1618
using System.Net.Http;
1719
using System.Net.Http.Headers;
@@ -95,6 +97,12 @@ public void ConfigureServices(IServiceCollection services)
9597
options.ClaimActions.MapJsonKey("expires_in", "expires_in");
9698
options.Events = new OAuthEvents
9799
{
100+
OnRedirectToAuthorizationEndpoint = redirectContext =>
101+
{
102+
redirectContext.Options.UsePkce = this.Configuration["PkceFailed"] == null;
103+
redirectContext.HttpContext.Response.Redirect(redirectContext.RedirectUri);
104+
return Task.FromResult(0);
105+
},
98106
OnCreatingTicket = async context =>
99107
{
100108
var request = new HttpRequestMessage(HttpMethod.Get, context.Options.UserInformationEndpoint);
@@ -113,12 +121,27 @@ public void ConfigureServices(IServiceCollection services)
113121
{
114122
context.RunClaimActions(payload.RootElement);
115123
}
116-
}
124+
},
125+
OnRemoteFailure = async context =>
126+
{
127+
var redirectContext = new RedirectContext<OAuthOptions>(
128+
context.HttpContext,
129+
context.Scheme,
130+
options,
131+
context.Properties,
132+
this.Configuration["RedirectUrl"]);
133+
134+
this.Configuration["PkceFailed"] = "true";
135+
136+
await options.Events.OnRedirectToAuthorizationEndpoint(redirectContext);
137+
138+
context.HandleResponse();
139+
},
117140
};
118141
});
119142
}
120143

121-
#nullable enable
144+
#nullable enable
122145
private string? ExtractDefaultAccountValue(JsonElement obj, string key)
123146
{
124147
if (!obj.TryGetProperty("accounts", out var accounts))
@@ -166,7 +189,7 @@ public void ConfigureServices(IServiceCollection services)
166189

167190
return keyValue;
168191
}
169-
#nullable disable
192+
#nullable disable
170193

171194
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
172195
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

0 commit comments

Comments
 (0)