Skip to content

Commit 11332d3

Browse files
Copilotmarcominerva
andcommitted
Change jwtBearerSettings from protected field to protected read-only property
Co-authored-by: marcominerva <3522534+marcominerva@users.noreply.github.com>
1 parent a6e42b8 commit 11332d3

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

src/SimpleAuthentication/JwtBearer/JwtBearerService.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,26 @@ public class JwtBearerService(IOptions<JwtBearerSettings> jwtBearerSettingsOptio
1515
/// <summary>
1616
/// Gets the JWT Bearer settings used by this service.
1717
/// </summary>
18-
protected readonly JwtBearerSettings jwtBearerSettings = jwtBearerSettingsOptions.Value;
18+
protected JwtBearerSettings JwtBearerSettings { get; } = jwtBearerSettingsOptions.Value;
1919

2020
/// <inheritdoc />
2121
public virtual Task<string> CreateTokenAsync(string userName, IList<Claim>? claims = null, string? issuer = null, string? audience = null, DateTime? absoluteExpiration = null)
2222
{
2323
claims ??= [];
24-
claims.Update(jwtBearerSettings.NameClaimType, userName);
24+
claims.Update(JwtBearerSettings.NameClaimType, userName);
2525
claims.Update(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString());
2626

2727
var now = DateTime.UtcNow;
2828

2929
var securityTokenDescriptor = new SecurityTokenDescriptor()
3030
{
31-
Subject = new ClaimsIdentity(claims, jwtBearerSettings.SchemeName, jwtBearerSettings.NameClaimType, jwtBearerSettings.RoleClaimType),
32-
Issuer = issuer ?? jwtBearerSettings.Issuers?.FirstOrDefault(),
33-
Audience = audience ?? jwtBearerSettings.Audiences?.FirstOrDefault(),
31+
Subject = new ClaimsIdentity(claims, JwtBearerSettings.SchemeName, JwtBearerSettings.NameClaimType, JwtBearerSettings.RoleClaimType),
32+
Issuer = issuer ?? JwtBearerSettings.Issuers?.FirstOrDefault(),
33+
Audience = audience ?? JwtBearerSettings.Audiences?.FirstOrDefault(),
3434
IssuedAt = now,
35-
NotBefore = now.Add(-jwtBearerSettings.ClockSkew),
36-
Expires = absoluteExpiration ?? (jwtBearerSettings.ExpirationTime.GetValueOrDefault() > TimeSpan.Zero ? now.Add(jwtBearerSettings.ExpirationTime!.Value) : DateTime.MaxValue),
37-
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtBearerSettings.SecurityKey)), jwtBearerSettings.Algorithm)
35+
NotBefore = now.Add(-JwtBearerSettings.ClockSkew),
36+
Expires = absoluteExpiration ?? (JwtBearerSettings.ExpirationTime.GetValueOrDefault() > TimeSpan.Zero ? now.Add(JwtBearerSettings.ExpirationTime!.Value) : DateTime.MaxValue),
37+
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(JwtBearerSettings.SecurityKey)), JwtBearerSettings.Algorithm)
3838
};
3939

4040
var tokenHandler = new JsonWebTokenHandler();
@@ -55,23 +55,23 @@ public virtual async Task<ClaimsPrincipal> ValidateTokenAsync(string token, bool
5555

5656
var tokenValidationParameters = new TokenValidationParameters
5757
{
58-
AuthenticationType = jwtBearerSettings.SchemeName,
59-
NameClaimType = jwtBearerSettings.NameClaimType,
60-
RoleClaimType = jwtBearerSettings.RoleClaimType,
61-
ValidateIssuer = jwtBearerSettings.Issuers?.Any() ?? false,
62-
ValidIssuers = jwtBearerSettings.Issuers,
63-
ValidateAudience = jwtBearerSettings.Audiences?.Any() ?? false,
64-
ValidAudiences = jwtBearerSettings.Audiences,
58+
AuthenticationType = JwtBearerSettings.SchemeName,
59+
NameClaimType = JwtBearerSettings.NameClaimType,
60+
RoleClaimType = JwtBearerSettings.RoleClaimType,
61+
ValidateIssuer = JwtBearerSettings.Issuers?.Any() ?? false,
62+
ValidIssuers = JwtBearerSettings.Issuers,
63+
ValidateAudience = JwtBearerSettings.Audiences?.Any() ?? false,
64+
ValidAudiences = JwtBearerSettings.Audiences,
6565
ValidateIssuerSigningKey = true,
66-
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtBearerSettings.SecurityKey)),
66+
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(JwtBearerSettings.SecurityKey)),
6767
RequireExpirationTime = true,
6868
ValidateLifetime = validateLifetime,
69-
ClockSkew = jwtBearerSettings.ClockSkew
69+
ClockSkew = JwtBearerSettings.ClockSkew
7070
};
7171

7272
var validationResult = await tokenHandler.ValidateTokenAsync(token, tokenValidationParameters);
7373

74-
if (!validationResult.IsValid || validationResult.SecurityToken is not JsonWebToken jsonWebToken || jsonWebToken.Alg != jwtBearerSettings.Algorithm)
74+
if (!validationResult.IsValid || validationResult.SecurityToken is not JsonWebToken jsonWebToken || jsonWebToken.Alg != JwtBearerSettings.Algorithm)
7575
{
7676
throw new SecurityTokenException("Token is expired or invalid", validationResult.Exception);
7777
}
@@ -86,7 +86,7 @@ public virtual async Task<string> RefreshTokenAsync(string token, bool validateL
8686
var principal = await ValidateTokenAsync(token, validateLifetime);
8787
var claims = (principal.Identity as ClaimsIdentity)!.Claims.ToList();
8888

89-
var userName = claims.First(c => c.Type == jwtBearerSettings.NameClaimType).Value;
89+
var userName = claims.First(c => c.Type == JwtBearerSettings.NameClaimType).Value;
9090
var issuer = claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Iss)?.Value;
9191
var audience = claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Aud)?.Value;
9292

0 commit comments

Comments
 (0)