From 60eb1a71925e0f8702d354cc38d7085ccd890ec9 Mon Sep 17 00:00:00 2001 From: haburger Date: Fri, 29 Nov 2024 12:40:56 +0000 Subject: [PATCH] 1.7.5 RC1 --- .../resources.zip | Bin 2239495 -> 2239492 bytes .../labels.zip | Bin 24736 -> 24733 bytes .../webdata.zip | Bin 2281166 -> 2281166 bytes .../SendSamlResponseWithErrorState.xml | 2 +- .../responseHeaderPostProcessing.lua | 12 +++++ .../labels.zip | Bin 24736 -> 24733 bytes .../webdata.zip | Bin 2281166 -> 2281166 bytes .../AskMobileNumber.xml | 7 +-- .../askMobileNumber.groovy | 49 +++++++++++++++++- .../IDP_IDP_Status_Check_State.xml | 2 +- .../returnTimeoutButKeepSessionState.xml | 2 +- .../EnsureRecoveryCode.xml | 2 +- ...ealm_Main_IDP_4fcfadb4a5c946ead7e6e995.yml | 2 +- ...Recovery_Code_9ff0369f3cf662f95d94ff09.yml | 4 +- ...st_Processing_4f6692a69e4f33c8ed4c145f.yml | 8 +++ ...ed_Auth_Realm_06aeae2d799e492f5580d03b.yml | 2 +- ...tual_Host_idp_1f0702aaabef60a615abf41f.yml | 1 + ...ealm_Recovery_204c22beaccdfd22727af378.yml | 2 +- .../SendSamlResponseWithAssertionState.xml | 2 +- variables.yml | 14 ++--- 20 files changed, 90 insertions(+), 21 deletions(-) create mode 100644 patterns/4f6692a69e4f33c8ed4c145f_script/responseHeaderPostProcessing.lua create mode 100644 patterns/IdP_ResponseHeader_Post_Processing_4f6692a69e4f33c8ed4c145f.yml diff --git a/patterns/1f0702aaabef60a615abf41f_resources/resources.zip b/patterns/1f0702aaabef60a615abf41f_resources/resources.zip index 88b4b41a59d9aec7c6605966b5691d1d93d40f1b..3c642f5e7fdffb461f2bc6ba8343698f4d3d9bc9 100644 GIT binary patch delta 13090 zcmeHtWmJ@1_xF&}-8BJ2ry|`F0wN(HA&mkeNQb}(3P{HQBPkuyC7ps20+ND?h=72! zB7z9M7sD;#{XA>^KfRxxS?j=ByUsr6>}y|p|IQUM@d)D~Fo?C(v9Jk1hrjAz-&kS@ zH&)!`TZhBlix7l?ZHfm1Vc!I}hjLWFf4oCE!`D*w^c%4TZ0G)wMncIb5sr+aWHRqG zg$$`S;O}dG8N7+X-r~4}Nu{CF$p1DAk8^E>--^E;Ue8lFICAM5p7dUq#GJhim&d1{ zA3wulvu9pyq&Nj^UUsrIJCW2k|LLphsHhY78&HB_ss2kaodqPr z)a>;uh7M$Oi*0*6o6S|UI8E*s4c_d1RD?}+!z0c&?+TYYg9zUgH$HnTVqs(|tpa5_ zv(>k5Y8qALub~had@iH-lB}wK!%kuvyQoXHw0+#5&03LaR2o(Hr_Wqn{LOP=;_cK| zmGNy&XW5qU5?@>gmv9!AWmI0j689?WLJ9Ta`GqAT7}EW|G>@3!MTy*K?8RPWr=FW> zHA|orMyo@&cujYio`9W=t z5oemM=i-K_PXAtB0gZFhDRJdyNre-3Qk47GJut;<4Ibd%)%RsXwKK5dCXc$?eAQBE zj{YzmHu`&rnef)QjO*l`c_+dt(hTAIQ4$=Cjgpd9G81Ga?k_4|blaL!!|7v^IUhMt z+Yfg3?!8E}5vtbJRpcHcLrm52UGi&A(zd`IURiMnQnePV?|*0-Eyy&AX*Q`KZ#9WQ zm1@XqtVA4?s9=;Cvp)ozVil$v8{uKeEDk5T6)s(;Emqb|>(y6-oWaY^qv3=Zn2Hv< zKS>B=z#(*h&NN=>$xv%Qf{_qY!Jj0R<}RjG%=YU7k-}fJ)LS? zSW`rYfs%}18{4v&v@qv;_V=5Pk^BblTiy&lP+ydmO$n;LR}?cI8N*;=Vtk>sFqPz@ zbRyj8QD22dvsuJwjn52XpiaVskz^FV1f|CFHQ4{lZuSmn5_d#l!T84jC)j@8Jv?kt zGdjr`&nJ4MY7O&(668sXKT0QDHsV7H-$KQ-llC_2+WOaD5A2wEu|_0)+~bG%gVY`D zLJ@(@{viXK@V9O4%CX$;4^ji|93O8ZK5e}k#HU@764O@Y&Bzf#WbnQMTw0|j)2{RawyvYjj<(3So8m3+ea*S3Uv6HhWw(~ZRWsH#qF*pZT-bd- zA$Dz~h}~|~KR2dv196ux0A=!}jXoJU^$dr$w<)v(qF;WZ9&gGx({LD|d zUK!ds*OS*G!zKueLd!DGdEa{o5zfor`nDw|%{&D1yerJWoN5{o6-`Rgx^q!kV&Lb5 z?fk=p$lqE;=`|7tk6YZG1H+%rxIH>QP_h|4*m|5mu@5sNG6sj||CU1gR;(U1B3DTv zC}v6+0RcV;>rXDt1XCh;aY+z8sD>A6ay}Zbv$)9K$Qe=Lbfrz%yn>6e8PFm$%tod+ zqTRd4dUaMOzCTEz4P}aT4Zbx%RJhVr>(o;3^`p=8Fn|82q>X4_#?;Tl(RRK86T6mO zmcyT^5PnYU8_)S?Gyyy~Eef_?p(J94_Q*a3OA-@2E7!L<`fU?$%TnkK+VVD@kuVCt z`9D$v`SX(3>JMhy+4gTm$YESAM5RVZ>nNx0RLC64+}gq^c7>fT-5bP*2OZ z3e_DC*slIKH?|1%W0O-!XDiLx&-zZbg1@78$$$2XTTd3B-)Q}U4qwhdNJssL5;HD0 z>a2A?ACsTLyby%p+s$fJ|CN?6*T^PGz*p$Th`rRsmnq41#(X~rm=#kdJbB~WL$mT@ zXlJL~@BriK`|DAX>do6!B7 zF^Uz2(poE<>~hYi@m>6HYM;fwSSRON_)Tyu$Bk+x&F3aP*UV#Ed*jIMLGweAsqZRu zVf(2k#z5FP7y2e4oecU0?<6Veg6E4H5+1*Km z#XWFV&A|0>I(p{fY_@YcNbJ~>ORMqMy{GHG2?vW%QHQEsWD|Al(=tO06bL@B#eI+_ zs7jRYnee)Vm1NIGzRaO8qr!m*=N3($zV@Ze%ou%6Yp_v{>qFdZ3GXhxcz5zo4i&7T z47Ai10ktNQ^v?wC?d4%Ek%$Jql9x?Xqny_Z7(bUMGTWv;y#wNgTHQGBrmvymy`%Tw6CHrcn+%yu$3f_6;q~04)P+;GiaeWf8zgChfFMmVP zP%T&EU|YiT0)MH??PUMKn^y@%&TBq9N{mzuj{6VQBxIzFmUp$M5t{srUz=|TdVaAP zSucq0s<;^b4l^k`PqJc;SXIO$8}WweV*Y?w_tWgi*^HRi7KMRXQj7Ul*~5Oka=_;n zuG0vQ*luC-XLmkVl(6=h_2Oza-ssB5PLdYZj&m_uhH)LopIl-mv7X5Mf z@Cj~8=g2}z3A*78m;2P4GZNJT+T8C=CDPagJc-RP{%&IC>XaUy2AX9X9;`K|@bcA% zF$b=Y8DE@^8@Q-?PL|`MjG{44n$>~HtEOyEZ!g5+>zA~GzIFK*FhBaxd!2CZF}tE$5zm9Ji(+|m3#YgptO z^!x|EO#i3ha!EycaLy*UU-oQ;r_)@^{{$NZN ztIzZ3i*tTf{nGYsTy>+6)Qd0aX|k;*VSs)K{S2#x*Sz;99w~u$ZMM=D7H=}9>LjPW z)+Nf=O5x>-_Rg^`?VF3N2=5R;h(xd)E~zoTHcj-9O1r6^vK~yP7`23G&mEhRtEQ`x zUiEtY=zF=}NC-!3X;-4t&N_0*;l0Ce^M?0juNo2>YN^O|@4s~oHF;nKHUjHb%&Oxt zf*uGxi85ps{PZZSl`@rYmzQFN(SpQpp7Je~il48oX`$3PByVN>_K3J1s=z;@m~%C` z`5D}0I;C(&Pm0o+snxn3akr=)``cB2XrgswHs)$~S>IfR9J6xBoA95q9nKO}FJF!Q z-PDb+z(%vDib-ug2lv2$ z(2JB?umNcx6{wAxyG6)c@9caHN<(;+u51zSWtK99w)B_GYL-eJ^URO&qVF%2NW2ys z3jsY=7~i$tq!6D}Cy&*!4pcVe_W8n9`Y>RgZri2)iRadi?Os4oY4=x#D~x6F;Sez# zYk%dz3nolg!47a7cNQB2SDuL8!#W$TId0Eq^ieAdbrxk`=O9_Jh~78qG&lUN!1`ZQ znGTS?^>-W3SbgqWkL2HT39;dgN}GEB`6UC9KZW|xMjwKMQ9rjwEKHhKP#r{SHc*?Cu#!cwOYgOaU9_aEmY2Bww(L^vt z-))mv=?=uCl@MrQq2|Q3!S*o0C5*UXWhq<2gm*=UHpCAH$w_G8qQ0Sfy$vbS!c9+> zGKjg?{j2a%-4f&c1j6WAS#e2Zv!exbA7AHz=&(FY{HE0oS8=Z9VpGD%`pDQm;a z8`F`l^IYFuO(iCn>sAv?v!`12?KhUaeo3pGr$G+YW`_@rVK){oIh;>2ow~x$pSLi* zPb1wwJRr*Cy`)PiW1xt-ToF8U4*agLF5xN?RS_ETTj2mhOP%a=&k9-7%0jM?@+1CB zhkKI5y7cH`P&$<(Y<-yT+REK;-?zAfD(;dX!qP}%6QL@Mjdxh5yklnGmj12FBZv2; z>F`bO?w^*(TVL098mIR+=X%}38s2df;AkLU`A!j+~ybR3Z8d~QqXQ-+8FLq4eSSC-I4P0r{={e(fdVw zh1`>*o|^hqJx+GdfC)EtVRLAn(dxYmGt>|&Psilzy6^j(YeV#TmNg)nMNEEG4aOT}e`Y3x}gbIe!Zg3zGIut_xcWAHNjC@zH>IDKftb9$vX( zI-jmy6CwI<{bt8?Z#n~xE>7! z-l9xq#m^5rSfET>*qj+EFg(C~`u=j1k81Nc72oCP8mqu^Wx{pi1)B;>*DXRt4IzXq zll&^zC+mckm(?j%*?8r*>ppBJL_W`~GkVFf!jrU6fShC_TzD>h*ujROJJ=+kgDnC& z*e1%=e>zx#!wxo4p7Boyd#O3{!-r&`gJmN06cKTqTVc zz6$3;x3H^!TG*kQqZanCgZ1B+$nPY|nSA%o8QFc;B?W(9yyLDI%}#G30Ye{2=Eql- zlib{#)l|a-K`XU1OU#*V1?i@n1WGrsWsO(bBRiCop0yd5rV$y?QP;?k*FS5}DA}u~ z(&fC~eORY857i;`-r;fvMY#8@;8;{j?`r!db}JY6UI#`<}^(znzcC$*u5gO-XyPpVpih}6i6U^->IoqHpK zZd&_?wz8y49-@9`^hQ1@JIKA=nDmXC45b5P4H*MOnzgST(ikYU$a{gj1C^e`JVLl_2Y4R zA8(**l?S@kPIK>lPh0YOplvmA2%b}dY>uQ>sL^m;4Q zo6W*Ut9@n$5NJs66@D6un`an+^p>)B?oZ$jDa;zz0+62CA*45<>2w6?6|G?kDSb>o zg!DrGf%K-Fgib+vLy|sj|AO@74k5jZXh`qT-;f?xHsTMYS9J*Ko&PV8-W`3$VFAz8ns&b&$@Pit;y`g!nkc2HJsiRYqpx2X{B z`sZ>X;zx1InC(dfeq8Pta3f!0YO|P%3Op084Y)!-p<7#zPLjz09Pzm=NKhnS!yYTb zz0T1PGo>Sh+o378F0hs}e3*15P1Y?V^4uV809QuhCi7$ORN(3(9)0zZo}`PXbC0r+ zVbwVKE&*AXq^K${_u70MP&g(yxVd4&Q$#y&luY8kqAqRMqrG6$3ByndNn@Mlymncd z2pN1e0sHdY?v^hv!+cPxX8Mu8%4ZR~F6{h)%gSl(p*srt3=d-RG_eJ$gv zHqsC7YIfDdL@j{#s_BSO&Qbl?!->()lgg$Zrgf({np5oyPCU&5lC5U(iWN@7sJF|d zoJs=v%L}Pmku1Zk7!vzz&hS;*$PjbQHYfXz$fA*p;fQBjs&@x-ja1V}gIuMHr#ao= zS?fa5rG5-FWTuJFppxA;*{8QAAI*@EvPamTYs%cZb3u;rqS$2uivQ*=uu!zrXBJ}G< z-2Rv`5Mf*|#R3$MPP-%u@0<*S8bVci>lb+0tX=5RL#$Uk*LjHv?4^5kxbJjG+RofG z;dQzF#edM_D&e#9njS|eA5m7>U|~+imlqd0R;~Bhx~hs6(k*L!S#$@V?P(i?Tiw?G zF<+^u0qzTY!}f6^<={rZ=u@Lv2oEBBv|B%bx@T?tek7m_uR-t^in+|K0+oF3JX}6eO-r4$bEzuS-JwxOn|APR!cHr@x zw`6_n8zOi{W0oMtm*yZha6=we%)m$$?BS?up*`FmJV;QiHNV*UVMZV~eD^M5plM=B zTY-}WYggK^j-_ifr00#KjNdiFhDIH(*3l)|;hF}v%;&r&Dh-q&;RCp%iN3O+{lWK- zH~M{FcUaxZ^dB+}VA&k5u_6!!E-C1j?o`c|AnjG_ru>TX24@b=rCJIy6Sp#_lMJf3 z`7u0+P@es^JhZg5v(spnop1P7=%+F(M{)7~Lc@IVP<_V?2kpA1v)u%9Q$+2H9nv}Q zS#vo0KI+%aSh6H0bziXX_vwHRvD6UhU(2z7dKoW!gTDB!TdeImtgtGn*EL z&}=l>JXa68jZ_CtDOj+Hkh5mXKV5wEd_j7pjELVaK-GABk@h z4d`v(u1M`EzcWfoHG{2kTcJ3Mx_Yc>bYIu)9L$XL845+%#bv}2#ebvwJUJ-9@+f?z zzv&_daetW}b+UI*Gq-jQ$~eA}K+S$ez0g^vzpa~Q!BDf@4KW@xr^Mrm6Zw2hiigRE z@kVINM!+*Ynx{4s;R$SI<8xcx_n%1(`d-?$A!_?Z|L~5A|Hv0h)?t%P)dhL(X8pWg z^>vk6i=rXXM;2T3cPR->D8X0>YX$$>MQdxDt#i^L%-2 z>h`>HaaY+$)wdCZ<2S}dA6ZwKSJjf5T!91=KH3!Hiy!s2T zi7LTAf9o050>1gQs_WyT$6vFA-=>kaiave%+B)2@eR=X~&Bcl*SM|rAg>XD$U-5Kg zaE^7*Vd7X*fKQDrVm9%}x+Jb>kYU|f+mqOPFLx;d`XOrcw-6%LJjL&o+IN)&&xdR0 zv>4=7uEj|C8-a5+MGG#u%6VR5gO9N{r8=MxJc_p3JTKhPW=qu}(E$x^wyU z@WkZz6t$(H*Ynr=qUuttmsUTqCLkEtIjTNye-OGBl$)r=wfRtn*mua~;o^P6Vz+xG zSH4-@ky2StTB=)$Z#-aBZF9=MKBZld^I7HLugm2>y6UUjH@{0OBCVR3_=UJjHZK;x zu33C+3CAtP6@K%(oE#T&p+2{SBKjVqv{@mp`grWJY@x*?>E6eKVQa+82L?oXdS1+h zH)8veeIhT1BDko)NU07wM`q?3^4-4S$x30h46$}`#t%OFASu`(joM7f8rk_|_;iC@uYOHQAo zBTM~~x>`SzP&lS!nw+oL%5Qtg-Qs&L=$@)&UD>>{k2!Pk{REnHyZH1n#$`(KCD{k( z)}X3eY(xBYd|Fl7u86YB`1XY#EGKuWDiiB}4s<0bCgix-{`yb_m5tz;pVzU1+lRb+ z5b2#8x>vr;eqPcZGwK~p;BBG)*8cT5+H3X=MLGTap!Kgy*r~<~s*dYU@=f^Djhl9FH zfkhos?#EnP?#I%QkAM7$3u?m(_gE@K#2ObE=YW9+418b^0E4hr#F{9x3~lsrBlfX4 z+9(PzN)dw7gk6i%gtM5B7J5rbEdOWb5EvCPFi3zw3Jfw}kk`VfDC+moqQpD2$M!<5 z?a%^)4jA;nU;qYV?X?}I-w)BEAIK?Btg=&3hOkpm0fQPCG_~v$wAbg*VgcKl^0(PVJE(JEc5X~y1!#rlyey79a-NirtR0!n?2lM}*P6uTy3YIyZ zI71X1iiNh0=LHr2Lq?T(K_@GT5_pme zElunMKG`lUC-A|M*V?XN(PJaguHfHCU_kTzX3hjXHHY7ISyJS+zKjpJm;_# zlp7yS{_OyjJSNNEfwCWw?LD9;5f6m6{!uh2?LkkXA$Sj}O+$P7g2IVEfy0Of1e%fr zp)CBEX;2$)pyyDIdr&-TGiwW%+x)H`xAb&RZeeQ|y`gS2Xg|zipvO-tDmMligQkkb zo_L4yiG?PisWfp=yWkrk^?Y@!2JXrjNxL9J83sIi97A~c5|2VZbB)+cYhTp9%&)b_6Yb29G%7 z$PH916^!Rt8twLBsn3Z60{H>9p=YG8fzfUwL%}4cJUZGl^hD?-{_}_YA5{>D474gg zj(M?8&;U|CfoLhz0S%1#?6S-NHr65!3#t`(+n#dozZ?qP@lG8ciWTrhCG4-wMQ=Vi zBa9KF2F*oXW(0!#&trq;`mzIa26KT?+He>P$sL=cG;`{J&{E-0KnlVGMqwy{=?~w> zXV!*3L#)Cb^$p;O2m>M+d?wOv@%^L63xg4zogD%AhE*=`4_{mkOo%d<1QVWG`_aa2 z9?HcFpU9E_OT?535OEhri?E;OqP=^Np_Dp@1p=|*gFx(OyoWG4{oO*WAn|_A{FgD=w&!SntFiKP{3ykD=M)bm>zW1m|JApvK6c`|ZGd68MooF&0 zE1@l$fPpw9(Lv3?U<|0=U>Ghc34AJfp`BgJga2Zu27&l4fI#QZ7$&wpRs^55D+dAW zKJh+glN0?boY1ya8&{&D$w8oYuD`PqH2PQ>2el4?;h&v=0f<9P!ptL?@?r?}>4Qd_ z#unUtDgv0!$ICdS8rSfO)CTLpf&DhYrY@Kt!8YX#Dkc8mN3aB>s+a zj}M1x>}UPuVg(GA?i_NMP?|p=ME~;lq`djtpe!ZInFBZ@ExfE z1rYhMGicw<;+iu&fH#-5=-*RiC?Dy_D*cD4D0<@Em4R1C1n>$u`{+2C9jP6#!6?s8 z)g~suNd`P>ia-Eyp9vmnnAZ!*D2{c|2Sx&9 zFU&2^BeoLzspN)!g(*ooevk!fstL)zcPS2q!2x6acNn16PL*QEucM=Py#VSi2aFM2 zm64yS%1)(A^iC5h`0RTCug-K}{CS@p8Cc0X^i}Y96=?C@*PT8HKr|N^XII{pe<=PR z{6w#wpA*RJ*(f0{Ah_h>p!ENWl4=+CN)RCkbPkAEo-gz?(3#5vT#8z}A{u^Ap11b3Jm1{}lx1C#@jOaK4? delta 12867 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 diff --git a/patterns/204c22beaccdfd22727af378_labels/labels.zip b/patterns/204c22beaccdfd22727af378_labels/labels.zip index a979d99db683e707556174ea03fcb5a2e29ce595..32e9da660d996b17911acb9f0b639a1c146801b2 100644 GIT binary patch delta 5376 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 g&BphrjLB|JoXhaZlompx?s?M0q8WC3IG5A delta 8397 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 diff --git a/patterns/4c65de021d362462324a3a5f_authStatesFile/SendSamlResponseWithErrorState.xml b/patterns/4c65de021d362462324a3a5f_authStatesFile/SendSamlResponseWithErrorState.xml index 1e5ed6b..e65e67d 100644 --- a/patterns/4c65de021d362462324a3a5f_authStatesFile/SendSamlResponseWithErrorState.xml +++ b/patterns/4c65de021d362462324a3a5f_authStatesFile/SendSamlResponseWithErrorState.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/patterns/4f6692a69e4f33c8ed4c145f_script/responseHeaderPostProcessing.lua b/patterns/4f6692a69e4f33c8ed4c145f_script/responseHeaderPostProcessing.lua new file mode 100644 index 0000000..ce29239 --- /dev/null +++ b/patterns/4f6692a69e4f33c8ed4c145f_script/responseHeaderPostProcessing.lua @@ -0,0 +1,12 @@ +function outputHeader(request, response) + trace = request:getTracer() + + -- rename Set-Cookie2 header + local setCookieHeader = response:getHeader("Set-Cookie2") + if (setCookieHeader ~= nil) then + trace:debug("Set a new cookie: " .. setCookieHeader) + response:addHeader("Set-Cookie", setCookieHeader) + response:removeHeader("Set-Cookie2") + end + +end \ No newline at end of file diff --git a/patterns/4fcfadb4a5c946ead7e6e995_labels/labels.zip b/patterns/4fcfadb4a5c946ead7e6e995_labels/labels.zip index a979d99db683e707556174ea03fcb5a2e29ce595..32e9da660d996b17911acb9f0b639a1c146801b2 100644 GIT binary patch delta 5376 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 g&BphrjLB|JoXhaZlompx?s?M0q8WC3IG5A delta 8397 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 diff --git a/patterns/6d83506dfcc430c12d81dfa3_authStatesFile/AskMobileNumber.xml b/patterns/6d83506dfcc430c12d81dfa3_authStatesFile/AskMobileNumber.xml index 625bd28..70a4c19 100644 --- a/patterns/6d83506dfcc430c12d81dfa3_authStatesFile/AskMobileNumber.xml +++ b/patterns/6d83506dfcc430c12d81dfa3_authStatesFile/AskMobileNumber.xml @@ -2,8 +2,9 @@ - - + + + @@ -13,5 +14,5 @@ - + diff --git a/patterns/6d83506dfcc430c12d81dfa3_resources/askMobileNumber.groovy b/patterns/6d83506dfcc430c12d81dfa3_resources/askMobileNumber.groovy index 46cd9f0..95630dc 100644 --- a/patterns/6d83506dfcc430c12d81dfa3_resources/askMobileNumber.groovy +++ b/patterns/6d83506dfcc430c12d81dfa3_resources/askMobileNumber.groovy @@ -6,6 +6,15 @@ import ch.nevis.idm.client.HTTPRequestWrapper import groovy.json.JsonSlurper import groovy.xml.XmlSlurper +def getHeader(String name) { + def inctx = request.getLoginContext() + // case-insensitive lookup of HTTP headers + def map = new TreeMap<>(String.CASE_INSENSITIVE_ORDER) + map.putAll(inctx) + return map['connection.HttpHeader.' + name] +} + + // Accounting def requester = session['ch.nevis.auth.saml.request.scoping.requesterId'] ?: 'unknown' def requestId = session['ch.nevis.auth.saml.request.id'] ?: 'unknown' @@ -28,7 +37,45 @@ if (mobile) { response.setResult('done') return } -if (inargs['submit'] && inargs['mobile']) { + +if (!inargs['submit'] && (!inargs['mobile'] || !inargs['mobile'].isEmpty()) && inargs['language'] && inargs['language'] != session['ch.nevis.session.user.language']) { + // language switch, nothing else to do, just display again the GUI + response.setStatus(AuthResponse.AUTH_CONTINUE) + return +} + +// TODO/haburger/2024-11-24: check/adapt value of skip checkbox +if (inargs['submit'] && (!inargs['mobile'] || inargs['mobile'].isEmpty()) && inargs['skip'] && inargs['skip'] == 'true') { + // no mobile, and user wants to skip it + + LOG.info("Event='NOMOBILENUMBER', Requester='${requester}', RequestId='${requestId}', User=${user}, SourceIp=${sourceIp}, UserAgent='${userAgent}'") + + // persistent cookie for 30d; + def agovSkipAskingMobileCookie = "agovSkipAskingMobile=true; Domain=${parameters.get('cookie.domain')}; Path=/; Max-Age=2592000; SameSite=Strict; Secure; HttpOnly" + // setHeader doesn't support multiple headers with the same name, so we use + // a different one, and rewrite it in the proxy with Lua + response.setHeader('Set-Cookie2', agovSkipAskingMobileCookie) + response.setResult('done') + return +} + +def agovSkipAskingMobileCookie = 'missing' + +if (getHeader('cookie') != null) { + def cookies = getHeader('cookie') + if (cookies.matches('^.*agovSkipAskingMobile=([^;]+).*$')) { + agovSkipAskingMobileCookie = cookies.replaceAll('^.*agovSkipAskingMobile=([^;]+).*$', '$1') + } +} +if (agovSkipAskingMobileCookie == 'true') { + // Don't aske the user again... + LOG.info("Event='SKIPPEDMOBILENUMBER', Requester='${requester}', RequestId='${requestId}', User=${user}, SourceIp=${sourceIp}, UserAgent='${userAgent}'") + response.setResult('done') + return +} + + +if (inargs['submit'] && inargs['mobile'] && !inargs['mobile'].isEmpty()) { String result def patchBdy = "{\"contacts\":{\"mobile\":\"${inargs['mobile']?.trim()}\"},\"modificationComment\":\"added mobile number from user during request ${requestId}\"}" diff --git a/patterns/7a913eec7f78ce674cd87854_authStatesFile/IDP_IDP_Status_Check_State.xml b/patterns/7a913eec7f78ce674cd87854_authStatesFile/IDP_IDP_Status_Check_State.xml index 1af8a28..a5898a8 100644 --- a/patterns/7a913eec7f78ce674cd87854_authStatesFile/IDP_IDP_Status_Check_State.xml +++ b/patterns/7a913eec7f78ce674cd87854_authStatesFile/IDP_IDP_Status_Check_State.xml @@ -4,6 +4,6 @@ - + diff --git a/patterns/826166d230a6a4849f2837ae_authStatesFile/returnTimeoutButKeepSessionState.xml b/patterns/826166d230a6a4849f2837ae_authStatesFile/returnTimeoutButKeepSessionState.xml index dafeec6..955feea 100644 --- a/patterns/826166d230a6a4849f2837ae_authStatesFile/returnTimeoutButKeepSessionState.xml +++ b/patterns/826166d230a6a4849f2837ae_authStatesFile/returnTimeoutButKeepSessionState.xml @@ -2,6 +2,6 @@ - + diff --git a/patterns/9ff0369f3cf662f95d94ff09_authStatesFile/EnsureRecoveryCode.xml b/patterns/9ff0369f3cf662f95d94ff09_authStatesFile/EnsureRecoveryCode.xml index a02ff3c..2fd695a 100644 --- a/patterns/9ff0369f3cf662f95d94ff09_authStatesFile/EnsureRecoveryCode.xml +++ b/patterns/9ff0369f3cf662f95d94ff09_authStatesFile/EnsureRecoveryCode.xml @@ -35,7 +35,7 @@ - + diff --git a/patterns/Auth_Realm_Main_IDP_4fcfadb4a5c946ead7e6e995.yml b/patterns/Auth_Realm_Main_IDP_4fcfadb4a5c946ead7e6e995.yml index b4e57fa..11b6966 100644 --- a/patterns/Auth_Realm_Main_IDP_4fcfadb4a5c946ead7e6e995.yml +++ b/patterns/Auth_Realm_Main_IDP_4fcfadb4a5c946ead7e6e995.yml @@ -24,6 +24,6 @@ pattern: cookieName: "agov" initialSessionTimeout: "var://idp-authentication-session-timeout" sessionTimeout: "30m" - langCookieDomain: "var://auth_realm_main_idp-language-cookie-domain" + langCookieDomain: "var://agov-language-cookie-domain" resetAuthenticationCondition: "#{ (inargs.containsKey('SAMLRequest') and session.containsKey('ch.nevis.auth.saml.request.id'))\ \ ? 'restart' : '' }" diff --git a/patterns/Ensure_Recovery_Code_9ff0369f3cf662f95d94ff09.yml b/patterns/Ensure_Recovery_Code_9ff0369f3cf662f95d94ff09.yml index 7dd2db3..179af8b 100644 --- a/patterns/Ensure_Recovery_Code_9ff0369f3cf662f95d94ff09.yml +++ b/patterns/Ensure_Recovery_Code_9ff0369f3cf662f95d94ff09.yml @@ -9,9 +9,9 @@ pattern: authStatesFile: "res://9ff0369f3cf662f95d94ff09#authStatesFile" parameters: "var://ensure_recovery_code-parameters" onSuccess: - - "pattern://6d83506dfcc430c12d81dfa3" + - "pattern://2cdd910036aa06b102863a4f" onFailure: - - "pattern://6d83506dfcc430c12d81dfa3" + - "pattern://2cdd910036aa06b102863a4f" resources: "res://9ff0369f3cf662f95d94ff09#resources" keyObjects: - "pattern://bcfe78c02cbe0588528bc3cb" diff --git a/patterns/IdP_ResponseHeader_Post_Processing_4f6692a69e4f33c8ed4c145f.yml b/patterns/IdP_ResponseHeader_Post_Processing_4f6692a69e4f33c8ed4c145f.yml new file mode 100644 index 0000000..b4a1c15 --- /dev/null +++ b/patterns/IdP_ResponseHeader_Post_Processing_4f6692a69e4f33c8ed4c145f.yml @@ -0,0 +1,8 @@ +schemaVersion: "1.0" +pattern: + id: "4f6692a69e4f33c8ed4c145f" + className: "ch.nevis.admin.v4.plugin.nevisproxy.patterns.LuaPattern" + name: "IdP_ResponseHeader_Post_Processing" + properties: + script: "res://4f6692a69e4f33c8ed4c145f#script" + phase: "BEFORE_SANITATION" diff --git a/patterns/NotUsed_Auth_Realm_06aeae2d799e492f5580d03b.yml b/patterns/NotUsed_Auth_Realm_06aeae2d799e492f5580d03b.yml index 2581283..633653d 100644 --- a/patterns/NotUsed_Auth_Realm_06aeae2d799e492f5580d03b.yml +++ b/patterns/NotUsed_Auth_Realm_06aeae2d799e492f5580d03b.yml @@ -20,4 +20,4 @@ pattern: logrend: - "pattern://097929211988398a87bcbb0c" initialSessionTimeout: "var://idp-authentication-session-timeout" - langCookieDomain: "var://auth_realm_main_idp-language-cookie-domain" + langCookieDomain: "var://agov-language-cookie-domain" diff --git a/patterns/Virtual_Host_idp_1f0702aaabef60a615abf41f.yml b/patterns/Virtual_Host_idp_1f0702aaabef60a615abf41f.yml index 3284825..e3b2294 100644 --- a/patterns/Virtual_Host_idp_1f0702aaabef60a615abf41f.yml +++ b/patterns/Virtual_Host_idp_1f0702aaabef60a615abf41f.yml @@ -19,6 +19,7 @@ pattern: - "pattern://bcca48cd422668aa2f78ea42" - "pattern://3d45f250b698005a29eb58b6" - "pattern://162d4ee18e469c146df153cc" + - "pattern://4f6692a69e4f33c8ed4c145f" - "pattern://0d3511bed6798a78cc3237f6" - "pattern://64f16c5d4c99eff0acbc8fdf" - "pattern://0573c2491a56e59daca47e95" diff --git a/patterns/_Auth_Realm_Recovery_204c22beaccdfd22727af378.yml b/patterns/_Auth_Realm_Recovery_204c22beaccdfd22727af378.yml index 165b6c7..9cfd6fd 100644 --- a/patterns/_Auth_Realm_Recovery_204c22beaccdfd22727af378.yml +++ b/patterns/_Auth_Realm_Recovery_204c22beaccdfd22727af378.yml @@ -16,6 +16,6 @@ pattern: labels: "res://204c22beaccdfd22727af378#labels" cookieName: "agovRecovery" cookieSameSite: "Lax" - langCookieDomain: "var://auth_realm_main_idp-language-cookie-domain" + langCookieDomain: "var://agov-language-cookie-domain" resetAuthenticationCondition: "#{ (inargs.containsKey('cd')) ? 'restart' : ''\ \ }" diff --git a/patterns/b87d0d2b640e8e545ad70234_authStatesFile/SendSamlResponseWithAssertionState.xml b/patterns/b87d0d2b640e8e545ad70234_authStatesFile/SendSamlResponseWithAssertionState.xml index c5690f0..88a217a 100644 --- a/patterns/b87d0d2b640e8e545ad70234_authStatesFile/SendSamlResponseWithAssertionState.xml +++ b/patterns/b87d0d2b640e8e545ad70234_authStatesFile/SendSamlResponseWithAssertionState.xml @@ -3,7 +3,7 @@ - + \ No newline at end of file diff --git a/variables.yml b/variables.yml index 0723a4b..9ad399f 100644 --- a/variables.yml +++ b/variables.yml @@ -1,5 +1,12 @@ schemaVersion: "1.0" variables: + agov-language-cookie-domain: + className: "ch.nevis.admin.v4.plugin.base.generation.property.SimpleTextProperty" + parameters: + minRequired: 0 + maxAllowed: 1 + value: ".agov-d.azure.adnovum.net" + requireOverloading: true agov_dev_idm-db-management: className: "ch.nevis.admin.v4.plugin.base.generation.property.SelectionProperty" parameters: @@ -92,13 +99,6 @@ variables: maxAllowed: 1 value: "nevisauth" requireOverloading: true - auth_realm_main_idp-language-cookie-domain: - className: "ch.nevis.admin.v4.plugin.base.generation.property.SimpleTextProperty" - parameters: - minRequired: 0 - maxAllowed: 1 - value: ".agov-d.azure.adnovum.net" - requireOverloading: true auth_realm_main_sts_parameters: className: "ch.nevis.admin.v4.plugin.base.generation.property.TextProperty" parameters: