Skip to content

Commit

Permalink
🐛 Fix CORS for SignalR (#176)
Browse files Browse the repository at this point in the history
  • Loading branch information
MattParkerDev authored Jan 16, 2025
1 parent 3a91efd commit 5541b1b
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 33 deletions.
8 changes: 3 additions & 5 deletions src/WebAPI/DependencyInjection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ public static class DependencyInjection
{
public static IServiceCollection AddWebApi(
this IServiceCollection services,
IConfiguration configuration,
string rulesGptCorsPolicy)
IConfiguration configuration)
{
services.AddHttpContextAccessor();
services.AddScoped<ICurrentUserService, CurrentUserService>();
Expand Down Expand Up @@ -55,14 +54,13 @@ public static IServiceCollection AddWebApi(

services.AddCors(
options =>
options.AddPolicy(
name: rulesGptCorsPolicy,
options.AddDefaultPolicy(
policy =>
policy
.WithOrigins(allowedCorsList)
.AllowCredentials()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials()
)
);

Expand Down
22 changes: 8 additions & 14 deletions src/WebAPI/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,9 @@

var builder = WebApplication.CreateBuilder(args);

const string RulesGptCorsPolicy = nameof(RulesGptCorsPolicy);
const string ChatHistoryPolicy = nameof(ChatHistoryPolicy);

builder.Services.AddAuthorizationBuilder().AddPolicy(ChatHistoryPolicy, policy =>
{
policy.RequireAuthenticatedUser();
});

builder.Services.AddApplication();
builder.Services.AddInfrastructure(builder.Configuration);
builder.Services.AddWebApi(builder.Configuration, RulesGptCorsPolicy);
builder.Services.AddWebApi(builder.Configuration);

var app = builder.Build();

Expand All @@ -26,17 +18,19 @@
app.UseSwaggerUi();
}

app.UseCors(RulesGptCorsPolicy);
app.UseHttpsRedirection();
app.UseCors();

app.UseAuthentication();
app.UseAuthorization();

app.MapLeaderboardRoutes();
app.MapConversationRoutes();
app.MapHub<RulesHub>("/ruleshub");
var baseRoute = app.MapGroup("api").RequireAuthorization();
baseRoute.MapLeaderboardRoutes();
baseRoute.MapConversationRoutes();

app.MapHealthChecks("/health");

app.MapHub<RulesHub>("/ruleshub");

app.Logger.LogInformation("Starting WebAPI");
app.Run();
await app.RunAsync();
2 changes: 1 addition & 1 deletion src/WebAPI/Routes/ConversationHistoryRoutes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public static class ConversationHistoryRoutes
{
private const string ChatHistoryPolicy = nameof(ChatHistoryPolicy);

public static void MapConversationRoutes(this WebApplication app)
public static void MapConversationRoutes(this RouteGroupBuilder app)
{
var routeGroup = app.MapGroup("").WithTags("ConversationHistory").WithOpenApi();

Expand Down
2 changes: 1 addition & 1 deletion src/WebAPI/Routes/LeaderboardRoutes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace WebAPI.Routes;

public static class LeaderboardRoutes
{
public static void MapLeaderboardRoutes(this WebApplication app)
public static void MapLeaderboardRoutes(this RouteGroupBuilder app)
{
var routeGroup = app.MapGroup("leaderboard").WithTags("Leaderboard");

Expand Down
24 changes: 12 additions & 12 deletions src/WebUI/RulesGptApiClients.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings()

var urlBuilder_ = new System.Text.StringBuilder();

// Operation Path: "leaderboard/getLeaderboardStats"
urlBuilder_.Append("leaderboard/getLeaderboardStats");
// Operation Path: "api/leaderboard/getLeaderboardStats"
urlBuilder_.Append("api/leaderboard/getLeaderboardStats");

PrepareRequest(client_, request_, urlBuilder_);

Expand Down Expand Up @@ -154,8 +154,8 @@ public virtual async System.Threading.Tasks.Task<ConversationHistoryModel> GetCo

var urlBuilder_ = new System.Text.StringBuilder();

// Operation Path: "Conversation/{id}"
urlBuilder_.Append("Conversation/");
// Operation Path: "api/Conversation/{id}"
urlBuilder_.Append("api/Conversation/");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture)));

PrepareRequest(client_, request_, urlBuilder_);
Expand Down Expand Up @@ -237,8 +237,8 @@ public virtual async System.Threading.Tasks.Task UpdateConversationAsync(int id,

var urlBuilder_ = new System.Text.StringBuilder();

// Operation Path: "Conversation/{id}"
urlBuilder_.Append("Conversation/");
// Operation Path: "api/Conversation/{id}"
urlBuilder_.Append("api/Conversation/");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture)));
urlBuilder_.Append('?');
urlBuilder_.Append(System.Uri.EscapeDataString("conversation")).Append('=').Append(System.Uri.EscapeDataString(ConvertToString(conversation, System.Globalization.CultureInfo.InvariantCulture))).Append('&');
Expand Down Expand Up @@ -312,8 +312,8 @@ public virtual async System.Threading.Tasks.Task UpdateConversationAsync(int id,

var urlBuilder_ = new System.Text.StringBuilder();

// Operation Path: "Conversations"
urlBuilder_.Append("Conversations");
// Operation Path: "api/Conversations"
urlBuilder_.Append("api/Conversations");

PrepareRequest(client_, request_, urlBuilder_);

Expand Down Expand Up @@ -387,8 +387,8 @@ public virtual async System.Threading.Tasks.Task DeleteAllConversationsAsync(Sys

var urlBuilder_ = new System.Text.StringBuilder();

// Operation Path: "Conversations"
urlBuilder_.Append("Conversations");
// Operation Path: "api/Conversations"
urlBuilder_.Append("api/Conversations");

PrepareRequest(client_, request_, urlBuilder_);

Expand Down Expand Up @@ -465,8 +465,8 @@ public virtual async System.Threading.Tasks.Task<int> AddConversationHistoryAsyn

var urlBuilder_ = new System.Text.StringBuilder();

// Operation Path: "Conversation"
urlBuilder_.Append("Conversation");
// Operation Path: "api/Conversation"
urlBuilder_.Append("api/Conversation");
urlBuilder_.Append('?');
urlBuilder_.Append(System.Uri.EscapeDataString("conversation")).Append('=').Append(System.Uri.EscapeDataString(ConvertToString(conversation, System.Globalization.CultureInfo.InvariantCulture))).Append('&');
urlBuilder_.Append(System.Uri.EscapeDataString("firstMessage")).Append('=').Append(System.Uri.EscapeDataString(ConvertToString(firstMessage, System.Globalization.CultureInfo.InvariantCulture))).Append('&');
Expand Down

0 comments on commit 5541b1b

Please sign in to comment.