From 49e3d29fd4dbd642f334c44736bee9b83883db95 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 15 Apr 2024 13:52:59 +0200 Subject: [PATCH] =?UTF-8?q?Implementierung=20von=20JWTService=20und=20IJWT?= =?UTF-8?q?Service=20f=C3=BCr=20JWT-Operationen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hinzugefügt wurden die JWTService-Klasse und das IJWTService-Interface zur Unterstützung der Generierung und Validierung von JWTs basierend auf Anspruchstypen. Enthält Methoden zum Erstellen von Sicherheitsschlüsseln, Generieren von Tokens und Lesen von Tokens mit ausführlicher Dokumentation. --- .../DesignTimeBuild/.dtbcache.v2 | Bin 294283 -> 294283 bytes ...07d9d097-db53-4be1-b059-454bd53ca655.vsidx | Bin 0 -> 43885 bytes ...4a5fe30-37cb-49f0-99fe-9330c9246ba6.vsidx} | Bin 41431 -> 41431 bytes ...645d985b-6b29-4701-9a8e-6b55fd86bdbe.vsidx | Bin 41404 -> 0 bytes ...8550c340-92ec-4c28-aad2-9976df063395.vsidx | Bin 0 -> 79046 bytes ...9698441e-9a42-40fe-96e7-9d4b9a949741.vsidx | Bin 78587 -> 0 bytes ...c04a7127-2a42-4549-9194-660339e9f4dd.vsidx | Bin 40761 -> 0 bytes .vs/DigitalData.Core/v17/.futdcache.v2 | Bin 6551 -> 6551 bytes .vs/DigitalData.Core/v17/.suo | Bin 259072 -> 259072 bytes .../digitaldata.core.metadata.v6.1 | Bin 446902 -> 440912 bytes .../digitaldata.core.projects.v6.1 | Bin 1584058 -> 2148082 bytes .../net7.0/DigitalData.Core.API.assets.cache | Bin 17168 -> 20254 bytes ...ta.Core.API.csproj.AssemblyReference.cache | Bin 185767 -> 188944 bytes ...italData.Core.API.csproj.nuget.dgspec.json | 4 + DigitalData.Core.API/obj/project.assets.json | 196 +++++++++- DigitalData.Core.API/obj/project.nuget.cache | 7 +- DigitalData.Core.Application/DIExtensions.cs | 6 + .../DigitalData.Core.Application.csproj | 2 + DigitalData.Core.Application/JWTService.cs | 63 ++++ .../DigitalData.Core.Application.assets.cache | Bin 18798 -> 23517 bytes ...Application.csproj.AssemblyReference.cache | Bin 109324 -> 112501 bytes ....Core.Application.csproj.nuget.dgspec.json | 12 + .../obj/project.assets.json | 344 +++++++++++++++++- .../obj/project.nuget.cache | 9 +- .../Application/IJWTService.cs | 41 +++ .../DigitalData.Core.Contracts.csproj | 1 + .../DigitalData.Core.Contracts.assets.cache | Bin 16405 -> 19641 bytes ...e.Contracts.csproj.AssemblyReference.cache | Bin 104803 -> 107980 bytes ...e.Contracts.csproj.CoreCompileInputs.cache | 2 +- ...ta.Core.Contracts.csproj.nuget.dgspec.json | 4 + .../obj/project.assets.json | 200 +++++++++- .../obj/project.nuget.cache | 7 +- ...italData.Core.CultureServices.assets.cache | Bin 17303 -> 20389 bytes ...ureServices.csproj.AssemblyReference.cache | Bin 108164 -> 111341 bytes ...e.CultureServices.csproj.nuget.dgspec.json | 4 + .../obj/project.assets.json | 196 +++++++++- .../obj/project.nuget.cache | 7 +- ...gitalData.Core.Infrastructure.assets.cache | Bin 18716 -> 21802 bytes ...rastructure.csproj.AssemblyReference.cache | Bin 108112 -> 111289 bytes ...re.Infrastructure.csproj.nuget.dgspec.json | 4 + .../obj/project.assets.json | 196 +++++++++- .../obj/project.nuget.cache | 7 +- 42 files changed, 1300 insertions(+), 12 deletions(-) create mode 100644 .vs/DigitalData.Core/FileContentIndex/07d9d097-db53-4be1-b059-454bd53ca655.vsidx rename .vs/DigitalData.Core/FileContentIndex/{2b147645-d608-4cfd-923a-96be42fff33d.vsidx => 34a5fe30-37cb-49f0-99fe-9330c9246ba6.vsidx} (99%) delete mode 100644 .vs/DigitalData.Core/FileContentIndex/645d985b-6b29-4701-9a8e-6b55fd86bdbe.vsidx create mode 100644 .vs/DigitalData.Core/FileContentIndex/8550c340-92ec-4c28-aad2-9976df063395.vsidx delete mode 100644 .vs/DigitalData.Core/FileContentIndex/9698441e-9a42-40fe-96e7-9d4b9a949741.vsidx delete mode 100644 .vs/DigitalData.Core/FileContentIndex/c04a7127-2a42-4549-9194-660339e9f4dd.vsidx create mode 100644 DigitalData.Core.Application/JWTService.cs create mode 100644 DigitalData.Core.Contracts/Application/IJWTService.cs diff --git a/.vs/DigitalData.Core/DesignTimeBuild/.dtbcache.v2 b/.vs/DigitalData.Core/DesignTimeBuild/.dtbcache.v2 index f46574a335cda78fc3e8c89c45fef23cd08b9e93..03c0db384a3aa8895d04018620e9924977f9429e 100644 GIT binary patch delta 52412 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 delta 52552 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 Hja>bIhp1^G diff --git a/.vs/DigitalData.Core/FileContentIndex/07d9d097-db53-4be1-b059-454bd53ca655.vsidx b/.vs/DigitalData.Core/FileContentIndex/07d9d097-db53-4be1-b059-454bd53ca655.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..827e0a4d022634be0765b43238cd60ed2000ef73 GIT binary patch literal 43885 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 X1=^mwz%AbzFA8r+7JTz(FZh20Uvmn5 literal 0 HcmV?d00001 diff --git a/.vs/DigitalData.Core/FileContentIndex/2b147645-d608-4cfd-923a-96be42fff33d.vsidx b/.vs/DigitalData.Core/FileContentIndex/34a5fe30-37cb-49f0-99fe-9330c9246ba6.vsidx similarity index 99% rename from .vs/DigitalData.Core/FileContentIndex/2b147645-d608-4cfd-923a-96be42fff33d.vsidx rename to .vs/DigitalData.Core/FileContentIndex/34a5fe30-37cb-49f0-99fe-9330c9246ba6.vsidx index ad8c66f5c359fa7266fd6e7dde8066ab25fa4800..bf1a5ca93b83cdc0d039b068cc7534aa2039c041 100644 GIT binary patch delta 66 zcmcb9nCbdqrVXCcxi}dZ7+AT0guv$D>BpGB{7?{IaI^BPZboGOj@j0Xlg~|&+{`og GGz$PIo)Fyt delta 73 zcmcb9nCbdqrVXCcxwse@7z8+h1ncJD>BpGBd_fRDbhGlTZboGOj@i~oe22|{=iFie E0Cpu1JOBUy diff --git a/.vs/DigitalData.Core/FileContentIndex/645d985b-6b29-4701-9a8e-6b55fd86bdbe.vsidx b/.vs/DigitalData.Core/FileContentIndex/645d985b-6b29-4701-9a8e-6b55fd86bdbe.vsidx deleted file mode 100644 index d4da44283c0fb3fd26a011abbe0884de6f053915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41404 zcmeIb1)LF;yXV9TQ3^2;_eN1XSCpkFC!#zS_Y1KjL{*7O zi}6gHJtNMZ6K5X~4^?8?iJ25LBW6iRC8QP73E2r5gp5M=VlKtpi+K>W6!lWnPSjr1 zK`1HIT&P+oC6pG*2<3$~LOY=k#UhBti=`GzBbHQ1!YE;kFiw~#R$5potP<9XR*F`O z)`->%=S8PQXGIr8&?0mqN)c-jwTNECDB^*LgGfT8S|lZs7HKJx5y^|xi4;VNBK4y0 zL?6Y06bD)y7;)gm;Kflbjw^9I5ywa3ni1DW_X=^ZkoSuEUZL+5_FmE6E8M*z-5cxY z7XChEihF!<&q*OfA$AHO3sDzB6=GQkQwUp#wh*omT_Iv2QX%?6928B6eQ zn!@^`l|`!yCkv+wKQDY&bh7A7(S;)DB6LNRMbt&~MNCEPi&PfrVv%H#>LRHk=^`zQ zWQx=kDHJIdiF}5l?}|Pa`?5G%6eqSgX^WFsob;s_l|`f!xD#=V%5qXxvaA+m)s&Sf ztG29MS%tES<;AL$btzN1Fl86YqciuH<^ALGeiKKk-Vvjnb7yv>-I>dsx!$S$4k;I5 zr;$6+?8I&->7D(y5@jVORduyGBdRm+QJtx(Gt=szQTCF@G6N_Lfu zl}wfFtGTS^rkeLvEvtH2)wZgARfnpMRoz!gR!UdORLWOcRl2RTtMp;Dkk!Ie3tufl zwdkuxSBgfaXda5kFSl#*T=JJELUSykChth!?9_{ zCXFw}v6W-%$4-x3Klc5&ljAOogC0lv*N>ANr(t|lk5BCQS{Pr8#o&Wz5`aaNo;yL0B;*)tEFJ2M@hIi8#qC(3hTbnXoOJ9qA^ICu8kxd#NfoO|Gb2SoXR7(Gy($&xrP%JXL*Jb(Ve`STB+ zzc4xfpg14X1yNooM;A)8;KG@QE?g)t;CS%DgXM+ioxAWna$G)GP98iTAKcx4sG>%R z=bd}tdFRjXj>o$f&g@=z-frFRTC*GcZq&Oe?DlbYUrv^3TFj?KnvV5!Y^Gy39sB9H zn~uYD9H-+not4wsY%0}s?x%G>Rc5LWr$$cAd}`{cQB$L*rkxr$HF0Xvbfu@(Os$_f z`qxkWeCqpYC#RjBc3~RyG}6B`jr}yurb$jyJxyww^fZ}i^3xQiDNYkvhiM)U436!psUgE81Dn&5AH9;;cxsqMw!3tfDVn%x0q*9n#G-{X3kQ z#mu;wH8ZDYX?d|~E>`AZ)m^MEU%a>{#V++avYf~fJzZ0J>gcJEXV1%BD`$n2wUkcI zrJNf%w{q^~Jj%M3wU+f#)<)JVStq3SF+KvF|u*8iPALESZSOzL7F62Qm(YLg|wx#BWWvXC(_QOy(q1eb}nr# zt&)~}meLw&t+cJQUfLjSlr~A*OFKw=BHK!~GucYnYS|juTG~>{0m7SDbEjuMUExV=cjO@JZI@tx;McMV}J%W^>mO;s& zWoTqDGOT21WpFYC83q|^8I_D$#-)r##+8hnj8VoU;~=U3Pt^ZNnQED|ObeNoG8vg# znY>I!q%ji+XA5 zWm_*py^Qs;ua_sd$BnMdqBgcRt~On5Vr^2rs&MbGVr^w@b!|;;`#dO9wYRlzYwv3B zYv0vA)V{BSu7jzAuLG3_bZD`wlc-Zsr?O6?I#qR=)M-Y~Q=R5@s_UfdWa{MW6zUY~ z)YoaK(^1{qx({_9>psQ_6IIUe1n)FzXJ1u9RZ~38Rjn$gDtg(C)pVxtN~O1Fpm!g= zjMQwTW|f-F=uxNVkRBd-FzC)!GAY?BIjDK9=26WDRiB}s7H@^x(gmWHDYc_ig_ne? z6%MVGQEH`>RVpYIl}Z@T(wIw^==SwQ={>wr^c=o=p|n-nDcvc3S?Qp3RGLEel|IB< zXJJ$m)Y9YKV`^ozG7DuIWt=iWnW#)sE1_1ETJ5QoR+j!5We3%2)f(lba-H&X<+bvy z@=kdYlkx{DXcfGQwTfEBq~f5GS1G8zR=rg{6=Ht9Idx*xb)iM6#fV1yTI^~u)8bf* z>-s(#-U(gYtBX<>V_lrph1A6y_c8{WS{Dl%L28T|X{6ZEppb@xH0;wwuZtsHmbx72 zveM;5??g?bu4+neQ(evR5MZ37b+w?8kgiM~^w3y`#y6hEF*J6e@rtf`UG3B8L_c_5 zQ|F4VR8gm>b6=>ZUURocom{VTm!|jbr|w73w4Pagv7$ZzzXsmF^j3BBvZFT|y|A?G z^<3z=)N`ZfR33CKb*MNubOkH|x7r}d%MSM*{}FQi^*y)b%V^}_2#(2HI-S~o^FUK^#& zQX8jD&?f1X&?~L2&~~J4rLDx>WJ$Bo)@WNwJ|(s5VEiH;I)!Kig~I(i*D9ixs($6m)H9k1$mUDHG-RXRPS z(?qAKPLjF{yf~BAX`xf2(^4m+Q>#;_Q_v~ulyvHK+Slnor$MJ<-ABDI^}g2oM(=xl zQ0RjleL#gHnx4`uN*|Uqgx7~sAJ+IK4~;(T^kLG2&_khzQV%0N?C7D=!>%4Cnnn$S z(nF_*s0VV}*Tb>CV)W4&eRQmkOMP7FA-h>IdEihfb-FQ#d+Cl<0^NVAZZy5xoI z>1Uv;uvqBD!YmeXVQSoZrdb%fFm7SO!W=HF%r_&=P9_U~apA+l_cSSA1c}=-m__i5 zs27PQE_TtoMIRP}X~d`zyG>CvMcEX#DO^*;rZ{QJvMFU#iKd!1m2RpfBPG{-q|!Cg>*kCWreOMmoyg)Y8OjFV?Y8qo2XPQVqgINy7M6=Sy3S)PSRmM`;7;BC7#zte4 zvAt=fX|-vMX{~8HtQgTshAWL5VM7?nj>8$CJ>3S1{355w$jQ6QerWbSYCPWjGi6zb2O`I5-7SMo;y6dR% zOUBm3Xd*fEChnVfVB(R9Cnl99jZB)*yn#k%^n$0~+$3X?HOZS4P3lb=%)T`H+8h?< ziZoZWxneGrlS@@|N$y|L^(Eh5ivChem-@I8qm`JgigH!BRS{Oj$*P*Js)NOj5qN;fMVS9(~PmM+AKmf7ND6=$oMR(-Idv|?n%t}RMi z%x$4;v9g7=MQe-B7Qq(L7QHQwX!*vL6FX9NC)!HbYHBNGtA(Z2jj6HIWG_}UCByJj zHZ-5H(ped-j8-O^7+`udr}IFAQLFC3A|EY2VU$K49sTBsMku${zYXyBbYfEcK)>hU|teskW5py*=M>lI5Yn`>;+RoZ&?O@x%I-17Os^kchIX}0) zrWcR(⁣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 diff --git a/.vs/DigitalData.Core/FileContentIndex/8550c340-92ec-4c28-aad2-9976df063395.vsidx b/.vs/DigitalData.Core/FileContentIndex/8550c340-92ec-4c28-aad2-9976df063395.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..2210b4b1df3ea4fdc2148fd78342b61607105c32 GIT binary patch literal 79046 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 BIN1OI literal 0 HcmV?d00001 diff --git a/.vs/DigitalData.Core/FileContentIndex/9698441e-9a42-40fe-96e7-9d4b9a949741.vsidx b/.vs/DigitalData.Core/FileContentIndex/9698441e-9a42-40fe-96e7-9d4b9a949741.vsidx deleted file mode 100644 index b668177837ebb3ba9210fefa92c23db8b2dd76db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78587 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 delta 9996 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 diff --git a/.vs/ProjectEvaluation/digitaldata.core.metadata.v6.1 b/.vs/ProjectEvaluation/digitaldata.core.metadata.v6.1 index 4bc591b79ece5f6ad0efe92b5b5f0abe3dc0b801..10af6e563ddf12ff8664c174ee42e9925a4d63a5 100644 GIT binary patch delta 1101 zcmZ`$YfPI}81DJn_keT^_y!%f(85IBtfpMHahb~6K>`|(0=gi~Rw!8`&{A%R*~!Sj6ghIE<-zRqH2FF_#SIQ$ zb6ddI*yst!s>9RV=Jho{Th|&BYACd4WfW#-WUKO^zT$0dcQ;xp+S=>AK1-%8Gjo%K z6LORe-Iz7J5I zkfPxRmactN6pyJc`kS@NG9Ru9ibhlqZDo5OO=ZMAA6Z2DVVYye8X>7;7X`hvK|!#S zvPAR|+Gs%T2h!P%TP#x8-={wasl##v!QvDwYxJ=&_EVysHA$Ir9Oo=qn2wUBN7(>5 zMb&XSLfY6dC%zt}aZI0~uF#N5VcW+d@o6P9;kjY@ON@@tcZ|6thg0l3NA--=$~p&za(bita>b5?!`@4&4q%!zkLX@%9nJx*099iwixUtJOP0+IZ<%|S_ zC#Xi;{fY*DR?P`1y3peC%RIGf>_#@n5|x?NU9Pi&vJi)`qGx9HNSef&urRS zIZ-X7-%AR9S)_DfyUAZr44p;W+K z;g5g_O64>qsO5{3GcoqTOEuDmETSB>$(hU<$y-y_*m*(L{LqIzGke~1&hz|#&;NP4 z9tNB}9>_K3QeMVc85gTm#m~@%OD5agP5m$5u%>( z(bzv#8vOiXdHKSn$M4-q}O_c41tIZ(1)D=TZ((M`st!+D3tpy?LZ>zO_A z(EXgvJvu}`<(0TpM}g>lhvvDjWEinJhrD3RCofj+(G?2kB+1Lb*n(-QF5O-=a5@|z z5}~k>n-Cf!Sq*GU(!;;HMRb=MeLv!}$ijAe)K9_FT3VqrXHh$2W$N|}Gz)FoWNZB%2Ona31-)gZ)hS@Fq8)`3?^f6wgjeJUydZw;pL*S-P@t z6D4Uy&j0r=+^sai6|uZeq&1J0umc`_k@|s>>5!I3>A1CuS#cwWC8GH^E?ZJ^ax*e* zncFj2vhSm!lfIa>fmR@XD+MZ(^2x5n?tEH|quDfAb%D1wB{L^Q$$g84FqW-mm!_gJ z7+Czd2YrC{_CcvxB-vFa0)Bv~PuDgY$13`9t^1S5J@?6*?xp_W?&z#Rc(R?m@%J$r zt0Zryi;NWrJI?U{9EFkfWI<~y*=yZg@7a&=dPY+TEu?e~Ya_2Puyn8fYAte^{IEEm z0{R7Y7109;qZ%j{z4y5Ve@vFl&r@;W_d`4pY1I^t<}S7vUwy+&N=zv|AUI;BRr-Ot z=@528c(p4r7{%pO%eH}C(p(diT&wT={Qb0eYS2mIrooDz4^9z0xcJld5C_GRjTCcu}Y-moB!mzbPoVL`` zPFCV^STw3*B_lfPC2=0ds=c3t9W7)+X#=fii`0#o@OFtt+u0)Kz(P+i2MFFF3Aay) zHUQg9c33VkGrqpaB9Yoi*U-I7-D~1zRgXU`$G8`clv65>e9ufce1!5?Zhu7+#!I8I zq?rQU&V+a+rHLvSLf-4YJqEoo(vTNRy8}H(=^l<(iTXu%@L|xo_#oWt5CP^FQ?k1~ zfpC5`^Tvc0I*U{FeU=<=e1WxcvxVmK|G?TRVD)u`ngn*V(s&d#4Ukl#Bw>(N%H`}0 z6@VSzO_J0(@C?8fF}jnKH6KvN&(_Gh7BRgw8ol`44)<&DU5?T~*@j;~lIxV-eR43z zNTWOom$%5n(Ed~#f#G{)6Kp0q2KTGwWZXL_r@~^BXWu43)zNHd;-b=$!Vx%Noy-q&L0=Jy%Z*}Y++LxFl z);XJ(oo?$-Oc9Cg=Xm)?@!-r#c_~7ADGb?FawDp{#WU42Xat;g3PSZi8n(Y`wuatF2JtyZg!ohP?jDRz8xwUxmkiHCL zvDP#gUqrLx6L|tx4xNx!Fmx&+u;4HSofTSdTy<%K6#1}hWcbM_sD;j<3AneAjD2eV E1(~mq^Z)<= diff --git a/.vs/ProjectEvaluation/digitaldata.core.projects.v6.1 b/.vs/ProjectEvaluation/digitaldata.core.projects.v6.1 index cd7f51028f2cbdb7d1b841bee7e129b40075d18a..c30b50ee8f47ae18e4a01b73211c829b1f2aba23 100644 GIT binary patch delta 426 zcmdmWJ>gStGh;&wV+&IYa|=rgYYSTodkaSkXA4&gcMDGoZwp@we~UniV2e+S40+St7UltmfRx%*HRu`0*kC_JhBfY+1Gk%opCXn6YC!V>s7mziE?1 zeog*xgOyQWI^!e}|LF-;yi2!F_{{fl@pgx|0vDO4KlsC@#U=>SFE|~j{~71Uhe9Bp zkm&Zp+5GOTo8!2YO1GV5k>q5|*u1XelRu*{$fS_X3vR4r+%8bX8{UXpyA?BWu6eTz zw;4^%jB(rD8<^b#7)8J~Z|}Rn>|MLvV*wA)=b|9Dih_LZ$+&&(M6m}<+v~mvcr@T} e?4sJ~Kz+NmANaxan+codfB%_)nlUZ>R09CbC9Q4% delta 58 zcmV~$$q_>U006*2;)+`wJ!ncPX6#otUK-Jd3hX||9$fdj34|gaU$I0gllv)@Dz!$d M)B78YrgOfQ7g{P4761SM diff --git a/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.assets.cache b/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.assets.cache index fc03d0c83767e3bc1838331be92002288fa40a41..491e8a03a96ccc6721f16314acde1d2c23e6613b 100644 GIT binary patch literal 20254 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 NnOvCSvP{l%{U2YVSgQa4 delta 2239 zcmZ`)>q}E%825N-JDp6YTR7d#+uGJv^R}G1=2BBL(=L`}WmhY6T?oqPLLZ_FQf&Q{ z2tw>r5J<#6)R)3Ppf5r}K?HrSpdx}Gs^^_&hvV@*FZ?*1=kj}=_j#Y^eW#{`#0??g z$-YvX^gS2Mn5zoom0-Zfitbcgc#?;6{x~KKgwcAQVbtNqnOcFBD(Clsfz4ajEuAz zXM%_DZ>bHR^6!~EvNn@}moo5TW_gdrr_rpU|6$Apsu8SIn@5M&iITg9E>dUo0qXCk9KT zRJ&yxEAI$QWyNT-PY7jrZ@((oG2j>zl|n5jP{0{Ov)w4Ts4y4t%_)gWai}Om=CSxF zs}x&qLi%Lz*EK0BRg$Z-p+se>E>xyK>uo9nb&VLex=oH*LL^yBXe5LQO@wvWV!4F3 zl}@g<8TRb^n69#MwGnE<$6U>NoXxq76>giA7c)w6r;x1f!2a9;VmIQ4+sx%@!5P0F zEx8gBc?RU?)na@lKbIKg(nwa@(|o-iKHmm~@2RJs8?hC=`4!1N3;Mi+T!S{E81q_b z3+izyrGMU5+i3{lT{L_;)*I>2Pt`0TEnAC*lVrRY9c*apkBp9H9F>+NhxF{~ICd^* z*{@Pq30*-RYH%#BeX7jek_fdsy~XpY%yOBRBpoGoz#_jF|?rmv_3y zIiB+somnp8Wz*@1@-~nq>(vtk9@7Yi>74wYS}6x7h6+~T!#ZQTw);=&FphE4RjAqmMO&I$m(s3zqJjN)=4D{k;Lr#_Hc6E#@(-pFrSSB0u zN!RDXeTwRqtm6E<^3PAIS zjDW)yRV!McO`h`u7G?o>+(~qxAzL;%(PWnis;h7~N=G3qwWt`FVr;>Yg9uH7DFi|@ zCqF$sGcTR!gr?^M(SQiS%YuiYAt;Z_tv>nuU|Z0_Zu;LTOgz{V9MoCF2OG#)(>Dq- z>3|cQeiCk{fL($sz$RV7pZG{kb?C_r5m<7#TnN&_lUIx$R{E#mVdaFH&>(IiKBzzz z0F%~Ey+nLY$ScMbM$@5*N~s>3JM^;3OE6PYaAk2xYObCqa+#$E4IHoX5=3e`Csz+k nO$78XvU8voU(nQ~(); return service; } + + public static IServiceCollection AddJWTService(this IServiceCollection services, Func tokenDescriptorFactory) + { + return services.AddScoped, JWTService>(provider => new (tokenDescriptorFactory)); + } } } \ No newline at end of file diff --git a/DigitalData.Core.Application/DigitalData.Core.Application.csproj b/DigitalData.Core.Application/DigitalData.Core.Application.csproj index 050150f..e6231f6 100644 --- a/DigitalData.Core.Application/DigitalData.Core.Application.csproj +++ b/DigitalData.Core.Application/DigitalData.Core.Application.csproj @@ -12,6 +12,8 @@ + + diff --git a/DigitalData.Core.Application/JWTService.cs b/DigitalData.Core.Application/JWTService.cs new file mode 100644 index 0000000..20854e3 --- /dev/null +++ b/DigitalData.Core.Application/JWTService.cs @@ -0,0 +1,63 @@ +using Microsoft.IdentityModel.Tokens; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Cryptography; + +namespace DigitalData.Core.Application +{ + /// + /// Implements the interface to manage JWT operations for claims of type . + /// + public class JWTService : IJWTService + { + private readonly Func _factory; + + /// + /// Initializes a new instance of the class. + /// + /// A factory function to produce based on the claim value. + public JWTService(Func tokenDescriptorFactory) + { + _factory = tokenDescriptorFactory; + } + + /// + /// Generates a symmetric security key with the specified byte size. + /// + /// The size of the security key in bytes. Default is 32 bytes. + /// A new instance of . + public static SymmetricSecurityKey GenerateSecurityKey(int byteSize = 32) + { + using var rng = RandomNumberGenerator.Create(); + var randomBytes = new byte[byteSize]; + rng.GetBytes(randomBytes); + var securityKey = new SymmetricSecurityKey(randomBytes); + + return securityKey; + } + + /// + /// Generates a JWT for the specified claim value. + /// + /// The claim value to encode in the JWT. + /// A JWT as a string. + public string GenerateToken(TClaimValue claimValue) + { + var tokenDescriptor = _factory(claimValue); + + var tokenHandler = new JwtSecurityTokenHandler(); + var token = tokenHandler.CreateToken(tokenDescriptor); + return tokenHandler.WriteToken(token); + } + + /// + /// Reads and validates a security token from a string representation. + /// + /// The JWT to read. + /// A if the token is valid; otherwise, null. + public JwtSecurityToken? ReadSecurityToken(string token) + { + var tokenHandler = new JwtSecurityTokenHandler(); + return tokenHandler.CanReadToken(token) ? tokenHandler.ReadToken(token) as JwtSecurityToken : null; + } + } +} \ No newline at end of file diff --git a/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.assets.cache b/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.assets.cache index 9c283f047bc31c21812af94ebe404649596188ee..3de3b06007d24329c8377e90de955ffe685c3cec 100644 GIT binary patch literal 23517 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 delta 17 YcmezRj;-e!8#5c@o<`=a%#56?0YH)l2><{9 diff --git a/DigitalData.Core.Application/obj/DigitalData.Core.Application.csproj.nuget.dgspec.json b/DigitalData.Core.Application/obj/DigitalData.Core.Application.csproj.nuget.dgspec.json index 7424b71..394f504 100644 --- a/DigitalData.Core.Application/obj/DigitalData.Core.Application.csproj.nuget.dgspec.json +++ b/DigitalData.Core.Application/obj/DigitalData.Core.Application.csproj.nuget.dgspec.json @@ -74,6 +74,14 @@ "System.DirectoryServices.AccountManagement": { "target": "Package", "version": "[7.0.1, )" + }, + "System.IdentityModel.Tokens.Jwt": { + "target": "Package", + "version": "[7.5.1, )" + }, + "System.Security.Cryptography.Cng": { + "target": "Package", + "version": "[5.0.0, )" } }, "imports": [ @@ -158,6 +166,10 @@ "System.DirectoryServices.AccountManagement": { "target": "Package", "version": "[7.0.1, )" + }, + "System.IdentityModel.Tokens.Jwt": { + "target": "Package", + "version": "[7.5.1, )" } }, "imports": [ diff --git a/DigitalData.Core.Application/obj/project.assets.json b/DigitalData.Core.Application/obj/project.assets.json index b6cfce9..bb4a4d6 100644 --- a/DigitalData.Core.Application/obj/project.assets.json +++ b/DigitalData.Core.Application/obj/project.assets.json @@ -227,6 +227,67 @@ "buildTransitive/net6.0/_._": {} } }, + "Microsoft.IdentityModel.Abstractions/7.5.1": { + "type": "package", + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Logging/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Tokens/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + } + }, "Microsoft.Win32.SystemEvents/7.0.0": { "type": "package", "compile": { @@ -403,6 +464,58 @@ } } }, + "System.Formats.Asn1/5.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Formats.Asn1.dll": { + "related": ".xml" + } + } + }, + "System.IdentityModel.Tokens.Jwt/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "7.5.1", + "Microsoft.IdentityModel.Tokens": "7.5.1" + }, + "compile": { + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + } + }, + "System.Security.Cryptography.Cng/5.0.0": { + "type": "package", + "dependencies": { + "System.Formats.Asn1": "5.0.0" + }, + "compile": { + "ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, "System.Security.Cryptography.ProtectedData/7.0.0": { "type": "package", "compile": { @@ -473,7 +586,8 @@ "Microsoft.Extensions.Caching.Memory": "7.0.0", "Microsoft.Extensions.Configuration.Binder": "7.0.4", "System.DirectoryServices": "7.0.1", - "System.DirectoryServices.AccountManagement": "7.0.1" + "System.DirectoryServices.AccountManagement": "7.0.1", + "System.IdentityModel.Tokens.Jwt": "7.5.1" }, "compile": { "bin/placeholder/DigitalData.Core.Contracts.dll": {} @@ -848,6 +962,98 @@ "useSharedDesignerContext.txt" ] }, + "Microsoft.IdentityModel.Abstractions/7.5.1": { + "sha512": "PT16ZFbPIiMsYv07oy3zOjqUOJ7xutGBkJTOX0+IbNyU6+O6X7aIxjq9EaSSRLWbekRgamgtmfg8Xjw6A6Ua9g==", + "type": "package", + "path": "microsoft.identitymodel.abstractions/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Abstractions.dll", + "lib/net461/Microsoft.IdentityModel.Abstractions.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", + "microsoft.identitymodel.abstractions.7.5.1.nupkg.sha512", + "microsoft.identitymodel.abstractions.nuspec" + ] + }, + "Microsoft.IdentityModel.JsonWebTokens/7.5.1": { + "sha512": "93CGSa8RPdZU8zfvA3nf9NGKUqEnQrE12VzYlMqKh72ddhzusosqLNEUgH/YhFWBLRFOnY1RCgHMV7pR+sAx2w==", + "type": "package", + "path": "microsoft.identitymodel.jsonwebtokens/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml", + "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/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "microsoft.identitymodel.jsonwebtokens.7.5.1.nupkg.sha512", + "microsoft.identitymodel.jsonwebtokens.nuspec" + ] + }, + "Microsoft.IdentityModel.Logging/7.5.1": { + "sha512": "PnpAQX20BAiDIPYmWUyQSlEaWD8BLXzHpiDGTCT568Cs0ReOeyzNe401LzCeiv6ilug/KefVeV1CeqtCHTo8dw==", + "type": "package", + "path": "microsoft.identitymodel.logging/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Logging.dll", + "lib/net461/Microsoft.IdentityModel.Logging.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Logging.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", + "microsoft.identitymodel.logging.7.5.1.nupkg.sha512", + "microsoft.identitymodel.logging.nuspec" + ] + }, + "Microsoft.IdentityModel.Tokens/7.5.1": { + "sha512": "Q3DKpyFViP84IUlTFKH/zIkswIrmSh2Vd/eFDo4wlOHy4DYxoweZEEw4kDEiKt9VCX6o7SddK3HK2xDYyFpexA==", + "type": "package", + "path": "microsoft.identitymodel.tokens/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Tokens.dll", + "lib/net461/Microsoft.IdentityModel.Tokens.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", + "microsoft.identitymodel.tokens.7.5.1.nupkg.sha512", + "microsoft.identitymodel.tokens.nuspec" + ] + }, "Microsoft.Win32.SystemEvents/7.0.0": { "sha512": "2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==", "type": "package", @@ -1068,6 +1274,130 @@ "useSharedDesignerContext.txt" ] }, + "System.Formats.Asn1/5.0.0": { + "sha512": "MTvUIktmemNB+El0Fgw9egyqT9AYSIk6DTJeoDSpc3GIHxHCMo8COqkWT1mptX5tZ1SlQ6HJZ0OsSvMth1c12w==", + "type": "package", + "path": "system.formats.asn1/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Formats.Asn1.dll", + "lib/net461/System.Formats.Asn1.xml", + "lib/netstandard2.0/System.Formats.Asn1.dll", + "lib/netstandard2.0/System.Formats.Asn1.xml", + "system.formats.asn1.5.0.0.nupkg.sha512", + "system.formats.asn1.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.IdentityModel.Tokens.Jwt/7.5.1": { + "sha512": "UUw+E0R73lZLlXgneYIJQxNs1kfbcxjVzw64JQyiwjqCd4HMpAbjn+xRo86QZT84uHq8/MkqvfH82tgjgPzpuw==", + "type": "package", + "path": "system.identitymodel.tokens.jwt/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/System.IdentityModel.Tokens.Jwt.dll", + "lib/net461/System.IdentityModel.Tokens.Jwt.xml", + "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/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", + "system.identitymodel.tokens.jwt.7.5.1.nupkg.sha512", + "system.identitymodel.tokens.jwt.nuspec" + ] + }, + "System.Security.Cryptography.Cng/5.0.0": { + "sha512": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==", + "type": "package", + "path": "system.security.cryptography.cng/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Cng.dll", + "lib/net461/System.Security.Cryptography.Cng.dll", + "lib/net461/System.Security.Cryptography.Cng.xml", + "lib/net462/System.Security.Cryptography.Cng.dll", + "lib/net462/System.Security.Cryptography.Cng.xml", + "lib/net47/System.Security.Cryptography.Cng.dll", + "lib/net47/System.Security.Cryptography.Cng.xml", + "lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll", + "lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll", + "lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml", + "lib/netstandard1.3/System.Security.Cryptography.Cng.dll", + "lib/netstandard1.4/System.Security.Cryptography.Cng.dll", + "lib/netstandard1.6/System.Security.Cryptography.Cng.dll", + "lib/netstandard2.0/System.Security.Cryptography.Cng.dll", + "lib/netstandard2.0/System.Security.Cryptography.Cng.xml", + "lib/netstandard2.1/System.Security.Cryptography.Cng.dll", + "lib/netstandard2.1/System.Security.Cryptography.Cng.xml", + "lib/uap10.0.16299/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Cng.dll", + "ref/net461/System.Security.Cryptography.Cng.dll", + "ref/net461/System.Security.Cryptography.Cng.xml", + "ref/net462/System.Security.Cryptography.Cng.dll", + "ref/net462/System.Security.Cryptography.Cng.xml", + "ref/net47/System.Security.Cryptography.Cng.dll", + "ref/net47/System.Security.Cryptography.Cng.xml", + "ref/netcoreapp2.0/System.Security.Cryptography.Cng.dll", + "ref/netcoreapp2.0/System.Security.Cryptography.Cng.xml", + "ref/netcoreapp2.1/System.Security.Cryptography.Cng.dll", + "ref/netcoreapp2.1/System.Security.Cryptography.Cng.xml", + "ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll", + "ref/netcoreapp3.0/System.Security.Cryptography.Cng.xml", + "ref/netstandard1.3/System.Security.Cryptography.Cng.dll", + "ref/netstandard1.4/System.Security.Cryptography.Cng.dll", + "ref/netstandard1.6/System.Security.Cryptography.Cng.dll", + "ref/netstandard2.0/System.Security.Cryptography.Cng.dll", + "ref/netstandard2.0/System.Security.Cryptography.Cng.xml", + "ref/netstandard2.1/System.Security.Cryptography.Cng.dll", + "ref/netstandard2.1/System.Security.Cryptography.Cng.xml", + "ref/uap10.0.16299/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/win/lib/net46/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.Cng.xml", + "runtimes/win/lib/net462/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net462/System.Security.Cryptography.Cng.xml", + "runtimes/win/lib/net47/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net47/System.Security.Cryptography.Cng.xml", + "runtimes/win/lib/netcoreapp2.0/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml", + "runtimes/win/lib/netstandard1.4/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/uap10.0.16299/_._", + "system.security.cryptography.cng.5.0.0.nupkg.sha512", + "system.security.cryptography.cng.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, "System.Security.Cryptography.ProtectedData/7.0.0": { "sha512": "xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==", "type": "package", @@ -1168,7 +1498,9 @@ "Microsoft.Extensions.Caching.Abstractions >= 7.0.0", "Microsoft.Extensions.Configuration >= 7.0.0", "Microsoft.Extensions.Logging >= 7.0.0", - "System.DirectoryServices.AccountManagement >= 7.0.1" + "System.DirectoryServices.AccountManagement >= 7.0.1", + "System.IdentityModel.Tokens.Jwt >= 7.5.1", + "System.Security.Cryptography.Cng >= 5.0.0" ] }, "packageFolders": { @@ -1247,6 +1579,14 @@ "System.DirectoryServices.AccountManagement": { "target": "Package", "version": "[7.0.1, )" + }, + "System.IdentityModel.Tokens.Jwt": { + "target": "Package", + "version": "[7.5.1, )" + }, + "System.Security.Cryptography.Cng": { + "target": "Package", + "version": "[5.0.0, )" } }, "imports": [ diff --git a/DigitalData.Core.Application/obj/project.nuget.cache b/DigitalData.Core.Application/obj/project.nuget.cache index 008c573..aeb5cad 100644 --- a/DigitalData.Core.Application/obj/project.nuget.cache +++ b/DigitalData.Core.Application/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "n93+MKQABba3OlvV9vsNTsnfi5nHWhj3CavVgX3I9I1+zCwApoWk5yls2KENGsGobTCWb/ng+KmBQYYwtkP9AA==", + "dgSpecHash": "Ng655q2G++xx7UIt9gr/OWTyrrPAc0GMA1Zk3E9z5lalMZ+0ws2D/LN+jWmxYyLvAX9/sl6jPsWi+zpfE5P1Zg==", "success": true, "projectFilePath": "E:\\TekH\\Visual Studio\\WebCoreModules\\DigitalData.Core.Application\\DigitalData.Core.Application.csproj", "expectedPackageFiles": [ @@ -16,6 +16,10 @@ "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\7.0.0\\microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.options\\7.0.0\\microsoft.extensions.options.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.primitives\\7.0.0\\microsoft.extensions.primitives.7.0.0.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.abstractions\\7.5.1\\microsoft.identitymodel.abstractions.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\7.5.1\\microsoft.identitymodel.jsonwebtokens.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.logging\\7.5.1\\microsoft.identitymodel.logging.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.tokens\\7.5.1\\microsoft.identitymodel.tokens.7.5.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.win32.systemevents\\7.0.0\\microsoft.win32.systemevents.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.configuration.configurationmanager\\7.0.0\\system.configuration.configurationmanager.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.diagnostics.eventlog\\7.0.0\\system.diagnostics.eventlog.7.0.0.nupkg.sha512", @@ -23,6 +27,9 @@ "C:\\Users\\tekh\\.nuget\\packages\\system.directoryservices.accountmanagement\\7.0.1\\system.directoryservices.accountmanagement.7.0.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.directoryservices.protocols\\7.0.1\\system.directoryservices.protocols.7.0.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.drawing.common\\7.0.0\\system.drawing.common.7.0.0.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\system.formats.asn1\\5.0.0\\system.formats.asn1.5.0.0.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\system.identitymodel.tokens.jwt\\7.5.1\\system.identitymodel.tokens.jwt.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\system.security.cryptography.cng\\5.0.0\\system.security.cryptography.cng.5.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.security.cryptography.protecteddata\\7.0.0\\system.security.cryptography.protecteddata.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.security.permissions\\7.0.0\\system.security.permissions.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.windows.extensions\\7.0.0\\system.windows.extensions.7.0.0.nupkg.sha512" diff --git a/DigitalData.Core.Contracts/Application/IJWTService.cs b/DigitalData.Core.Contracts/Application/IJWTService.cs new file mode 100644 index 0000000..b47bc45 --- /dev/null +++ b/DigitalData.Core.Contracts/Application/IJWTService.cs @@ -0,0 +1,41 @@ +using Microsoft.IdentityModel.Tokens; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Cryptography; + +namespace DigitalData.Core.Application +{ + /// + /// Defines the operations for JWT service handling claims of type . + /// + public interface IJWTService + { + /// + /// Generates a symmetric security key with the specified byte size. + /// + /// The size of the security key in bytes. Default is 32 bytes. + /// A new instance of . + public static SymmetricSecurityKey GenerateSecurityKey(int byteSize = 32) + { + using var rng = RandomNumberGenerator.Create(); + var randomBytes = new byte[byteSize]; + rng.GetBytes(randomBytes); + var securityKey = new SymmetricSecurityKey(randomBytes); + + return securityKey; + } + + /// + /// Generates a token based on the specified claim value. + /// + /// The claim value to encode in the token. + /// A JWT as a string. + string GenerateToken(TClaimValue claimValue); + + /// + /// Reads and validates a security token from a string representation. + /// + /// The JWT to read. + /// A if the token is valid; otherwise, null. + JwtSecurityToken? ReadSecurityToken(string token); + } +} \ No newline at end of file diff --git a/DigitalData.Core.Contracts/DigitalData.Core.Contracts.csproj b/DigitalData.Core.Contracts/DigitalData.Core.Contracts.csproj index 621ac27..e05b40a 100644 --- a/DigitalData.Core.Contracts/DigitalData.Core.Contracts.csproj +++ b/DigitalData.Core.Contracts/DigitalData.Core.Contracts.csproj @@ -11,6 +11,7 @@ + diff --git a/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.assets.cache b/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.assets.cache index 5ab696b1b05731c2d0bf9ed2bf5446f27d083536..2bb730b95bc1adc4d77f1ac98249e9028928c5a3 100644 GIT binary patch literal 19641 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 delta 27 jcmX?en(gr>HV!t%tqcqdj5*UkwlQin8f-OSG@c0nh588u diff --git a/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.csproj.CoreCompileInputs.cache b/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.csproj.CoreCompileInputs.cache index 3d15240..ea27e61 100644 --- a/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.csproj.CoreCompileInputs.cache +++ b/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -c04ab3cbc3319f5880fb96acc2dc1da3e8fd9daa +9d72487d6b201a275c19f7d91f8cd3b00a348ad5 diff --git a/DigitalData.Core.Contracts/obj/DigitalData.Core.Contracts.csproj.nuget.dgspec.json b/DigitalData.Core.Contracts/obj/DigitalData.Core.Contracts.csproj.nuget.dgspec.json index 7581232..c37f800 100644 --- a/DigitalData.Core.Contracts/obj/DigitalData.Core.Contracts.csproj.nuget.dgspec.json +++ b/DigitalData.Core.Contracts/obj/DigitalData.Core.Contracts.csproj.nuget.dgspec.json @@ -66,6 +66,10 @@ "System.DirectoryServices.AccountManagement": { "target": "Package", "version": "[7.0.1, )" + }, + "System.IdentityModel.Tokens.Jwt": { + "target": "Package", + "version": "[7.5.1, )" } }, "imports": [ diff --git a/DigitalData.Core.Contracts/obj/project.assets.json b/DigitalData.Core.Contracts/obj/project.assets.json index 02ae0e9..36491b0 100644 --- a/DigitalData.Core.Contracts/obj/project.assets.json +++ b/DigitalData.Core.Contracts/obj/project.assets.json @@ -150,6 +150,67 @@ "buildTransitive/net6.0/_._": {} } }, + "Microsoft.IdentityModel.Abstractions/7.5.1": { + "type": "package", + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Logging/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Tokens/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + } + }, "Microsoft.Win32.SystemEvents/7.0.0": { "type": "package", "compile": { @@ -326,6 +387,23 @@ } } }, + "System.IdentityModel.Tokens.Jwt/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "7.5.1", + "Microsoft.IdentityModel.Tokens": "7.5.1" + }, + "compile": { + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + } + }, "System.Security.Cryptography.ProtectedData/7.0.0": { "type": "package", "compile": { @@ -655,6 +733,98 @@ "useSharedDesignerContext.txt" ] }, + "Microsoft.IdentityModel.Abstractions/7.5.1": { + "sha512": "PT16ZFbPIiMsYv07oy3zOjqUOJ7xutGBkJTOX0+IbNyU6+O6X7aIxjq9EaSSRLWbekRgamgtmfg8Xjw6A6Ua9g==", + "type": "package", + "path": "microsoft.identitymodel.abstractions/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Abstractions.dll", + "lib/net461/Microsoft.IdentityModel.Abstractions.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", + "microsoft.identitymodel.abstractions.7.5.1.nupkg.sha512", + "microsoft.identitymodel.abstractions.nuspec" + ] + }, + "Microsoft.IdentityModel.JsonWebTokens/7.5.1": { + "sha512": "93CGSa8RPdZU8zfvA3nf9NGKUqEnQrE12VzYlMqKh72ddhzusosqLNEUgH/YhFWBLRFOnY1RCgHMV7pR+sAx2w==", + "type": "package", + "path": "microsoft.identitymodel.jsonwebtokens/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml", + "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/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "microsoft.identitymodel.jsonwebtokens.7.5.1.nupkg.sha512", + "microsoft.identitymodel.jsonwebtokens.nuspec" + ] + }, + "Microsoft.IdentityModel.Logging/7.5.1": { + "sha512": "PnpAQX20BAiDIPYmWUyQSlEaWD8BLXzHpiDGTCT568Cs0ReOeyzNe401LzCeiv6ilug/KefVeV1CeqtCHTo8dw==", + "type": "package", + "path": "microsoft.identitymodel.logging/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Logging.dll", + "lib/net461/Microsoft.IdentityModel.Logging.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Logging.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", + "microsoft.identitymodel.logging.7.5.1.nupkg.sha512", + "microsoft.identitymodel.logging.nuspec" + ] + }, + "Microsoft.IdentityModel.Tokens/7.5.1": { + "sha512": "Q3DKpyFViP84IUlTFKH/zIkswIrmSh2Vd/eFDo4wlOHy4DYxoweZEEw4kDEiKt9VCX6o7SddK3HK2xDYyFpexA==", + "type": "package", + "path": "microsoft.identitymodel.tokens/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Tokens.dll", + "lib/net461/Microsoft.IdentityModel.Tokens.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", + "microsoft.identitymodel.tokens.7.5.1.nupkg.sha512", + "microsoft.identitymodel.tokens.nuspec" + ] + }, "Microsoft.Win32.SystemEvents/7.0.0": { "sha512": "2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==", "type": "package", @@ -875,6 +1045,29 @@ "useSharedDesignerContext.txt" ] }, + "System.IdentityModel.Tokens.Jwt/7.5.1": { + "sha512": "UUw+E0R73lZLlXgneYIJQxNs1kfbcxjVzw64JQyiwjqCd4HMpAbjn+xRo86QZT84uHq8/MkqvfH82tgjgPzpuw==", + "type": "package", + "path": "system.identitymodel.tokens.jwt/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/System.IdentityModel.Tokens.Jwt.dll", + "lib/net461/System.IdentityModel.Tokens.Jwt.xml", + "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/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", + "system.identitymodel.tokens.jwt.7.5.1.nupkg.sha512", + "system.identitymodel.tokens.jwt.nuspec" + ] + }, "System.Security.Cryptography.ProtectedData/7.0.0": { "sha512": "xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==", "type": "package", @@ -968,7 +1161,8 @@ "Microsoft.Extensions.Caching.Memory >= 7.0.0", "Microsoft.Extensions.Configuration.Binder >= 7.0.4", "System.DirectoryServices >= 7.0.1", - "System.DirectoryServices.AccountManagement >= 7.0.1" + "System.DirectoryServices.AccountManagement >= 7.0.1", + "System.IdentityModel.Tokens.Jwt >= 7.5.1" ] }, "packageFolders": { @@ -1039,6 +1233,10 @@ "System.DirectoryServices.AccountManagement": { "target": "Package", "version": "[7.0.1, )" + }, + "System.IdentityModel.Tokens.Jwt": { + "target": "Package", + "version": "[7.5.1, )" } }, "imports": [ diff --git a/DigitalData.Core.Contracts/obj/project.nuget.cache b/DigitalData.Core.Contracts/obj/project.nuget.cache index 3753790..6529ddf 100644 --- a/DigitalData.Core.Contracts/obj/project.nuget.cache +++ b/DigitalData.Core.Contracts/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "Bo0GMV4+098EZ6xKCtpEGyIM8bwdVpp3GyRxUsWNYFp7byC9SMrAxFv275vfPARua9vB1UoRbkM+iJ2MO8Tk0Q==", + "dgSpecHash": "MJak/wF87O8jctXDBliFCDEV1b4AZ+6n8aneQfBwac8XYH5vNf4HdOPN3fQcVVm38xUbIsmTGnc7nwFeCXE52g==", "success": true, "projectFilePath": "E:\\TekH\\Visual Studio\\WebCoreModules\\DigitalData.Core.Contracts\\DigitalData.Core.Contracts.csproj", "expectedPackageFiles": [ @@ -12,6 +12,10 @@ "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\7.0.0\\microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.options\\7.0.0\\microsoft.extensions.options.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.primitives\\7.0.0\\microsoft.extensions.primitives.7.0.0.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.abstractions\\7.5.1\\microsoft.identitymodel.abstractions.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\7.5.1\\microsoft.identitymodel.jsonwebtokens.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.logging\\7.5.1\\microsoft.identitymodel.logging.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.tokens\\7.5.1\\microsoft.identitymodel.tokens.7.5.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.win32.systemevents\\7.0.0\\microsoft.win32.systemevents.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.configuration.configurationmanager\\7.0.0\\system.configuration.configurationmanager.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.diagnostics.eventlog\\7.0.0\\system.diagnostics.eventlog.7.0.0.nupkg.sha512", @@ -19,6 +23,7 @@ "C:\\Users\\tekh\\.nuget\\packages\\system.directoryservices.accountmanagement\\7.0.1\\system.directoryservices.accountmanagement.7.0.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.directoryservices.protocols\\7.0.1\\system.directoryservices.protocols.7.0.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.drawing.common\\7.0.0\\system.drawing.common.7.0.0.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\system.identitymodel.tokens.jwt\\7.5.1\\system.identitymodel.tokens.jwt.7.5.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.security.cryptography.protecteddata\\7.0.0\\system.security.cryptography.protecteddata.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.security.permissions\\7.0.0\\system.security.permissions.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.windows.extensions\\7.0.0\\system.windows.extensions.7.0.0.nupkg.sha512" diff --git a/DigitalData.Core.CultureServices/obj/Debug/net7.0/DigitalData.Core.CultureServices.assets.cache b/DigitalData.Core.CultureServices/obj/Debug/net7.0/DigitalData.Core.CultureServices.assets.cache index 25c1efa25f8477e8b44db38a84cc6917e571db47..54a6a3b5965dec6e78dd44cef2967611c592a90e 100644 GIT binary patch literal 20389 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 delta 2274 zcmZ`)OHUhD6lTCAc7}iqIMiTc^DuY}fq)IzCC<|{JQ~tK^CSU7NNIUVNu-EWNn2H_ z+D0Iee4(g|szp_$wu>s27hN?f-BjH*Qj|?3k}NBcUqBS)8)rN+*LSY;X>`vy-#2H@ zJ!kGu-z%$MD$BwA$L)7Qe<b4T%;%MM@NKx$6;yAY3p8k!<*6z^@qro-;6%FD~k zCklxjgol(mJd5naeeWoicBxLU5K)cwb`2+5dfWx{=*vfBYxuENec3ZPJDUlpF#`0x z{*qe!uCBQ11ZzF_3wT}=z-L7xu7Kce;C?jio%eTQV7KaQG$Jyo2dNr@zj(%}37!yB zo;TBN61>ewhNrPqV%PQxo)+$9t336fWL;4_Q2IUSEPaZxL=z^Oi zPK1dF(Lr?LW!c8Iqv?g$t)}K()7i%p#86ckzVO~tyr``HMDgL<>IH{cNq+0?qJ_Cx zz3%#|!+qbP5H4fob#R4iDCl zjYuPU$Za;pFRbN^9_uKp+&kGL8R1yzBc!jK$)rstaLkz4<66$7S}=O`2}Y<@)y#%t zWO{Th7=7%urH)KyveA}h)=#y}$Pb%r+33sI17w@OgzUnY17IW_v`G40V?Zupx!tbi z{533C$63znnmItmJDM$`2RUF@rGFOLC!N4n`0JS18ShzWpQL?=7$)8)PT|kUQcOJL z)AY#Rb%yrs>{k`F{Pmy4R)?CSa@IoST#m}Y&RcP@ZO&V;M?^OFD_Dz0@j`tIeO-ew zv6U`ZC|wkl@L$)xnAl3A7VI&Do#a!mI-pyf8&?BqlCEE2$P7*r%GTA(fSUfJi z{{wnu3RARiI}7e-jN8tIe>(h#?{@asY1Nn5-yhN@Q~ii`QFR6Dkp^A^A#`;Q#>AeV zwosZ8mGGeZ)1K_RLLdEE3-+AI=03CLQ=jiIvAwxVQ??^T`KhtQM1kVx-Rj59-X}^6 Ql8F%hO4w4r_H7lu1{+l*SpWb4 diff --git a/DigitalData.Core.CultureServices/obj/Debug/net7.0/DigitalData.Core.CultureServices.csproj.AssemblyReference.cache b/DigitalData.Core.CultureServices/obj/Debug/net7.0/DigitalData.Core.CultureServices.csproj.AssemblyReference.cache index 027e085eebdb7f8d04596b65a793a45c40c8c0d0..d00acc407591c4f75cd9790ecef2c33105d3841a 100644 GIT binary patch delta 1479 zcmb7^%`XE%7>D~REs2tzN*W)DRtT9@p&}yjacZMMd|i6!>Z)b!N_UbXl4{~CVh&3< zi@S)U2uEC8If|3SpJ2bL-P)=4u($cW^UO29*~4eo*N4mLg1ema#tFI08rUcIo}Otw z$%&Z9yIWF{6HtPcaXPVzc}bMxBWM_f;sVdcMGlA2Ks?5;rX^Wg!zf~=Vp>W$xB%bi z*!k1-(px&!MQS!6>BPnB;QSay0PJP8kmKvzjK*O%W6f&^-D1= z_Sgs%q*RI*Qx!J}%@~1#v{&zgDXoLXW@Zdqzl~Df2cc2ZRZ=Pwsd7=;crw4&uNz|6 ze<wGUm3B9Sz#Z;J@uzFanX{pAa(bL^HV1o|pD)zCH9zvy9YG-jSgw-yT1i>u^VC XWPe@JchNT?xuIUONB^v}_to_S{hs>~ delta 17 YcmaF+l&$3~8#5c@u14mq%#4l806%aBSO5S3 diff --git a/DigitalData.Core.CultureServices/obj/DigitalData.Core.CultureServices.csproj.nuget.dgspec.json b/DigitalData.Core.CultureServices/obj/DigitalData.Core.CultureServices.csproj.nuget.dgspec.json index 071ad71..b8e96f4 100644 --- a/DigitalData.Core.CultureServices/obj/DigitalData.Core.CultureServices.csproj.nuget.dgspec.json +++ b/DigitalData.Core.CultureServices/obj/DigitalData.Core.CultureServices.csproj.nuget.dgspec.json @@ -66,6 +66,10 @@ "System.DirectoryServices.AccountManagement": { "target": "Package", "version": "[7.0.1, )" + }, + "System.IdentityModel.Tokens.Jwt": { + "target": "Package", + "version": "[7.5.1, )" } }, "imports": [ diff --git a/DigitalData.Core.CultureServices/obj/project.assets.json b/DigitalData.Core.CultureServices/obj/project.assets.json index 0706521..ef9a586 100644 --- a/DigitalData.Core.CultureServices/obj/project.assets.json +++ b/DigitalData.Core.CultureServices/obj/project.assets.json @@ -182,6 +182,67 @@ "buildTransitive/net6.0/_._": {} } }, + "Microsoft.IdentityModel.Abstractions/7.5.1": { + "type": "package", + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Logging/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Tokens/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.5.1" + }, + "compile": { + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + } + }, "Microsoft.Win32.SystemEvents/7.0.0": { "type": "package", "compile": { @@ -358,6 +419,23 @@ } } }, + "System.IdentityModel.Tokens.Jwt/7.5.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "7.5.1", + "Microsoft.IdentityModel.Tokens": "7.5.1" + }, + "compile": { + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + } + }, "System.Security.Cryptography.ProtectedData/7.0.0": { "type": "package", "compile": { @@ -428,7 +506,8 @@ "Microsoft.Extensions.Caching.Memory": "7.0.0", "Microsoft.Extensions.Configuration.Binder": "7.0.4", "System.DirectoryServices": "7.0.1", - "System.DirectoryServices.AccountManagement": "7.0.1" + "System.DirectoryServices.AccountManagement": "7.0.1", + "System.IdentityModel.Tokens.Jwt": "7.5.1" }, "compile": { "bin/placeholder/DigitalData.Core.Contracts.dll": {} @@ -741,6 +820,98 @@ "useSharedDesignerContext.txt" ] }, + "Microsoft.IdentityModel.Abstractions/7.5.1": { + "sha512": "PT16ZFbPIiMsYv07oy3zOjqUOJ7xutGBkJTOX0+IbNyU6+O6X7aIxjq9EaSSRLWbekRgamgtmfg8Xjw6A6Ua9g==", + "type": "package", + "path": "microsoft.identitymodel.abstractions/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Abstractions.dll", + "lib/net461/Microsoft.IdentityModel.Abstractions.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", + "microsoft.identitymodel.abstractions.7.5.1.nupkg.sha512", + "microsoft.identitymodel.abstractions.nuspec" + ] + }, + "Microsoft.IdentityModel.JsonWebTokens/7.5.1": { + "sha512": "93CGSa8RPdZU8zfvA3nf9NGKUqEnQrE12VzYlMqKh72ddhzusosqLNEUgH/YhFWBLRFOnY1RCgHMV7pR+sAx2w==", + "type": "package", + "path": "microsoft.identitymodel.jsonwebtokens/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml", + "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/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "microsoft.identitymodel.jsonwebtokens.7.5.1.nupkg.sha512", + "microsoft.identitymodel.jsonwebtokens.nuspec" + ] + }, + "Microsoft.IdentityModel.Logging/7.5.1": { + "sha512": "PnpAQX20BAiDIPYmWUyQSlEaWD8BLXzHpiDGTCT568Cs0ReOeyzNe401LzCeiv6ilug/KefVeV1CeqtCHTo8dw==", + "type": "package", + "path": "microsoft.identitymodel.logging/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Logging.dll", + "lib/net461/Microsoft.IdentityModel.Logging.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Logging.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", + "microsoft.identitymodel.logging.7.5.1.nupkg.sha512", + "microsoft.identitymodel.logging.nuspec" + ] + }, + "Microsoft.IdentityModel.Tokens/7.5.1": { + "sha512": "Q3DKpyFViP84IUlTFKH/zIkswIrmSh2Vd/eFDo4wlOHy4DYxoweZEEw4kDEiKt9VCX6o7SddK3HK2xDYyFpexA==", + "type": "package", + "path": "microsoft.identitymodel.tokens/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Tokens.dll", + "lib/net461/Microsoft.IdentityModel.Tokens.xml", + "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/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", + "microsoft.identitymodel.tokens.7.5.1.nupkg.sha512", + "microsoft.identitymodel.tokens.nuspec" + ] + }, "Microsoft.Win32.SystemEvents/7.0.0": { "sha512": "2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==", "type": "package", @@ -961,6 +1132,29 @@ "useSharedDesignerContext.txt" ] }, + "System.IdentityModel.Tokens.Jwt/7.5.1": { + "sha512": "UUw+E0R73lZLlXgneYIJQxNs1kfbcxjVzw64JQyiwjqCd4HMpAbjn+xRo86QZT84uHq8/MkqvfH82tgjgPzpuw==", + "type": "package", + "path": "system.identitymodel.tokens.jwt/7.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/System.IdentityModel.Tokens.Jwt.dll", + "lib/net461/System.IdentityModel.Tokens.Jwt.xml", + "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/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", + "system.identitymodel.tokens.jwt.7.5.1.nupkg.sha512", + "system.identitymodel.tokens.jwt.nuspec" + ] + }, "System.Security.Cryptography.ProtectedData/7.0.0": { "sha512": "xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==", "type": "package", diff --git a/DigitalData.Core.CultureServices/obj/project.nuget.cache b/DigitalData.Core.CultureServices/obj/project.nuget.cache index da253c6..477e2cd 100644 --- a/DigitalData.Core.CultureServices/obj/project.nuget.cache +++ b/DigitalData.Core.CultureServices/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "a8AKMkoUr/m82ydRrnH1BzZD7YyQjZhfTMxf28TSQu3I8mviY9tlURZNTHpNANWoZ9lFZiOpYo0iPY5eggjAFg==", + "dgSpecHash": "wEB4z1LC1hayBGU8Pejx4dmLiKnJ/u+TcI5jyyHHLCO6lfLmBZU6Dmgv91ZTA8gZnjfIQH4RXrZfFkmUgRCE9w==", "success": true, "projectFilePath": "E:\\TekH\\Visual Studio\\WebCoreModules\\DigitalData.Core.CultureServices\\DigitalData.Core.CultureServices.csproj", "expectedPackageFiles": [ @@ -14,6 +14,10 @@ "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\7.0.1\\microsoft.extensions.logging.abstractions.7.0.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.options\\7.0.1\\microsoft.extensions.options.7.0.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.extensions.primitives\\7.0.0\\microsoft.extensions.primitives.7.0.0.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.abstractions\\7.5.1\\microsoft.identitymodel.abstractions.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\7.5.1\\microsoft.identitymodel.jsonwebtokens.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.logging\\7.5.1\\microsoft.identitymodel.logging.7.5.1.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\microsoft.identitymodel.tokens\\7.5.1\\microsoft.identitymodel.tokens.7.5.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\microsoft.win32.systemevents\\7.0.0\\microsoft.win32.systemevents.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.configuration.configurationmanager\\7.0.0\\system.configuration.configurationmanager.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.diagnostics.eventlog\\7.0.0\\system.diagnostics.eventlog.7.0.0.nupkg.sha512", @@ -21,6 +25,7 @@ "C:\\Users\\tekh\\.nuget\\packages\\system.directoryservices.accountmanagement\\7.0.1\\system.directoryservices.accountmanagement.7.0.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.directoryservices.protocols\\7.0.1\\system.directoryservices.protocols.7.0.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.drawing.common\\7.0.0\\system.drawing.common.7.0.0.nupkg.sha512", + "C:\\Users\\tekh\\.nuget\\packages\\system.identitymodel.tokens.jwt\\7.5.1\\system.identitymodel.tokens.jwt.7.5.1.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.security.cryptography.protecteddata\\7.0.0\\system.security.cryptography.protecteddata.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.security.permissions\\7.0.0\\system.security.permissions.7.0.0.nupkg.sha512", "C:\\Users\\tekh\\.nuget\\packages\\system.windows.extensions\\7.0.0\\system.windows.extensions.7.0.0.nupkg.sha512" diff --git a/DigitalData.Core.Infrastructure/obj/Debug/net7.0/DigitalData.Core.Infrastructure.assets.cache b/DigitalData.Core.Infrastructure/obj/Debug/net7.0/DigitalData.Core.Infrastructure.assets.cache index 0695b8528d60c625680e08b6a66e3149d018f0c5..563978fd92cf512f7e06ec1e331b00b9dfc73490 100644 GIT binary patch literal 21802 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 T<$@lAHPx_(qLiU=eX0KgQP*NC delta 2404 zcmZ`)OKcle6wNrFaj+AdC~k0=*s=3*W)jCWacVn>o&HQH)JaNP+CrPAr7g{;Boq*( zf`U+sM4KYWp&Jyb0KbL(Kw`my1?QQuHJQA5($VO>ch9+R z?z{KC8#k2I73G6o*MZb6@BZ^wy+ zg=$)f5h7efEuj(}#Je9RLhyB}_}w$>4|Bn45aE0de|e*b4+pRsj%pUQPMdKT9(b3U zy3N%deua-HrXrWEv|gKmjz1!=<7%VFZ`gMFIG?8X9{iYV!EbFIba+(+_ci05SHs>& z6xX|Eko9?Rq`}=#{;4=w;>_LLt;ZGL&Zf<#ZrLJ%`>DC1a!?+#?GAD-8?9Vy$0tqg z#nq-}m!jc*LBq+GpA-YiqyhLBV@aCS5krKK-$JB_G?5{Oi4mfP2qOGY5QR;5*56?< z-}-eOetooje}hU0N3}llhNive&Mb%v5+jVM@CBt4--gfCSE9~nU#qW#n4!JcU=6D* zoDbuNPEUP56-!r71%siRR|cq`FoT%Eg>H|s8JD}y`>g>J=h%>gxYQH!k8&qVM`8z)ufg?X}N-gn#6M8FoH1; z-qBm69`hxS%YjDxQj^CPL$3EY^)8n5zH6Jn14I6A;|TYCA@%YEzE@MYuBqtK;yB(f z=kMZKt{@zf$L2|DEa5AM-KP)_^<%Al9H$24>buGBFSmp=i&&(o7_yci3x9#OmR50W zs4O6B88U$h3ao1-Ny{lVv=SQ2L?+o{PUG`Iw_ZtjT9(?317k|GAIv5_dZj2#hVH=F zBl?jwMArHdu0&gs9qwta%j&BcH;3G4AC%|dUbEh2(3tYX2B=Z0LVkrW(adDN_Ho_X zpTF1hdXnZnX&)|*pdl`G89B{Bc$n`_Sv&3`6VdOGbv-S%< z!X25fX|AthbN-t703FQORgOBS%-B`%~=$IluP*D;dCYC_r*r!bP3;c>;o<=acvVlG8z@9VN^Co+N?ET2)vRS+TGY$$b znhKT6M$m`f6-8AO$Dih(<06UdIZ6SXuH+4quz&{?|>#8{VJ@pIwd+mlA!f1P?$YXATM diff --git a/DigitalData.Core.Infrastructure/obj/Debug/net7.0/DigitalData.Core.Infrastructure.csproj.AssemblyReference.cache b/DigitalData.Core.Infrastructure/obj/Debug/net7.0/DigitalData.Core.Infrastructure.csproj.AssemblyReference.cache index 75a3bcaa087c36e449d4256bb846081f46eac06a..10a28bfb123c1ad3a47f7b70c286c44c72b848eb 100644 GIT binary patch delta 1420 zcmca`hHd9lHfA=){f*39nHhbTF)`LmPSlW_EWp84pP7=HSCUy$nVX-InxmJPR9sS& zm|T*XpI01Xu4k%e7?YEk6qA=)Vy0&him&2fXAmIW} zD3kp{c_#mpQk6yx8K{d8VIqVYCLqJ6GsZCLfI~w+iGZb8!yzG(Wpav!G?sisYMMb$ zEQrvM!{soD7FZ%-g5;XX=kj=_-(JY5Duo&v5cl8=43Jsyl%bc1-%6}Op&=zd`G6uj zTC#vxtCv+?f|)XcD~n4~bJ0o?h^O?t%1aO_