Skip to content

Commit 7174241

Browse files
committed
Merge branch 'main' into VFD-289-aurora-rds-postgresql-serverless-v-2-pystytys
2 parents f6ecb3e + 9f424c9 commit 7174241

37 files changed

Lines changed: 657 additions & 481 deletions

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Helpers/Configurations/IIdentityProviderConfig.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Helpers/Configurations/ServerConfigurationValidation.cs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,6 @@ public static void ValidateServer(IConfiguration configuration)
88
{
99
var validationExceptions = new List<string>();
1010

11-
if (string.IsNullOrEmpty(configuration["Testbed:OpenIDConfigurationURL"]))
12-
{
13-
validationExceptions.Add("Testbed:OpenIDConfigurationURL is missing");
14-
}
15-
16-
if (string.IsNullOrEmpty(configuration["Sinuna:OpenIDConfigurationURL"]))
17-
{
18-
validationExceptions.Add("Sinuna:OpenIDConfigurationURL is missing");
19-
}
20-
21-
if (string.IsNullOrEmpty(configuration["SuomiFi:AuthorizationJwksJsonUrl"]))
22-
{
23-
validationExceptions.Add("SuomiFi:AuthorizationJwksJsonUrl is missing");
24-
}
25-
2611
if (string.IsNullOrEmpty(configuration["CodesetApiBaseUrl"]))
2712
{
2813
validationExceptions.Add("CodesetApiBaseUrl is missing");

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Helpers/Configurations/SinunaIdentityProviderConfig.cs

Lines changed: 0 additions & 61 deletions
This file was deleted.

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Helpers/Configurations/TestBedIdentityProviderConfig.cs

Lines changed: 0 additions & 59 deletions
This file was deleted.

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Helpers/Constants.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ public static class Web
1010

1111
public static class Security
1212
{
13-
public static string TestBedBearerScheme => "DefaultTestBedBearerScheme";
14-
public static string SuomiFiBearerScheme => "SuomiFiBearerScheme";
15-
public static string SinunaScheme => "SinunaScheme";
16-
public static string AllPoliciesPolicy => "AllPolicies";
1713
public static string ResolvePolicyFromTokenIssuer => "ResolvePolicyFromTokenIssuer";
1814
}
1915

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Helpers/Services/AuthenticationService.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using VirtualFinland.UserAPI.Security.Models;
2+
13
namespace VirtualFinland.UserAPI.Helpers.Services;
24

35
public class AuthenticationService
@@ -16,9 +18,9 @@ public AuthenticationService(UserSecurityService userSecurityService)
1618
return person.Id;
1719
}
1820

19-
public UserSecurityService.JWTTokenResult ParseAuthenticationHeader(HttpRequest httpRequest)
21+
public JwtTokenResult ParseAuthenticationHeader(HttpRequest httpRequest)
2022
{
2123
var token = httpRequest.Headers.Authorization.ToString().Replace("Bearer ", string.Empty);
22-
return _userSecurityService.ParseJWTToken(token);
24+
return _userSecurityService.ParseJwtToken(token);
2325
}
2426
}

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Helpers/Services/TestbedConsentSecurityService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using System.Text.Json.Serialization;
66
using Microsoft.IdentityModel.Tokens;
77
using VirtualFinland.UserAPI.Exceptions;
8-
using VirtualFinland.UserAPI.Helpers.Configurations;
8+
using VirtualFinland.UserAPI.Security.Configurations;
99

1010
namespace VirtualFinland.UserAPI.Helpers.Services;
1111

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
using System.IdentityModel.Tokens.Jwt;
21
using Microsoft.EntityFrameworkCore;
32
using VirtualFinland.UserAPI.Data;
43
using VirtualFinland.UserAPI.Exceptions;
4+
using VirtualFinland.UserAPI.Security.Models;
55
using VirtualFinland.UserAPI.Models.UsersDatabase;
66

77
namespace VirtualFinland.UserAPI.Helpers.Services;
@@ -10,11 +10,13 @@ public class UserSecurityService
1010
{
1111
private readonly UsersDbContext _usersDbContext;
1212
private readonly ILogger<UserSecurityService> _logger;
13+
private readonly IApplicationSecurity _applicationSecurity;
1314

14-
public UserSecurityService(UsersDbContext usersDbContext, ILogger<UserSecurityService> logger)
15+
public UserSecurityService(UsersDbContext usersDbContext, ILogger<UserSecurityService> logger, IApplicationSecurity applicationSecurity)
1516
{
1617
_usersDbContext = usersDbContext;
1718
_logger = logger;
19+
_applicationSecurity = applicationSecurity;
1820
}
1921

2022
/// <summary>
@@ -25,7 +27,7 @@ public UserSecurityService(UsersDbContext usersDbContext, ILogger<UserSecuritySe
2527
/// <exception cref="NotAuthorizedException">If user id and the issuer are not found in the DB for any given user, this is not a valid user within the users database.</exception>
2628
public async Task<Person> VerifyAndGetAuthenticatedUser(string token)
2729
{
28-
var jwtTokenResult = ParseJWTToken(token);
30+
var jwtTokenResult = ParseJwtToken(token);
2931

3032
try
3133
{
@@ -42,46 +44,8 @@ public async Task<Person> VerifyAndGetAuthenticatedUser(string token)
4244
/// <summary>
4345
/// Parses the JWT token and returns the issuer and the user id
4446
/// </summary>
45-
public JWTTokenResult ParseJWTToken(string token)
47+
public JwtTokenResult ParseJwtToken(string token)
4648
{
47-
if (string.IsNullOrEmpty(token))
48-
{
49-
throw new NotAuthorizedException("No token provided");
50-
}
51-
52-
var issuer = GetTokenIssuer(token);
53-
var userId = GetTokenUserId(token);
54-
55-
if (userId == null || issuer == null)
56-
{
57-
throw new NotAuthorizedException("The given token is not valid");
58-
}
59-
return new JWTTokenResult() { UserId = userId, Issuer = issuer };
60-
}
61-
62-
private static string? GetTokenUserId(string token)
63-
{
64-
var tokenHandler = new JwtSecurityTokenHandler();
65-
66-
if (!tokenHandler.CanReadToken(token))
67-
{
68-
return string.Empty;
69-
}
70-
71-
var jwtSecurityToken = tokenHandler.ReadJwtToken(token);
72-
return string.IsNullOrEmpty(jwtSecurityToken.Subject) ? jwtSecurityToken.Claims.FirstOrDefault(o => o.Type == "userId")?.Value : jwtSecurityToken.Subject;
73-
}
74-
75-
private static string? GetTokenIssuer(string token)
76-
{
77-
var tokenHandler = new JwtSecurityTokenHandler();
78-
var canReadToken = tokenHandler.CanReadToken(token);
79-
return canReadToken ? tokenHandler.ReadJwtToken(token).Issuer : string.Empty;
80-
}
81-
82-
public class JWTTokenResult
83-
{
84-
public string? UserId { get; set; }
85-
public string? Issuer { get; set; }
49+
return _applicationSecurity.ParseJwtToken(token);
8650
}
8751
}

0 commit comments

Comments
 (0)