From 2c75ef42fc1f46a382bb6182a9ebae331abc7fc8 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 7 Apr 2026 11:34:03 -0400 Subject: [PATCH 1/3] Add CODEOWNERS --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..c5f1403 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @oschwartz10612 @miloschwartz From 730dbb6a4c22df765e46abf96bd9ad83b120566e Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 29 May 2026 15:14:59 -0700 Subject: [PATCH 2/3] Add header for the user id --- main.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/main.go b/main.go index d79253c..604d10e 100644 --- a/main.go +++ b/main.go @@ -61,6 +61,7 @@ type VerifyResponse struct { HeaderAuthChallenged bool `json:"headerAuthChallenged"` Valid bool `json:"valid"` RedirectURL *string `json:"redirectUrl"` + UserId *string `json:"userId,omitempty"` Username *string `json:"username,omitempty"` Email *string `json:"email,omitempty"` Name *string `json:"name,omitempty"` @@ -267,6 +268,7 @@ func (p *Badger) ServeHTTP(rw http.ResponseWriter, req *http.Request) { req.Header.Del("Remote-Email") req.Header.Del("Remote-Name") req.Header.Del("Remote-Role") + req.Header.Del("Remote-User-Id") if result.Data.ResponseHeaders != nil { for key, value := range result.Data.ResponseHeaders { @@ -296,6 +298,10 @@ func (p *Badger) ServeHTTP(rw http.ResponseWriter, req *http.Request) { if result.Data.Valid { + if result.Data.UserId != nil { + req.Header.Add("Remote-User-Id", *result.Data.UserId) + } + if result.Data.Username != nil { req.Header.Add("Remote-User", *result.Data.Username) } From 8b2f4e1536752d1b0d88dacfafcbd743d4fe8709 Mon Sep 17 00:00:00 2001 From: Owen Date: Sat, 30 May 2026 12:10:18 -0700 Subject: [PATCH 3/3] Dont strip session --- go.mod | Bin 40 -> 30720 bytes main.go | 9 ++++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4d701b0442c83bf69abbe122e133cf998261d6ff..e49b5f9216dd3172ed5227867933e45c55227145 100644 GIT binary patch literal 30720 zcmeHQdsiDrvd_QFr|8I=MEIaV5-(e^eJ=)KYZrsA5ccK}pD;)xG_f?J%t&B1>+gPl zRn=4$~r(td(keTW)=O$K8JBRyXU_(gqh+QCLIyHWk*b!n#|pRttq& zH8%&hU2|*In!8JdwP&XBGq<)|cWck{Q`fN< zPW}Fd8pOV@qJioSz4+SSP}4|x;hmcJae@ZX)zk|@vM8SFp(h8B(;?6#(O`P(#Xf-h z%0qv>zym(jk9xDQA5Og~^*0Dcexl0Lp|473xFan};Lye<;FreQ)4{I{J8U@L4L-hkf zeKnf`GND4|;|7gmGm2H>k46qK1fZM8no-9v#2@em{c9E_RB}6v#`%#12`qCQqDwFZ z5d8=&;~szZds8YQ$_LSC6y4I$dQsR9XuL_oak{ATuA&>C$0E`VqbW#bcC!GO2$8C; zN`~HOq^__oFvHL<*o&fcI2hgR3a(Q)CEb`rG51#-ri=dHHr3hbQTM}sr>R3LTHqO*U}{Xv}`sr{25)Zbbsha0N-_jadwcBW1{PU~I! zxYa~i>*V10{IGTMM!iP6lT)a03yKV+-BU#!YE-Qz+8wEP&CbDFVBUY-I&O7;*l>&Z|rMqMI3Mn=3(>b zI(`z(;-0TjcKlyv@IcyL?2UYYS(v1{Xn4x?}0IOz~Knyktg#o@^#A znPxedIo&Yy%&U4fKGH;IjTJc4g{&H%E9W6wBh%Dp)pAG+TsfsSJm_IwUzOw8k2r(#Ic`BEa$& z-{qT&8Gw3mB7vLF3DS&OJOvG#Lz7oiEV~m}M&DA^LvQL?U)N;Vw5l9XcZd;|M5m$S5w|8UrB&>9X=}1_t$vPO zYioz_gSGo}3~OmhK1zc&;+SGE^L`AiO=G+Ka=S0%Q0U6u2&ejG>fI(02JST$a% zZ^d-e1`uIyWUR}7qDtBjBK*sN$RGeHbK4ex3dL>~=uwM>PMm41Taba$N}h#v)EIJE z7IZZfbL=wbuh9SgBA7yB;}x2w%JgqFHZX;zVnDKni<$}yHJtY#t(KZ$ zI^NMi0xf*hGVd>1tw`XyWj?q;E2!q$=BDBq33Wye{+AinzCM!p{-}>^csROK!2mgH z4)l~qksfve{E$MrzO#n9ua}ZVDoGF;AX5$X62VD{t086HvJA0eC?qM|CTa7aY-Itc z!<4Ywp^q(w#pIOM(chO`p9_`iKHV?W-2V$DD>U^!^sJZ+|1wo1^-L@#{{H%K?38av9@G=nTIgwNXF^9M zfsx#_0dq~1^ip|~i68dMV%SW1+OL+k9#26L?HGT_sOUh2*+&2O8S%UM#SHQC0#{o4D8h zRFV{Bz=Eq2H}R2^(asMQ5*C6-hL0pVapx@+GkN0DlH%G#F##kh8IV{VS*R1~9xY<8 zHx=`r2o25}2P7~}pqLfW|HXw%?y?~-YdUn~+L8E)feF@X>b~)(<%zpu{;YqG9Y9Vi z=FmW4wT-%>$QoD|xMZv~x*0oM4fX8;WMrUiKMdyiTQJonpUkdnwb^i^j(ANqq}ywh z7bP!h!^|@(aNl8~AwDV-dBolY6ODz=78S~|p-L@y9Eb)+qBODMDs1gB+!?l4XNdt} z3C0XS$W!47MK_#spa=55AB1EAxcO|=0_AONZhn(|ld!JBDoPTIEfSkCnXzP1*%ndeiE-0%YLk%}kA?lt z&6)q=F6SvkBw(TCuGk{bWVhMh$%m^(N^G9iXgUAn<6Hy+s+muNmPLIP0%^Gx7lfFh zVOnI>7K+FUw8;pJ!gA?NG*xE)50{bZl}dowZh_s4pmTQX zD4Kz1YX%K9HJl4*H)dI2mKtSeZ77*ULNWF} z`Q^DB3Ajuu#Yq~`DOsS|Q{-h$cB)8+FnA>J%B*?Gx_YIm;`ZxKE(pm-SU~}}sD4z4 zN6z5$N$kM~W`Y2mD&byx{X@8EqG(S%qIn&8@J46%sgckhMxtw}q!9*d*jyOGHqBJ)4D#%NcQVWb+ zjkL?0^P%yOEz1KC9xAo4NZQ=)OiBm@Ir6l<$uf{OQ0`p3e+!ZJbOg@wceKlyL!@_6CHda#k@C|}_#>0lE9hd2jhchdC<8;fj9 zE^P1NBhS#{(qu#6(49dC;Su97OyZp@PVNDm0urX>_n!WZvHn3~%?%!QIdcca7?}0i z`5jK+pCd8SH3TTkeRjl39e*56{R*X2DATf}nzss8)StlMuc)Rp|B7nrywd6e!iW@( zvG}KkrP_knbM<#SKt&zPmJTq$tUaPyDIL;(em{y;E9W4Il|mj{F9+YoGk&b_eFLNGQ>BEN)73xjHk#k+b`I(>xh4)6|mp_)w{=<(Y=9``iDZ%!B zmo{)k@4f)C$i;_uUoIU`N;{lZx;O+xbWna92aU#~@A<4TCgsc7bWnN5BcY*iib6Oh zS#6o0=OK+8?$JMd?bB({^2JAr{x~WK5iJ?Q+Ax*nTufnVu!ya5VE9G(BWydeV_Tf% zc7LGTG7EN%mU+$~7ld#1Y83E(yj-Xp23zVeFC8HigNZgRGPikIliVm%=h}hdC3{g?0(5jOa zTxamIT5Fd?TW8armgcpEx-aTxQb$DaeN&6ScXERk-rBR1tMi%3VkUJiIwA|B{rQz4 zRFItcy;f z%`i=M@F8+y4HJWi_8MAyQ|h1DH}Mfxk`$gnz4 z69c0wlZ6TGT-v3`ZW$#J&F0CDE_fswe~FZU&a9$ayQs9V#~ATuVJ(TRLm<-Uy5=x- zqfwILn#AYji?0t)54u0Jn^-=^qgT!g^9xJ)D~AG|7dTIZD>b-uLknT)ynBR|P*+WZ z>BxU&%r^|a>$)#CrBoUx(>p-$XF|qF>0i^YR5XBODg$pEjP4q0pDqKz5B9Cx`hGI<05=%#z16(r>Q(Jh9i z>XXlE8~?@ES6;cg!T-3m^$cY;7OyY_GkUs>*Xw01(&6=yDvmiN-cVr_T69`S8$({xEGt`j6$DD;W)7`lYFT~UI_c;cpCTiEf# zf+4OIysVglB47t|GA3`AZ@Yb-+oI#-v zB6=YEnpT8Ln}GTA(L^r6Wy3XAor-gm9YGh#HZ+jZ=8Z~XEDI~+J$Q-447S86O$0g7 zPWTzplvB#PwQ*HrPFBSHLQYA9H^KTq9{&KR=n~R9-Yd_#!qv+PEv_L3M(7Amss(WTyAQK2DE&V?GypkyIu=V-HqFJcCwu>%ib7poe> zlYjCXn>ws30(`F>ptQG_q#o!CO2wLOo$F@OcrclA+Vm_072nFHWHA_cy@ZCenAD#H zL2T-Hw@eP~kl?mO89c$s+Ebbtk><+Xx`M_}92 z4r$ezAel(#F6bUKCZjtaIV>0gnScdy5Jy>fke+mquP%Gf2_;r|-xR!t)M!H`*Jzzi z5Xr`h%z5IZ$vWaNE?wqs^N7ra8pnhdGG6Y6XRfiKyFvHmn zv_*$6C8tDim^B6<>y9c+cVC<8ELIZytAiv=;2bm4<4O5)#9C%(FhpjB({js$<^-3U zYL>*c9T%BGb^qr36SxVqM&L+v&x4ARyHwC%IIyVIdPk2%*3B_({sDgxuPqz&Ty`*-N3sF?lFjF6(ldABu%D?o*slTD@+X z)}sA|HPeJ*vdWOcv1Sc*t%uhd4r=j&^2OBK&-y}i8(IYky`xb#Jlvu zhqZ}O+?#fvcqi^WM5M?^oOITADJghf;@f=paPJ6}C2U!LwOu78H#hJ2{u~Zk zsL&e8a*#bGwxOYBRKoriFDxV;a=^;o2p@4+O#6vg9@tHs^Jc+f@s%|$>c$$JP2Ew% zC-~&--8@uBPKs#_0Uj&O4RTKqT`>uHzgZ#xIbi|97xX@dmj>VAB^WxBvH<$QCMHBM zVUK{kg_NO%(MjEbbytzdh86iU?ot1z_R(qXAHHk4TZ3T-v5&O|J(FV z0Pg?enYhRIzaCH~2K5tV?i{IiK_6Fb=^>tml5IrCk>7L@+*9MUUQI?bWZG2UPmryH zHNw#XUf3v7RNdG^nizSAka7b*<4rMszlZBCOm81~TQ0$|xVg*!W?K=)*TXYIecFJW z-c>w)A}IFh%mq0h(dRpU!R8-+997s1srT&@SCg)A?iWPkU%XqB?PB7v27CmNMCX_B z=+TTkO*s-|L6Q4SPZ6big(e07IymVF+wmG8Mm3bt2*mzGC1|B!E`bd^tt1`}d&iaE9cLNf%HJ8yQvk8ab zX+Un6>8dk2yM$}HSVb=9Pf#~Fe!V1#AU%dPLZ@sv)rZD-wTS|q3%LP8bYOL$8~AD; zEcjS{A}CQ&!75G_72*vt*K{kKSn7i#JeWRG(MT`Q!$0)2lU5XbdWsE0xdig`Dd`Kp zEd);B9ws;qW?Ux_wfdJ7gpag@APJ8dffVGRin1m#n!s-Ch1kud2cmt86sJMGnOCw9-hP-V%!*whRP-rSj{Xo@aoWh%qr7UAL+%Nu9gG}S5k+W_x1K}~LmiPSSL>>~*E;=8=GiCC?d5Mh=Q zRW|`LglI=6{tcqoRd1o`m~k7NS0zoR4e{wa-0t=tbiljNuT%&?` z7whu!^3EHNob2FuL-FnoOcG^vMi4+=t8T>Pg=!(;uEPQ2SNO@ z+haL!A_obX5)nfx`9v+AftXBq^-JEnF!=}8bT(6bnTj&6mLcJTN-Io(tC*Skz7-5D zv`15eNs9zLm?*~0B>!l_lO>jXw|>72j5aJSs9DN&etL||871UH-|zc|}+9pGbAX_GFBLKlvFg2Ib ziQ1-QsuN;3k9R4x07kr#s7v!IN&AvzhVNP)@(zg^9rh^@zF<=Y1{aLQV>w8K;h8$T zONyCckD6Zf%LeW^E!Lm!pkp)UjEA{G7dW7<+D`!DQRLyWzc=z^?Kez8q65RVHURMW zDUnI<_hC;}>M&NxLV-a|avFTuW*XgkcS$-iNh7qtE%Jy_TFNks+C-)^Q_GAmi2_f(h38!7^@G^W)#b_&LVx;eDsf`$-4t z=t(@!Dkz3R_D6ggc9CGYEh$^9FI%iycQlh4*x;?GQVlP;@@uZoO1c2AwwgCz>v+HF ziC%)dQ3G=iK8Dc?Q3_uC5uVfIhsCMuhz6M?46J`a`%~Mm&L@2=>STs&CP4dP`)5=q z>w2zMYZekYvryKwD=!&3?xr+=THz)l3V3~Chiu?ak%JLK1J{Q(2~$q%q(as`X`*1l zG{&Vy{ZjNL8zOaVo(&aGFOK*%O1OI1PNnxm(UvxW*-~21jDqEfaX9tsvmeX)!#cn6 zDTcr}k|t7l{QVFdIBOnY>!#RrkKCZSU>WwrUjlQ~ba682>+nwC8a? z!6J>o2?4fhawomoz4S?lph4{Qk-kek^ECu6*;02|OaMKQr0GT1}$wRxT=Q-1>g zpTj{!8t~KT#&B>&-X8GLMMn08=y_cjteT6s@KF4|9u|GrI8X8Ox;^y#8>x28hGSi-cZQ z2U_G#kj&S|iV!YSppBC@eJc!<0{8lQ^X6mXMe zHfK-Fqq{lbxNyJP*d2k#4i^yF0pvrL0-mwdSYB90`!j^o#LE>3lV~*KsEme(Gl7fY zf1qRo?Fwyjf&;>3#v{}5iETVyLyE3L_ES|^A_i|nf$j%@1~`<#ek_zo)+`jSN{`U-PSM_dfpZ98pC@Z->AP7G0m4yTgMSH zup`yZ{wxN?&t$r>hQPChzl@ayBjo6k`Gcdbl;23*Xkx}(j~cakZWqH?1-7aV)G_-h zDNk0K1A-$a;f#)s#6$@binsCsgMZ=iiPRUIt(DGA3uJNgaCpvc?3dz_f7I+_#M4J ziZM0>h+;Mo+uGWXrN8`24Zr+Y+E`2h9<{^YIneN57Q;yGl1e8xVH`x+7Ye=B08Zyj zCcTmZ(U41+($$$EYZ_t9zkMPTjafIGXpy6IH1s-~+N16@;U6s#97}M(T=F z61pG50pxw;aW@?ALn>{^Sy$egK^ho;1Ym|#BVg&=937{XfwKN+9Ugl0cLK0j)60lJ z9*{Bt8D*0YnQG*;F3U)G5I7qh&3Z%SZjzC}_<(#6IQTz!H8&cbXz2Sh;0Vg*Af1`) z1@j!F-DX6%#KnUa_HEEsMW1La_w3=1V6t#4V=-|-cqfxj&$^XVY1ZGL@z5C>cz%^; zH%hA#SpY4TuUB?0ELXeC^lYi1-849q5BfL2c>Uk`&ALPs=YZ%F$0sOi52I;^IorS1{BwGUWmQFqREk diff --git a/main.go b/main.go index 7248719..8fdf221 100644 --- a/main.go +++ b/main.go @@ -68,6 +68,7 @@ type VerifyResponse struct { Valid bool `json:"valid"` RedirectURL *string `json:"redirectUrl"` UserId *string `json:"userId,omitempty"` + DontStripSession bool `json:"dontStripSession,omitempty"` Username *string `json:"username,omitempty"` Email *string `json:"email,omitempty"` Name *string `json:"name,omitempty"` @@ -327,9 +328,11 @@ func (p *Badger) ServeHTTP(rw http.ResponseWriter, req *http.Request) { req.Header.Add("Remote-Role", *result.Data.Role) } - p.stripSessionCookies(req) - p.stripSessionParam(req) - p.stripAccessTokenHeaders(req) + if !result.Data.DontStripSession { + p.stripSessionParam(req) + p.stripSessionCookies(req) + p.stripAccessTokenHeaders(req) + } fmt.Println("Badger: Valid session") p.next.ServeHTTP(rw, req)