From 4842d8bea9c178decfd1840590adb490c4c05736 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte <mirko@etherna.io> Date: Wed, 10 Nov 2021 17:03:21 +0100 Subject: [PATCH 1/8] Updated button text --- .../Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml index 8067cba..d197b20 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml @@ -49,7 +49,7 @@ else <div class="mb-3"> <label asp-for="EmailInput.Email"></label> <input asp-for="EmailInput.Email" class="form-control" /> - <button type="submit" class="btn btn-secondary mt-2">Send email</button> + <button type="submit" class="btn btn-secondary mt-2">Send code</button> </div> </form> From 5b10a40a8fb7587b108ff027b694f761a6596551 Mon Sep 17 00:00:00 2001 From: Mattia Dalzocchio <mattiadalzocchio@me.com> Date: Thu, 11 Nov 2021 14:54:05 +0100 Subject: [PATCH 2/8] Add otc autocompletion attribute --- src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml | 2 +- .../Identity/Pages/Account/Manage/EnableAuthenticator.cshtml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml index 617e7b0..9adf94a 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml @@ -28,7 +28,7 @@ <div asp-validation-summary="All" class="text-danger"></div> <div class="mb-3"> <label asp-for="Input.TwoFactorCode"></label> - <input asp-for="Input.TwoFactorCode" class="form-control" autocomplete="off" /> + <input asp-for="Input.TwoFactorCode" class="form-control" autocomplete="one-time-code" /> <span asp-validation-for="Input.TwoFactorCode" class="text-danger"></span> </div> <div class="mb-3"> diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml index e40a1f8..8393266 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml @@ -58,7 +58,7 @@ <form id="send-code" method="post"> <div class="mb-3"> <label asp-for="Input.Code" class="control-label">Verification Code</label> - <input asp-for="Input.Code" class="form-control" autocomplete="off" /> + <input asp-for="Input.Code" class="form-control" autocomplete="one-time-code" /> <span asp-validation-for="Input.Code" class="text-danger"></span> </div> <button type="submit" class="btn btn-primary">Verify</button> From b06186019057a8d9cb03e6d6c89b16ac25a3e774 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte <mirko@etherna.io> Date: Tue, 16 Nov 2021 22:24:30 +0100 Subject: [PATCH 3/8] Updated claims organization --- .../EthernaSSO.Domain.csproj | 6 ++--- src/EthernaSSO.Domain/Models/UserBase.cs | 23 +++++++++++++------ .../Pages/IdentityServer/UserClaims.cshtml | 2 +- .../Configs/IdentityServer/IdServerConfig.cs | 10 ++++---- src/EthernaSSO/EthernaSSO.csproj | 16 ++++++------- 5 files changed, 33 insertions(+), 24 deletions(-) diff --git a/src/EthernaSSO.Domain/EthernaSSO.Domain.csproj b/src/EthernaSSO.Domain/EthernaSSO.Domain.csproj index ccfc5db..d9271f6 100644 --- a/src/EthernaSSO.Domain/EthernaSSO.Domain.csproj +++ b/src/EthernaSSO.Domain/EthernaSSO.Domain.csproj @@ -13,11 +13,11 @@ </PropertyGroup> <ItemGroup> - <PackageReference Include="EthernaRCL" Version="0.1.0-alpha.9" /> <PackageReference Include="Etherna.DomainEvents" Version="1.3.0" /> - <PackageReference Include="Microsoft.Extensions.Identity.Core" Version="5.0.11" /> + <PackageReference Include="Microsoft.AspNetCore.Authentication.Etherna" Version="0.3.0-alpha.7" /> + <PackageReference Include="Microsoft.Extensions.Identity.Core" Version="5.0.12" /> <PackageReference Include="MongODM.Core" Version="0.23.0-alpha.37" /> - <PackageReference Include="Nethereum.Accounts" Version="4.1.0" /> + <PackageReference Include="Nethereum.Accounts" Version="4.1.1" /> </ItemGroup> </Project> diff --git a/src/EthernaSSO.Domain/Models/UserBase.cs b/src/EthernaSSO.Domain/Models/UserBase.cs index 34b10df..d1cdf58 100644 --- a/src/EthernaSSO.Domain/Models/UserBase.cs +++ b/src/EthernaSSO.Domain/Models/UserBase.cs @@ -12,21 +12,30 @@ // See the License for the specific language governing permissions and // limitations under the License. +using Etherna.Authentication; using Etherna.MongODM.Core.Attributes; -using Etherna.RCL; using Etherna.SSOServer.Domain.Helpers; using Etherna.SSOServer.Domain.Models.UserAgg; using Microsoft.AspNetCore.Identity; using System; using System.Collections.Generic; using System.Linq; -using System.Security.Claims; using System.Text.Json; namespace Etherna.SSOServer.Domain.Models { public abstract class UserBase : EntityModelBase<string> { + // Consts. + public static readonly IEnumerable<string> DomainManagedClaimNames = new[] + { + ClaimTypes.EtherAddress, + ClaimTypes.EtherPreviousAddresses, + ClaimTypes.IsWeb3Account, + ClaimTypes.Role, + ClaimTypes.Username + }; + // Fields. private readonly List<UserClaim> _customClaims = new(); private List<string> _etherPreviousAddresses = new(); @@ -58,10 +67,10 @@ public virtual IEnumerable<UserClaim> DefaultClaims { var claims = new List<UserClaim> { - new UserClaim(UserClaimTypes.EtherAddress, EtherAddress), - new UserClaim(UserClaimTypes.EtherPreviousAddresses, JsonSerializer.Serialize(_etherPreviousAddresses)), - new UserClaim(UserClaimTypes.IsWeb3Account, (this is UserWeb3).ToString()), - new UserClaim(UserClaimTypes.Username, Username) + new UserClaim(ClaimTypes.EtherAddress, EtherAddress), + new UserClaim(ClaimTypes.EtherPreviousAddresses, JsonSerializer.Serialize(_etherPreviousAddresses)), + new UserClaim(ClaimTypes.IsWeb3Account, (this is UserWeb3).ToString()), + new UserClaim(ClaimTypes.Username, Username) }; foreach (var role in _roles) @@ -110,7 +119,7 @@ public virtual bool AddClaim(UserClaim claim) throw new ArgumentNullException(nameof(claim)); //keep default claims managed by model - if (UserClaimTypes.Names.Contains(claim.Type)) + if (DomainManagedClaimNames.Contains(claim.Type)) return false; //don't add duplicate claims diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml index 45d6510..cc0a60a 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml @@ -100,7 +100,7 @@ <td>@claim.Type</td> <td>@claim.Value</td> <td> - @if (!UserClaimTypes.Names.Contains(claim.Type)) + @if (!UserBase.DomainManagedClaimNames.Contains(claim.Type)) { <a asp-page="UserClaimsDelete" asp-route-claimType="@claim.Type" diff --git a/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs b/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs index 4e4ae3a..70b0941 100644 --- a/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs +++ b/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -using Etherna.RCL; +using Etherna.Authentication; using Etherna.RCL.Exceptions; using IdentityServer4; using IdentityServer4.Models; @@ -229,9 +229,9 @@ public IdServerConfig(IConfiguration configuration) Name = "ether_accounts", UserClaims = new List<string>() { - UserClaimTypes.EtherAddress, - UserClaimTypes.EtherPreviousAddresses, - UserClaimTypes.IsWeb3Account + ClaimTypes.EtherAddress, + ClaimTypes.EtherPreviousAddresses, + ClaimTypes.IsWeb3Account } }, new IdentityResource() @@ -240,7 +240,7 @@ public IdServerConfig(IConfiguration configuration) Name = "role", UserClaims = new List<string>() { - UserClaimTypes.Role + ClaimTypes.Role } } }; diff --git a/src/EthernaSSO/EthernaSSO.csproj b/src/EthernaSSO/EthernaSSO.csproj index cbd46e7..8fc7ece 100644 --- a/src/EthernaSSO/EthernaSSO.csproj +++ b/src/EthernaSSO/EthernaSSO.csproj @@ -20,27 +20,27 @@ </PropertyGroup> <ItemGroup> - <PackageReference Include="GitVersion.MsBuild" Version="5.7.0"> + <PackageReference Include="EthernaRCL" Version="0.1.0-alpha.12" /> + <PackageReference Include="GitVersion.MsBuild" Version="5.8.1"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> - <PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="5.0.11" /> - <PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="5.0.11" /> - <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.11" /> - <PackageReference Include="Microsoft.AspNetCore.Authentication.Twitter" Version="5.0.11" /> - <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.11" /> + <PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="5.0.12" /> + <PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="5.0.12" /> + <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.12" /> + <PackageReference Include="Microsoft.AspNetCore.Authentication.Twitter" Version="5.0.12" /> + <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.12" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="5.0.0" /> <PackageReference Include="Microsoft.TypeScript.MSBuild" Version="4.4.4"> <!--Installed only for hide warning--> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> - <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.11.1" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" /> <PackageReference Include="MongODM" Version="0.23.0-alpha.37" /> <PackageReference Include="MongODM.AspNetCore.UI" Version="0.23.0-alpha.37" /> <PackageReference Include="Serilog.AspNetCore" Version="4.1.0" /> <PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" /> - <PackageReference Include="Serilog.Exceptions" Version="7.1.0" /> + <PackageReference Include="Serilog.Exceptions" Version="8.0.0" /> <PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.4.1" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" /> </ItemGroup> From d1a472ed6e7885df806ecc567e8e5ad6251a89e9 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte <mirko@etherna.io> Date: Fri, 19 Nov 2021 19:08:06 +0100 Subject: [PATCH 4/8] Updated api version --- src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs | 2 +- .../Areas/Api/Controllers/ServiceInteractController.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs b/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs index d233eda..f0af50f 100644 --- a/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs +++ b/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs @@ -23,7 +23,7 @@ namespace Etherna.SSOServer.Areas.Api.Controllers { [ApiController] - [ApiVersion("0.2")] + [ApiVersion("0.3")] [Route("api/v{api-version:apiVersion}/[controller]")] public class IdentityController : Controller { diff --git a/src/EthernaSSO/Areas/Api/Controllers/ServiceInteractController.cs b/src/EthernaSSO/Areas/Api/Controllers/ServiceInteractController.cs index e12ebff..ae5ead3 100644 --- a/src/EthernaSSO/Areas/Api/Controllers/ServiceInteractController.cs +++ b/src/EthernaSSO/Areas/Api/Controllers/ServiceInteractController.cs @@ -24,7 +24,7 @@ namespace Etherna.SSOServer.Areas.Api.Controllers { [ApiController] - [ApiVersion("0.2")] + [ApiVersion("0.3")] [Route("api/v{api-version:apiVersion}/[controller]")] [Authorize(CommonConsts.ServiceInteractApiScopePolicy)] public class ServiceInteractController : ControllerBase From 6beae058d511c85e48ead8d639a2234da6446852 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte <mirko@etherna.io> Date: Fri, 19 Nov 2021 19:14:09 +0100 Subject: [PATCH 5/8] Added index --- src/EthernaSSO.Persistence/SsoDbContext.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/EthernaSSO.Persistence/SsoDbContext.cs b/src/EthernaSSO.Persistence/SsoDbContext.cs index df8262e..8f78f4d 100644 --- a/src/EthernaSSO.Persistence/SsoDbContext.cs +++ b/src/EthernaSSO.Persistence/SsoDbContext.cs @@ -82,6 +82,9 @@ public SsoDbContext( (Builders<UserBase>.IndexKeys.Ascending(u => u.EtherAddress), new CreateIndexOptions<UserBase> { Unique = true }), + (Builders<UserBase>.IndexKeys.Ascending(u => u.EtherPreviousAddresses), + new CreateIndexOptions<UserBase> { Unique = true }), + (Builders<UserBase>.IndexKeys.Descending(u => u.LastLoginDateTime), new CreateIndexOptions<UserBase> { Sparse = true }), From bfa07a6ed886f57d24308e2757b2d826d97ad6a9 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte <mirko@etherna.io> Date: Fri, 19 Nov 2021 20:09:07 +0100 Subject: [PATCH 6/8] Fixed issue with password login for Web3 users --- src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs index 6c79389..34b9e1b 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs @@ -114,7 +114,9 @@ await userManager.FindByEmailAsync(Input.UsernameOrEmail) : } //validate login - var result = await signInManager.PasswordSignInAsync(user, Input.Password, true, lockoutOnFailure: true); + var result = user is UserWeb2 ? //if user is not UserWeb2, fail password login + await signInManager.PasswordSignInAsync(user, Input.Password, true, lockoutOnFailure: true) : + Microsoft.AspNetCore.Identity.SignInResult.Failed; if (result.Succeeded) { From 6dbdba118a6e1143a50a4fac553dc329bbaaed84 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte <mirko@etherna.io> Date: Fri, 19 Nov 2021 21:12:57 +0100 Subject: [PATCH 7/8] Added symbol image in layout --- src/EthernaSSO/Pages/Shared/_Layout.cshtml | 4 +++- .../images/etherna-header-symbol-colors.png | Bin 0 -> 1319 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 src/EthernaSSO/wwwroot/images/etherna-header-symbol-colors.png diff --git a/src/EthernaSSO/Pages/Shared/_Layout.cshtml b/src/EthernaSSO/Pages/Shared/_Layout.cshtml index 7c4be8c..aac4186 100644 --- a/src/EthernaSSO/Pages/Shared/_Layout.cshtml +++ b/src/EthernaSSO/Pages/Shared/_Layout.cshtml @@ -39,7 +39,9 @@ <header> <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3"> <div class="container"> - <a class="navbar-brand" asp-area="" asp-page="/Index">Etherna SSO Server</a> + <a class="navbar-brand" asp-area="" asp-page="/Index"> + <img src="/images/etherna-header-symbol-colors.png" style="padding-right:4px" /> Etherna SSO Server + </a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-menu" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> diff --git a/src/EthernaSSO/wwwroot/images/etherna-header-symbol-colors.png b/src/EthernaSSO/wwwroot/images/etherna-header-symbol-colors.png new file mode 100644 index 0000000000000000000000000000000000000000..0989b91f311b3639335f4d2fd1efaaf6b6582041 GIT binary patch literal 1319 zcmeAS@N?(olHy`uVBq!ia0vp^dO$46!3-oTCEf@yFfgtS@Ck7Ra;4(@%?>U$KeALN zIRwZZR6wCDnSqfJtCK8_uP{5jgprvEQx@nK^P@}64lZI~LeUEnhe#b-jMZ3#MjVy` z?E<QS+X%L0F(WH0Tm;TAKe|kRc@Gj7=$^&Q+?-5oP{km<hZZxjvjNor%>*)_A{=by z$Cm@W#>~l~Ik|=jW;jsIyTpZGfvS5;g8YKPCNt(ej1|vuN@PlS{Wwr??rz_^NpGIa z+VB18ZGgbv13n)=?EC6JbEU<jxP1PGA2Uwsv&6mnT)@K7=%*8$7+=^l{gi>--Gs!L zqULF~UtY&2wf>Bp^2hMwtGMLoVph(!FTYQJN`LYFWnAjZUAz)!eqGaCnr8GdKQk?2 z(x-wnzR#&oi&6~JQrQyCSwo9=10BSeU*s3Ucz#j&ECvRqeoq(25DP)pgPqQkSsB<b zOn)sLa;IIxh<`%mB3{9bX6+#>4s(^r20dbQYP*%Yye#AU-`n@^R5NI7`}UQY;l{Sw z;|Kg07&KO;vXwJ3w3WS=yk`we#sMMOp5NXwF*yG&e(>PM4G%`J$fSeL3=;R_&p%Xl zH#Q4kU~t_!O~$%TNpcQ@LEWZ#bE+0jyt0awL1c2OQB~EeGbNX1F!an{t8V-}u4d)T zDOZ^oCZ}Gqx^GsUXeBv^`EmN|lV^55kE?rnH7aPfKEoID$=8mWrRn>s_gebIu2Y}O z8oh4Mw_nm*m(0;;=svq->lL=m;mao<+pseG>yph5OMgF$&fg#GeabUo<IFA7ZZ+I| zecJQ>?)P^+th85@<bTV%yU%#ql)oEp`9x)xGp@<kQGb8m+b*Kft9<kI-KD?JMO=!} zy;DD-XWdrD4f{SCcv@*MxODf;*DCqCFNHH}isF?|E}zfXa9&>ZXA;AT67%Z4aqmyB z-{*Jf!`bF1FQTLwUQ6>&Uh-KNEOqa(`u(XVn}4q{n|$q7EKusS=j*sn8LV1&&&Iv~ zIQf0HXYtkpNyeGFTNz(ppFVk?eBGXjC1C+C@4d0D{T8gN`MdFG+NG$h=9{ZednVsF zfBltbdZX9(>C4a8tyO)h;!tm#8Jm;*?Gi9N4_|p&bt!Vg(^L8T{|Bl)tzk^q<P-J$ zcACBqFw_j{cFsF9r~2Rd{r~hP->PABFpN}NynOjNpd9CcA2+Lvir>wzKfPp)7$`1J zZhWjh=^!V=WA)c3SN@msTpPu}aI{9()2M<2BxYIjB;yzx7em9MDDO@A;tUeE<}<Uq zA9n+mbX{39fytm@;oa)C?|mY`q>}SCnuTFQ?(e?FxeR~!%XjR(n<*c-3zTs@UHx3v IIVCg!0QmRTwg3PC literal 0 HcmV?d00001 From 4e29c4bc9ea6bf6b3ef8755920e74cebc7f281a4 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte <mirko@etherna.io> Date: Fri, 19 Nov 2021 21:31:13 +0100 Subject: [PATCH 8/8] Added license headers --- .../Settings/DbSeedSettings.cs | 16 +++++++++++++++- src/EthernaSSO/Extensions/LoggerExtensions.cs | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/EthernaSSO.Persistence/Settings/DbSeedSettings.cs b/src/EthernaSSO.Persistence/Settings/DbSeedSettings.cs index 350ca51..05b979d 100644 --- a/src/EthernaSSO.Persistence/Settings/DbSeedSettings.cs +++ b/src/EthernaSSO.Persistence/Settings/DbSeedSettings.cs @@ -1,4 +1,18 @@ -namespace Etherna.SSOServer.Persistence.Settings +// Copyright 2021-present Etherna Sagl +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace Etherna.SSOServer.Persistence.Settings { public class DbSeedSettings { diff --git a/src/EthernaSSO/Extensions/LoggerExtensions.cs b/src/EthernaSSO/Extensions/LoggerExtensions.cs index 4732d88..4b620d1 100644 --- a/src/EthernaSSO/Extensions/LoggerExtensions.cs +++ b/src/EthernaSSO/Extensions/LoggerExtensions.cs @@ -1,4 +1,18 @@ -using Microsoft.Extensions.Logging; +// Copyright 2021-present Etherna Sagl +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using Microsoft.Extensions.Logging; using System; using System.Collections.Generic;