Skip to content

Commit b6b6e4b

Browse files
Fix JWT auth, and set content roon in use_static
1 parent 43ec60a commit b6b6e4b

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

src/Saturn/Application.fs

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ module Application =
117117
let middleware (app : IApplicationBuilder) = app.UseStaticFiles()
118118
let host (builder: IWebHostBuilder) =
119119
let p = Path.Combine(Directory.GetCurrentDirectory(), path)
120-
builder.UseWebRoot p
120+
builder
121+
.UseWebRoot(p)
122+
.UseContentRoot(p)
121123
{ state with
122124
AppConfigs = middleware::state.AppConfigs
123125
HostConfigs = host::state.HostConfigs
@@ -132,33 +134,35 @@ module Application =
132134

133135
{state with Pipelines = handler::state.Pipelines}
134136

135-
[<CustomOperation("force_ssl")>]
136-
member __.ForceSSL(state : ApplicationState) =
137-
let middleware (app : IApplicationBuilder) =
137+
[<CustomOperation("force_ssl")>]
138+
member __.ForceSSL(state : ApplicationState) =
139+
let middleware (app : IApplicationBuilder) =
138140
let opts = RewriteOptions().AddRedirectToHttps()
139-
app.UseRewriter opts
140-
141-
{state with AppConfigs=middleware::state.AppConfigs}
141+
app.UseRewriter opts
142142

143-
[<CustomOperation("use_cors")>]
144-
member __.UseCors(state: ApplicationState, policy : string, (policyConfig : CorsPolicyBuilder -> unit ) ) =
143+
{state with AppConfigs=middleware::state.AppConfigs}
144+
145+
[<CustomOperation("use_cors")>]
146+
member __.UseCors(state: ApplicationState, policy : string, (policyConfig : CorsPolicyBuilder -> unit ) ) =
145147
let service (s : IServiceCollection) =
146-
s.AddCors(fun o -> o.AddPolicy(policy, policyConfig) |> ignore)
147-
let middleware (app : IApplicationBuilder) =
148-
app.UseCors policy
148+
s.AddCors(fun o -> o.AddPolicy(policy, policyConfig) |> ignore)
149+
let middleware (app : IApplicationBuilder) =
150+
app.UseCors policy
149151

150152
{ state with
151153
ServicesConfig = service::state.ServicesConfig
152154
AppConfigs = middleware::state.AppConfigs
153155
}
154-
[<CustomOperation("use_jwt_authentication")>]
155-
member __.UseJWTAuth(state: ApplicationState, secret: string, issuer : string) =
156-
let middleware (app : IApplicationBuilder) =
157-
app.UseAuthentication()
156+
[<CustomOperation("use_jwt_authentication")>]
157+
member __.UseJWTAuth(state: ApplicationState, secret: string, issuer : string) =
158+
let middleware (app : IApplicationBuilder) =
159+
app.UseAuthentication()
158160

159161
let service (s : IServiceCollection) =
160-
s.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
161-
.AddJwtBearer(fun opt ->
162+
s.AddAuthentication(fun cfg ->
163+
cfg.DefaultScheme <- JwtBearerDefaults.AuthenticationScheme
164+
cfg.DefaultChallengeScheme <- JwtBearerDefaults.AuthenticationScheme)
165+
.AddJwtBearer(fun opt ->
162166
let tvp = TokenValidationParameters()
163167
tvp.ValidateActor <- true
164168
tvp.ValidateAudience <- true
@@ -168,13 +172,13 @@ module Application =
168172
tvp.ValidAudience <- issuer
169173
tvp.IssuerSigningKey <- SymmetricSecurityKey(Text.Encoding.UTF8.GetBytes secret)
170174
opt.TokenValidationParameters <- tvp
171-
) |> ignore
172-
s
175+
) |> ignore
176+
s
173177

174178
{ state with
175179
ServicesConfig = service::state.ServicesConfig
176180
AppConfigs = middleware::state.AppConfigs
177-
}
181+
}
178182

179183
let application = ApplicationBuilder()
180184

0 commit comments

Comments
 (0)