diff --git a/backendCs/CreateLog.cs b/backendCs/CreateLog.cs new file mode 100644 index 0000000..f506881 --- /dev/null +++ b/backendCs/CreateLog.cs @@ -0,0 +1,99 @@ +using System.Net; +using System.Text; +using MySql.Data.MySqlClient; +using System.IdentityModel.Tokens.Jwt; +using Microsoft.IdentityModel.Tokens; + +namespace Server +{ + public class CreateLog + { + private static string secretKey = "stronk-key-much-sercret-much-more-stronk-stronk-key-much-sercret-much-more-stronk"; + public static bool ValidateToken(string token) + { + try + { + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)); + var tokenHandler = new JwtSecurityTokenHandler(); + var validationParameters = new TokenValidationParameters + { + ValidateIssuer = true, + ValidateAudience = true, + ValidateLifetime = true, + ValidIssuer = "TimeLogServer", + ValidAudience = "TimeLogWebsite", + IssuerSigningKey = key + }; + + var principal = tokenHandler.ValidateToken(token, validationParameters, out SecurityToken validatedToken); + return validatedToken != null; + } + catch + { + return false; + } + } + public static void run(MySqlConnection conn, HttpListenerRequest request, HttpListenerResponse response) + { + try + { + var headers = request.Headers; + string? token = headers["token"]; + if (!ValidateToken(token)) + { + throw new Exception("Invalid token"); + } + // open connection + conn.Open(); + // prepare SQL query + MySqlCommand cmd = new MySqlCommand(); + cmd.Connection = conn; + cmd.CommandText = @"INSERT INTO Timelog(user,project,date,time) VALUES(@user,@project,@date,@time);"; + + var queryString = request.QueryString; + string? user = queryString["user"]; + string? project = queryString["project"]; + string? time = queryString["time"]; + string? date = queryString["date"]; + // TODO validate somehow that the user who send the date is the + // same user who has token, validate the project belongs to the + // user + int myInt; + bool isValid = int.TryParse(time, out myInt); + if (!string.IsNullOrEmpty(time) && isValid && myInt > 0) { } + + if (!string.IsNullOrEmpty(date)) // use regex to validate{ } + + if (string.IsNullOrEmpty(user)) // select * from User Where user=@user; + { } + if (!string.IsNullOrEmpty(project))// select * from Project Where project=@project; + { } + + cmd.Parameters.AddWithValue("@user", user); + cmd.Parameters.AddWithValue("@project", project); + cmd.Parameters.AddWithValue("@time", time); + cmd.Parameters.AddWithValue("@date", date); + // execute query and read results + cmd.ExecuteNonQuery(); + + response.StatusCode = (int)HttpStatusCode.OK; + response.StatusDescription = "Status OK"; + + } + catch (Exception ex) + { + string errorMessage = $"Error: {ex.Message}"; + byte[] buffer = Encoding.UTF8.GetBytes(errorMessage); + response.ContentType = "text/plain"; + response.ContentLength64 = buffer.Length; + response.OutputStream.Write(buffer, 0, buffer.Length); + } + finally + { + // close db connection + conn.Close(); + } + } + } +} + diff --git a/backendCs/CreateProcedure.cs b/backendCs/CreateProcedure.cs index 14abe30..45229fa 100644 --- a/backendCs/CreateProcedure.cs +++ b/backendCs/CreateProcedure.cs @@ -124,7 +124,11 @@ BEGIN response.ContentLength64 = buffer.Length; response.OutputStream.Write(buffer, 0, buffer.Length); } - conn.Close(); + finally + { + // close db connection + conn.Close(); + } } } } diff --git a/backendCs/Getall.cs b/backendCs/Getall.cs index a831998..0556132 100644 --- a/backendCs/Getall.cs +++ b/backendCs/Getall.cs @@ -6,7 +6,7 @@ using Newtonsoft.Json; namespace Server { // there should be a better way to deal with data comming from sql - public class All + public class Log { public object? f_name { get; set; } public object? l_name { get; set; } @@ -62,10 +62,10 @@ namespace Server // execute query and read results MySqlDataReader reader = cmd.ExecuteReader(); - List entries = new List(); + List entries = new List(); while (reader.Read()) { - entries.Add(new All + entries.Add(new Log { f_name = reader["f_name"], l_name = reader["l_name"], @@ -93,7 +93,10 @@ namespace Server response.ContentLength64 = buffer.Length; response.OutputStream.Write(buffer, 0, buffer.Length); } - conn.Close(); + finally + { + conn.Close(); + } } } } diff --git a/backendCs/Gettopten.cs b/backendCs/Gettopten.cs index 7f0e815..c3ee59c 100644 --- a/backendCs/Gettopten.cs +++ b/backendCs/Gettopten.cs @@ -76,7 +76,10 @@ namespace Server response.ContentLength64 = buffer.Length; response.OutputStream.Write(buffer, 0, buffer.Length); } - conn.Close(); + finally + { + conn.Close(); + } } } } diff --git a/backendCs/Getuser.cs b/backendCs/Getuser.cs index 09d1038..ea64ef3 100644 --- a/backendCs/Getuser.cs +++ b/backendCs/Getuser.cs @@ -51,8 +51,11 @@ namespace Server response.ContentLength64 = buffer.Length; response.OutputStream.Write(buffer, 0, buffer.Length); } - // close db connection - conn.Close(); + finally + { + // close db connection + conn.Close(); + } } } } diff --git a/backendCs/Login.cs b/backendCs/Login.cs new file mode 100644 index 0000000..28b4471 --- /dev/null +++ b/backendCs/Login.cs @@ -0,0 +1,124 @@ +using System.Net; +using System.Text; +using MySql.Data.MySqlClient; +using Newtonsoft.Json; +using System.Security.Claims; +using System.IdentityModel.Tokens.Jwt; +using Microsoft.IdentityModel.Tokens; +using System.Security.Cryptography; + +namespace Server +{ + public class Login + { + private static string secretKey = "stronk-key-much-sercret-much-more-stronk-stronk-key-much-sercret-much-more-stronk"; + + public static string GenerateToken(string user) + { + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)); + var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); + + var token = new JwtSecurityToken( + issuer: "TimeLogServer", + audience: "TimeLogWebsite", + claims: new[] + { + new Claim(ClaimTypes.Name, user) + }, + expires: DateTime.Now.AddHours(2), + signingCredentials: creds + ); + + return new JwtSecurityTokenHandler().WriteToken(token); + } + + public static bool VerifyPassword(string enteredPassword, string storedHash) + { + byte[] hashBytes = Convert.FromBase64String(storedHash); + + // Extract the salt from the stored hash + byte[] salt = new byte[16]; + Array.Copy(hashBytes, 0, salt, 0, 16); + + // Hash the entered password with the stored salt + using (var pbkdf2 = new Rfc2898DeriveBytes(enteredPassword, salt, 10000, HashAlgorithmName.SHA256)) + { + byte[] newHash = pbkdf2.GetBytes(32); + + // Compare the computed hash with the stored hash + for (int i = 0; i < 32; i++) + { + if (newHash[i] != hashBytes[i + 16]) + return false; + } + return true; + } + } + + public static void run(MySqlConnection conn, HttpListenerRequest request, HttpListenerResponse response) + { + try + { + conn.Open(); + // prepare SQL query + MySqlCommand cmd = new MySqlCommand(); + cmd.Connection = conn; + cmd.CommandText = @"SELECT u.id,password FROM User u + INNER JOIN Password p ON p.user=u.id + WHERE mail=@mail"; + var queryString = request.QueryString; + string? mail = queryString["mail"]; + string? password = queryString["password"]; + cmd.Parameters.AddWithValue("@mail", mail); + cmd.Parameters.AddWithValue("@password", password); + // execute query and read results + MySqlDataReader reader = cmd.ExecuteReader(); + + string? userId = ""; + string? hashedPass = ""; + string? jsonResponse; + while (reader.Read()) + { + userId = Convert.ToString(reader["id"]); + hashedPass = Convert.ToString(reader["password"]); + } + + // check username + if (string.IsNullOrEmpty(userId) && string.IsNullOrEmpty(hashedPass)) + { + throw new Exception("Error:Invalid Username or Password"); + } + + //check password + if (string.IsNullOrEmpty(password) + || string.IsNullOrEmpty(hashedPass) + || VerifyPassword(password, Convert.ToString(hashedPass))) + { + throw new Exception("Error:Invalid Username or Password"); + } + + jsonResponse = JsonConvert.SerializeObject(GenerateToken(userId)); + + // prepare response + byte[] buffer = Encoding.UTF8.GetBytes(jsonResponse); + response.ContentType = "application/json"; + response.ContentLength64 = buffer.Length; + response.OutputStream.Write(buffer, 0, buffer.Length); + } + catch (Exception ex) + { + string errorMessage = $"Error: {ex.Message}"; + byte[] buffer = Encoding.UTF8.GetBytes(errorMessage); + response.ContentType = "text/plain"; + response.ContentLength64 = buffer.Length; + response.OutputStream.Write(buffer, 0, buffer.Length); + } + finally + { + // close db connection + conn.Close(); + } + } + } +} + diff --git a/backendCs/Program.cs b/backendCs/Program.cs index d4f0787..1d83f8a 100644 --- a/backendCs/Program.cs +++ b/backendCs/Program.cs @@ -18,6 +18,9 @@ namespace Server listener.Prefixes.Add("http://localhost:5000/api/getuser/"); listener.Prefixes.Add("http://localhost:5000/api/reset/"); listener.Prefixes.Add("http://localhost:5000/api/createp/"); + listener.Prefixes.Add("http://localhost:5000/api/register/"); + listener.Prefixes.Add("http://localhost:5000/api/login/"); + listener.Prefixes.Add("http://localhost:5000/api/createlog/"); // listen listener.Start(); @@ -61,6 +64,16 @@ namespace Server case "/api/createp": CreateProcedure.run(conn, request, response); break; + case "/api/register": + Register.run(conn, request, response); + break; + case "/api/login": + Console.WriteLine("111"); + Login.run(conn, request, response); + break; + case "/api/createlog": + CreateLog.run(conn, request, response); + break; default: response.StatusCode = 404; string errorMessage = "Not Found"; diff --git a/backendCs/Register.cs b/backendCs/Register.cs new file mode 100644 index 0000000..8fe7e14 --- /dev/null +++ b/backendCs/Register.cs @@ -0,0 +1,95 @@ +using System.Net; +using System.Text; +using MySql.Data.MySqlClient; +using System.Security.Cryptography; + +namespace Server +{ + public class Register + { + public static string HashPassword(string password) + { + // Generate a salt + using (var rng = new RNGCryptoServiceProvider()) + { + byte[] salt = new byte[16]; + rng.GetBytes(salt); + + // Create a PBKDF2 instance to hash the password + using (var pbkdf2 = new Rfc2898DeriveBytes(password, salt, 10000, HashAlgorithmName.SHA256)) + { + byte[] hash = pbkdf2.GetBytes(32); + + // Combine the salt and the hash together + byte[] hashBytes = new byte[48]; // 16 (salt) + 32 (hash) + Array.Copy(salt, 0, hashBytes, 0, 16); + Array.Copy(hash, 0, hashBytes, 16, 32); + + // Return the final hash as a Base64 encoded string + return Convert.ToBase64String(hashBytes); + } + } + } + public static void run(MySqlConnection conn, HttpListenerRequest request, HttpListenerResponse response) + { + try + { + // TODO: if one of the queries fails the others should be reverted in + var queryString = request.QueryString; + string? f_name = queryString["f_name"]; + string? l_name = queryString["l_name"]; + string? mail = queryString["mail"]; + string? password = queryString["password"]; + // validate parameters + if (string.IsNullOrEmpty(f_name) || f_name.Length > 30 || f_name.Length < 2 || + string.IsNullOrEmpty(l_name) || l_name.Length > 30 || l_name.Length < 2 || + string.IsNullOrEmpty(mail) || mail.Length > 50 || mail.Length < 6 || + string.IsNullOrEmpty(password) || password.Length > 30 || password.Length < 10) + { + throw new Exception("Wrong parameters"); + } + // open connection + conn.Open(); + // prepare SQL query + MySqlCommand cmd = new MySqlCommand(); + cmd.Connection = conn; + // Insert into User + cmd.CommandText = "INSERT INTO User(f_name,l_name,mail) VALUES(@f_name,@l_name,@mail)"; + cmd.Parameters.AddWithValue("@f_name", f_name); + cmd.Parameters.AddWithValue("@l_name", l_name); + cmd.Parameters.AddWithValue("@mail", mail); + cmd.ExecuteNonQuery(); + + // Get user ID + cmd.CommandText = "SELECT id FROM User WHERE mail=@mail;"; + MySqlDataReader reader = cmd.ExecuteReader(); + reader.Read(); + var id = reader["id"]; + reader.Close(); + + // Insert into password + cmd.CommandText = "INSERT INTO Password(user,password) VALUES(@id,@password)"; + cmd.Parameters.AddWithValue("@password", HashPassword(password)); + cmd.Parameters.AddWithValue("@id", id); + cmd.ExecuteNonQuery(); + + response.StatusCode = (int)HttpStatusCode.OK; + response.StatusDescription = "Status OK"; + } + catch (Exception ex) + { + string errorMessage = $"Error: {ex.Message}"; + byte[] buffer = Encoding.UTF8.GetBytes(errorMessage); + response.ContentType = "text/plain"; + response.ContentLength64 = buffer.Length; + response.OutputStream.Write(buffer, 0, buffer.Length); + } + finally + { + // close db connection + conn.Close(); + } + } + } +} + diff --git a/backendCs/TimelogBackend.csproj b/backendCs/TimelogBackend.csproj index ecaa79c..7b59323 100644 --- a/backendCs/TimelogBackend.csproj +++ b/backendCs/TimelogBackend.csproj @@ -10,6 +10,7 @@ + diff --git a/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Abstractions.dll b/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Abstractions.dll new file mode 100755 index 0000000..3f59c26 Binary files /dev/null and b/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Abstractions.dll differ diff --git a/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll b/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100755 index 0000000..f9cca69 Binary files /dev/null and b/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Logging.dll b/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Logging.dll new file mode 100755 index 0000000..adf3600 Binary files /dev/null and b/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Logging.dll differ diff --git a/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Tokens.dll b/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Tokens.dll new file mode 100755 index 0000000..b2ac805 Binary files /dev/null and b/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Tokens.dll differ diff --git a/backendCs/bin/Debug/net8.0/System.IdentityModel.Tokens.Jwt.dll b/backendCs/bin/Debug/net8.0/System.IdentityModel.Tokens.Jwt.dll new file mode 100755 index 0000000..de75c23 Binary files /dev/null and b/backendCs/bin/Debug/net8.0/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/backendCs/bin/Debug/net8.0/TimelogBackend.deps.json b/backendCs/bin/Debug/net8.0/TimelogBackend.deps.json index f05b761..a7fd513 100644 --- a/backendCs/bin/Debug/net8.0/TimelogBackend.deps.json +++ b/backendCs/bin/Debug/net8.0/TimelogBackend.deps.json @@ -9,7 +9,8 @@ "TimelogBackend/1.0.0": { "dependencies": { "MySql.Data": "9.1.0", - "Newtonsoft.Json": "13.0.3" + "Newtonsoft.Json": "13.0.3", + "System.IdentityModel.Tokens.Jwt": "8.2.1" }, "runtime": { "TimelogBackend.dll": {} @@ -60,6 +61,47 @@ } } }, + "Microsoft.IdentityModel.Abstractions/8.2.1": { + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "8.2.1.0", + "fileVersion": "8.2.1.51115" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.2.1": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.2.1" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "8.2.1.0", + "fileVersion": "8.2.1.51115" + } + } + }, + "Microsoft.IdentityModel.Logging/8.2.1": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.2.1" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "8.2.1.0", + "fileVersion": "8.2.1.51115" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.2.1": { + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.2.1" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "8.2.1.0", + "fileVersion": "8.2.1.51115" + } + } + }, "Microsoft.NETCore.Platforms/1.1.0": {}, "Microsoft.NETCore.Targets/1.1.0": {}, "MySql.Data/9.1.0": { @@ -156,6 +198,18 @@ } } }, + "System.IdentityModel.Tokens.Jwt/8.2.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.2.1", + "Microsoft.IdentityModel.Tokens": "8.2.1" + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "8.2.1.0", + "fileVersion": "8.2.1.51115" + } + } + }, "System.IO/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", @@ -311,6 +365,34 @@ "path": "k4os.hash.xxhash/1.0.8", "hashPath": "k4os.hash.xxhash.1.0.8.nupkg.sha512" }, + "Microsoft.IdentityModel.Abstractions/8.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-8sMlmHhh5HdP3+yCSCUpJpN1yYrJ6J/V39df9siY8PeMckRMrSBRL/TMs/Jex6P1ly/Ie2mFqvhcPHHrNmCd/w==", + "path": "microsoft.identitymodel.abstractions/8.2.1", + "hashPath": "microsoft.identitymodel.abstractions.8.2.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/8.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Oo0SBOzK6p3YIUcc1YTJCaYezVUa5HyUJ/AAB35QwxhhD6Blei5tNjNYDR0IbqHdb5EPUIiKcIbQGoj2b1mIbg==", + "path": "microsoft.identitymodel.jsonwebtokens/8.2.1", + "hashPath": "microsoft.identitymodel.jsonwebtokens.8.2.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/8.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EgSEAtBoWBynACdhKnMlVAFGGWqOIdmbpW7Vvx2SQ7u7ogZ50NcEGSoGljEsQoGIRYpo0UxXYktKcYMp+G/Bcg==", + "path": "microsoft.identitymodel.logging/8.2.1", + "hashPath": "microsoft.identitymodel.logging.8.2.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/8.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oQeLWCATuVXOCdIvouM4GG2xl1YNng+uAxYwu7CG6RuW+y+1+slXrOBq5csTU2pnV2SH3B1GmugDf6Jv/lexjw==", + "path": "microsoft.identitymodel.tokens/8.2.1", + "hashPath": "microsoft.identitymodel.tokens.8.2.1.nupkg.sha512" + }, "Microsoft.NETCore.Platforms/1.1.0": { "type": "package", "serviceable": true, @@ -367,6 +449,13 @@ "path": "system.diagnostics.eventlog/8.0.0", "hashPath": "system.diagnostics.eventlog.8.0.0.nupkg.sha512" }, + "System.IdentityModel.Tokens.Jwt/8.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GVQmbjr2N8awFWPTWyThLxgKnFINObG1P+oX7vFrBY8um3V7V7Dh3wnxaGxNH6v6lSTeVQrY+SaUUBX9H3TPcw==", + "path": "system.identitymodel.tokens.jwt/8.2.1", + "hashPath": "system.identitymodel.tokens.jwt.8.2.1.nupkg.sha512" + }, "System.IO/4.3.0": { "type": "package", "serviceable": true, diff --git a/backendCs/bin/Debug/net8.0/TimelogBackend.dll b/backendCs/bin/Debug/net8.0/TimelogBackend.dll index fc574a6..7ff5b84 100644 Binary files a/backendCs/bin/Debug/net8.0/TimelogBackend.dll and b/backendCs/bin/Debug/net8.0/TimelogBackend.dll differ diff --git a/backendCs/bin/Debug/net8.0/TimelogBackend.pdb b/backendCs/bin/Debug/net8.0/TimelogBackend.pdb index 3825956..f247423 100644 Binary files a/backendCs/bin/Debug/net8.0/TimelogBackend.pdb and b/backendCs/bin/Debug/net8.0/TimelogBackend.pdb differ diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs b/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs index b09494c..a263ead 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("TimelogBackend")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+06ea52ead66c1038b248ca644ce0e0a29ee0065f")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+fd827866717246f0c1dc8296a83443554438188d")] [assembly: System.Reflection.AssemblyProductAttribute("TimelogBackend")] [assembly: System.Reflection.AssemblyTitleAttribute("TimelogBackend")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache b/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache index 9dde334..aae39ea 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache @@ -1 +1 @@ -b1cc7558bcbf1cf4d6ac3236c7ebc2c474885e8b8b600c803a037c8c84382d4c +390f35c991a10d59ca8975ac0af5ba18c35e466fb3f3b2889f5d0ac9b979b12e diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig b/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig index 3b69067..5a01ff7 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig @@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = TimelogBackend -build_property.ProjectDir = /home/arch/projects/wip/timelog-interview/backendCs/ +build_property.ProjectDir = /home/arch/projects/wip/timelog-interview-login/backendCs/ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.assets.cache b/backendCs/obj/Debug/net8.0/TimelogBackend.assets.cache index 4920860..6174452 100644 Binary files a/backendCs/obj/Debug/net8.0/TimelogBackend.assets.cache and b/backendCs/obj/Debug/net8.0/TimelogBackend.assets.cache differ diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.AssemblyReference.cache b/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.AssemblyReference.cache index 0ada053..ada3898 100644 Binary files a/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.AssemblyReference.cache and b/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.AssemblyReference.cache differ diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.CopyComplete b/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.CoreCompileInputs.cache b/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.CoreCompileInputs.cache index d00c3e0..f0fcf7d 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.CoreCompileInputs.cache +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -8cb7b4e3896ea6e4199194b8ade89330b75c191994f715b16fe2d035c7102d40 +21bef44b038939ad13b38cbd16140c4addb86bff3c9dfbda0b0851a88a920ccc diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.FileListAbsolute.txt b/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.FileListAbsolute.txt index 07bf854..1180a5d 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.FileListAbsolute.txt +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.FileListAbsolute.txt @@ -74,3 +74,46 @@ /home/arch/projects/wip/timelog-interview/backendCs/obj/Debug/net8.0/TimelogBackend.pdb /home/arch/projects/wip/timelog-interview/backendCs/obj/Debug/net8.0/TimelogBackend.genruntimeconfig.cache /home/arch/projects/wip/timelog-interview/backendCs/obj/Debug/net8.0/ref/TimelogBackend.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/TimelogBackend +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/TimelogBackend.deps.json +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/TimelogBackend.runtimeconfig.json +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/TimelogBackend.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/TimelogBackend.pdb +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/BouncyCastle.Cryptography.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/Google.Protobuf.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/K4os.Compression.LZ4.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/K4os.Compression.LZ4.Streams.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/K4os.Hash.xxHash.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/MySql.Data.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/Newtonsoft.Json.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/System.Configuration.ConfigurationManager.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/System.Diagnostics.EventLog.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/System.IO.Pipelines.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/System.Security.Cryptography.ProtectedData.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/System.Security.Permissions.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/System.Windows.Extensions.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/ZstdSharp.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/runtimes/win-x64/native/comerr64.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/runtimes/win-x64/native/gssapi64.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/runtimes/win-x64/native/k5sprt64.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/runtimes/win-x64/native/krb5_64.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/runtimes/win-x64/native/krbcc64.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/runtimes/win/lib/net8.0/System.Windows.Extensions.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.AssemblyReference.cache +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.CoreCompileInputs.cache +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.csproj.CopyComplete +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/refint/TimelogBackend.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.pdb +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/TimelogBackend.genruntimeconfig.cache +/home/arch/projects/wip/timelog-interview-login/backendCs/obj/Debug/net8.0/ref/TimelogBackend.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Abstractions.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Logging.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/Microsoft.IdentityModel.Tokens.dll +/home/arch/projects/wip/timelog-interview-login/backendCs/bin/Debug/net8.0/System.IdentityModel.Tokens.Jwt.dll diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.dll b/backendCs/obj/Debug/net8.0/TimelogBackend.dll index fc574a6..7ff5b84 100644 Binary files a/backendCs/obj/Debug/net8.0/TimelogBackend.dll and b/backendCs/obj/Debug/net8.0/TimelogBackend.dll differ diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.genruntimeconfig.cache b/backendCs/obj/Debug/net8.0/TimelogBackend.genruntimeconfig.cache index 3af0758..5fb506c 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.genruntimeconfig.cache +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.genruntimeconfig.cache @@ -1 +1 @@ -b9db7be95623da1c56ce81f0a2fe43bd17220a8c9689f0c3bac4131258accda2 +cabec8eef32bfb7a5e67f2b4ed57839edd7c13e8479c77f87a2d35ec66b02abb diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.pdb b/backendCs/obj/Debug/net8.0/TimelogBackend.pdb index 3825956..f247423 100644 Binary files a/backendCs/obj/Debug/net8.0/TimelogBackend.pdb and b/backendCs/obj/Debug/net8.0/TimelogBackend.pdb differ diff --git a/backendCs/obj/Debug/net8.0/ref/TimelogBackend.dll b/backendCs/obj/Debug/net8.0/ref/TimelogBackend.dll index 90a1f1f..5dec015 100644 Binary files a/backendCs/obj/Debug/net8.0/ref/TimelogBackend.dll and b/backendCs/obj/Debug/net8.0/ref/TimelogBackend.dll differ diff --git a/backendCs/obj/Debug/net8.0/refint/TimelogBackend.dll b/backendCs/obj/Debug/net8.0/refint/TimelogBackend.dll index 90a1f1f..5dec015 100644 Binary files a/backendCs/obj/Debug/net8.0/refint/TimelogBackend.dll and b/backendCs/obj/Debug/net8.0/refint/TimelogBackend.dll differ diff --git a/backendCs/obj/TimelogBackend.csproj.nuget.dgspec.json b/backendCs/obj/TimelogBackend.csproj.nuget.dgspec.json index 5b2e011..6bf1f0a 100644 --- a/backendCs/obj/TimelogBackend.csproj.nuget.dgspec.json +++ b/backendCs/obj/TimelogBackend.csproj.nuget.dgspec.json @@ -1,17 +1,17 @@ { "format": 1, "restore": { - "/home/arch/projects/wip/timelog-interview/backendCs/TimelogBackend.csproj": {} + "/home/arch/projects/wip/timelog-interview-login/backendCs/TimelogBackend.csproj": {} }, "projects": { - "/home/arch/projects/wip/timelog-interview/backendCs/TimelogBackend.csproj": { + "/home/arch/projects/wip/timelog-interview-login/backendCs/TimelogBackend.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "/home/arch/projects/wip/timelog-interview/backendCs/TimelogBackend.csproj", + "projectUniqueName": "/home/arch/projects/wip/timelog-interview-login/backendCs/TimelogBackend.csproj", "projectName": "TimelogBackend", - "projectPath": "/home/arch/projects/wip/timelog-interview/backendCs/TimelogBackend.csproj", + "projectPath": "/home/arch/projects/wip/timelog-interview-login/backendCs/TimelogBackend.csproj", "packagesPath": "/home/arch/.nuget/packages/", - "outputPath": "/home/arch/projects/wip/timelog-interview/backendCs/obj/", + "outputPath": "/home/arch/projects/wip/timelog-interview-login/backendCs/obj/", "projectStyle": "PackageReference", "configFilePaths": [ "/home/arch/.nuget/NuGet/NuGet.Config" @@ -45,6 +45,10 @@ "Newtonsoft.Json": { "target": "Package", "version": "[13.0.3, )" + }, + "System.IdentityModel.Tokens.Jwt": { + "target": "Package", + "version": "[8.2.1, )" } }, "imports": [ diff --git a/backendCs/obj/project.assets.json b/backendCs/obj/project.assets.json index efb95ba..701aed3 100644 --- a/backendCs/obj/project.assets.json +++ b/backendCs/obj/project.assets.json @@ -72,6 +72,67 @@ } } }, + "Microsoft.IdentityModel.Abstractions/8.2.1": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.2.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.2.1" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Logging/8.2.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.2.1" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.2.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.2.1" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + } + }, "Microsoft.NETCore.Platforms/1.1.0": { "type": "package", "compile": { @@ -224,6 +285,23 @@ } } }, + "System.IdentityModel.Tokens.Jwt/8.2.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.2.1", + "Microsoft.IdentityModel.Tokens": "8.2.1" + }, + "compile": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + } + }, "System.IO/4.3.0": { "type": "package", "dependencies": { @@ -597,6 +675,102 @@ "lib/netstandard2.1/K4os.Hash.xxHash.xml" ] }, + "Microsoft.IdentityModel.Abstractions/8.2.1": { + "sha512": "8sMlmHhh5HdP3+yCSCUpJpN1yYrJ6J/V39df9siY8PeMckRMrSBRL/TMs/Jex6P1ly/Ie2mFqvhcPHHrNmCd/w==", + "type": "package", + "path": "microsoft.identitymodel.abstractions/8.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.IdentityModel.Abstractions.dll", + "lib/net462/Microsoft.IdentityModel.Abstractions.xml", + "lib/net472/Microsoft.IdentityModel.Abstractions.dll", + "lib/net472/Microsoft.IdentityModel.Abstractions.xml", + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/net6.0/Microsoft.IdentityModel.Abstractions.xml", + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/net8.0/Microsoft.IdentityModel.Abstractions.xml", + "lib/net9.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/net9.0/Microsoft.IdentityModel.Abstractions.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", + "microsoft.identitymodel.abstractions.8.2.1.nupkg.sha512", + "microsoft.identitymodel.abstractions.nuspec" + ] + }, + "Microsoft.IdentityModel.JsonWebTokens/8.2.1": { + "sha512": "Oo0SBOzK6p3YIUcc1YTJCaYezVUa5HyUJ/AAB35QwxhhD6Blei5tNjNYDR0IbqHdb5EPUIiKcIbQGoj2b1mIbg==", + "type": "package", + "path": "microsoft.identitymodel.jsonwebtokens/8.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "microsoft.identitymodel.jsonwebtokens.8.2.1.nupkg.sha512", + "microsoft.identitymodel.jsonwebtokens.nuspec" + ] + }, + "Microsoft.IdentityModel.Logging/8.2.1": { + "sha512": "EgSEAtBoWBynACdhKnMlVAFGGWqOIdmbpW7Vvx2SQ7u7ogZ50NcEGSoGljEsQoGIRYpo0UxXYktKcYMp+G/Bcg==", + "type": "package", + "path": "microsoft.identitymodel.logging/8.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.IdentityModel.Logging.dll", + "lib/net462/Microsoft.IdentityModel.Logging.xml", + "lib/net472/Microsoft.IdentityModel.Logging.dll", + "lib/net472/Microsoft.IdentityModel.Logging.xml", + "lib/net6.0/Microsoft.IdentityModel.Logging.dll", + "lib/net6.0/Microsoft.IdentityModel.Logging.xml", + "lib/net8.0/Microsoft.IdentityModel.Logging.dll", + "lib/net8.0/Microsoft.IdentityModel.Logging.xml", + "lib/net9.0/Microsoft.IdentityModel.Logging.dll", + "lib/net9.0/Microsoft.IdentityModel.Logging.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", + "microsoft.identitymodel.logging.8.2.1.nupkg.sha512", + "microsoft.identitymodel.logging.nuspec" + ] + }, + "Microsoft.IdentityModel.Tokens/8.2.1": { + "sha512": "oQeLWCATuVXOCdIvouM4GG2xl1YNng+uAxYwu7CG6RuW+y+1+slXrOBq5csTU2pnV2SH3B1GmugDf6Jv/lexjw==", + "type": "package", + "path": "microsoft.identitymodel.tokens/8.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.IdentityModel.Tokens.dll", + "lib/net462/Microsoft.IdentityModel.Tokens.xml", + "lib/net472/Microsoft.IdentityModel.Tokens.dll", + "lib/net472/Microsoft.IdentityModel.Tokens.xml", + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll", + "lib/net6.0/Microsoft.IdentityModel.Tokens.xml", + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll", + "lib/net8.0/Microsoft.IdentityModel.Tokens.xml", + "lib/net9.0/Microsoft.IdentityModel.Tokens.dll", + "lib/net9.0/Microsoft.IdentityModel.Tokens.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", + "microsoft.identitymodel.tokens.8.2.1.nupkg.sha512", + "microsoft.identitymodel.tokens.nuspec" + ] + }, "Microsoft.NETCore.Platforms/1.1.0": { "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", "type": "package", @@ -818,6 +992,30 @@ "useSharedDesignerContext.txt" ] }, + "System.IdentityModel.Tokens.Jwt/8.2.1": { + "sha512": "GVQmbjr2N8awFWPTWyThLxgKnFINObG1P+oX7vFrBY8um3V7V7Dh3wnxaGxNH6v6lSTeVQrY+SaUUBX9H3TPcw==", + "type": "package", + "path": "system.identitymodel.tokens.jwt/8.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/System.IdentityModel.Tokens.Jwt.dll", + "lib/net462/System.IdentityModel.Tokens.Jwt.xml", + "lib/net472/System.IdentityModel.Tokens.Jwt.dll", + "lib/net472/System.IdentityModel.Tokens.Jwt.xml", + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/net6.0/System.IdentityModel.Tokens.Jwt.xml", + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/net8.0/System.IdentityModel.Tokens.Jwt.xml", + "lib/net9.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/net9.0/System.IdentityModel.Tokens.Jwt.xml", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", + "system.identitymodel.tokens.jwt.8.2.1.nupkg.sha512", + "system.identitymodel.tokens.jwt.nuspec" + ] + }, "System.IO/4.3.0": { "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "type": "package", @@ -1649,7 +1847,8 @@ "projectFileDependencyGroups": { "net8.0": [ "MySql.Data >= 9.1.0", - "Newtonsoft.Json >= 13.0.3" + "Newtonsoft.Json >= 13.0.3", + "System.IdentityModel.Tokens.Jwt >= 8.2.1" ] }, "packageFolders": { @@ -1658,11 +1857,11 @@ "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "/home/arch/projects/wip/timelog-interview/backendCs/TimelogBackend.csproj", + "projectUniqueName": "/home/arch/projects/wip/timelog-interview-login/backendCs/TimelogBackend.csproj", "projectName": "TimelogBackend", - "projectPath": "/home/arch/projects/wip/timelog-interview/backendCs/TimelogBackend.csproj", + "projectPath": "/home/arch/projects/wip/timelog-interview-login/backendCs/TimelogBackend.csproj", "packagesPath": "/home/arch/.nuget/packages/", - "outputPath": "/home/arch/projects/wip/timelog-interview/backendCs/obj/", + "outputPath": "/home/arch/projects/wip/timelog-interview-login/backendCs/obj/", "projectStyle": "PackageReference", "configFilePaths": [ "/home/arch/.nuget/NuGet/NuGet.Config" @@ -1696,6 +1895,10 @@ "Newtonsoft.Json": { "target": "Package", "version": "[13.0.3, )" + }, + "System.IdentityModel.Tokens.Jwt": { + "target": "Package", + "version": "[8.2.1, )" } }, "imports": [ diff --git a/backendCs/obj/project.nuget.cache b/backendCs/obj/project.nuget.cache index e5d9d5a..250be74 100644 --- a/backendCs/obj/project.nuget.cache +++ b/backendCs/obj/project.nuget.cache @@ -1,14 +1,18 @@ { "version": 2, - "dgSpecHash": "05fTwHDwROQn3aS1fZFUfkni+eNLFijwdR49kiMZyADYQWkBGYKVh4QK8CMaBFfif3DNASYK7goRXVy8COyb4A==", + "dgSpecHash": "lhoNhBuhv5pZb43QtTahPtHclYQU5heHEQPyTVS7gTLS0zI+oKRmmyzvVbe56/iHd4Yw20shJvPbIdrCOp+Qug==", "success": true, - "projectFilePath": "/home/arch/projects/wip/timelog-interview/backendCs/TimelogBackend.csproj", + "projectFilePath": "/home/arch/projects/wip/timelog-interview-login/backendCs/TimelogBackend.csproj", "expectedPackageFiles": [ "/home/arch/.nuget/packages/bouncycastle.cryptography/2.3.1/bouncycastle.cryptography.2.3.1.nupkg.sha512", "/home/arch/.nuget/packages/google.protobuf/3.26.1/google.protobuf.3.26.1.nupkg.sha512", "/home/arch/.nuget/packages/k4os.compression.lz4/1.3.8/k4os.compression.lz4.1.3.8.nupkg.sha512", "/home/arch/.nuget/packages/k4os.compression.lz4.streams/1.3.8/k4os.compression.lz4.streams.1.3.8.nupkg.sha512", "/home/arch/.nuget/packages/k4os.hash.xxhash/1.0.8/k4os.hash.xxhash.1.0.8.nupkg.sha512", + "/home/arch/.nuget/packages/microsoft.identitymodel.abstractions/8.2.1/microsoft.identitymodel.abstractions.8.2.1.nupkg.sha512", + "/home/arch/.nuget/packages/microsoft.identitymodel.jsonwebtokens/8.2.1/microsoft.identitymodel.jsonwebtokens.8.2.1.nupkg.sha512", + "/home/arch/.nuget/packages/microsoft.identitymodel.logging/8.2.1/microsoft.identitymodel.logging.8.2.1.nupkg.sha512", + "/home/arch/.nuget/packages/microsoft.identitymodel.tokens/8.2.1/microsoft.identitymodel.tokens.8.2.1.nupkg.sha512", "/home/arch/.nuget/packages/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg.sha512", "/home/arch/.nuget/packages/microsoft.netcore.targets/1.1.0/microsoft.netcore.targets.1.1.0.nupkg.sha512", "/home/arch/.nuget/packages/mysql.data/9.1.0/mysql.data.9.1.0.nupkg.sha512", @@ -17,6 +21,7 @@ "/home/arch/.nuget/packages/system.configuration.configurationmanager/8.0.0/system.configuration.configurationmanager.8.0.0.nupkg.sha512", "/home/arch/.nuget/packages/system.diagnostics.diagnosticsource/8.0.1/system.diagnostics.diagnosticsource.8.0.1.nupkg.sha512", "/home/arch/.nuget/packages/system.diagnostics.eventlog/8.0.0/system.diagnostics.eventlog.8.0.0.nupkg.sha512", + "/home/arch/.nuget/packages/system.identitymodel.tokens.jwt/8.2.1/system.identitymodel.tokens.jwt.8.2.1.nupkg.sha512", "/home/arch/.nuget/packages/system.io/4.3.0/system.io.4.3.0.nupkg.sha512", "/home/arch/.nuget/packages/system.io.pipelines/6.0.3/system.io.pipelines.6.0.3.nupkg.sha512", "/home/arch/.nuget/packages/system.reflection/4.3.0/system.reflection.4.3.0.nupkg.sha512", diff --git a/backendCs/test.txt b/backendCs/test.txt new file mode 100644 index 0000000..e69de29