diff --git a/.github/workflows/pr-check.yaml b/.github/workflows/pr-check.yaml index 1b37ae4f..c66d83d2 100644 --- a/.github/workflows/pr-check.yaml +++ b/.github/workflows/pr-check.yaml @@ -20,7 +20,7 @@ jobs: && !contains(github.event.pull_request.labels.*.name, '🐞 bug') && !contains(github.event.pull_request.labels.*.name, '📖 docs') && !contains(github.event.pull_request.labels.*.name, 'chore') - && !contains(github.event.pull_request.labels.*.name, '🛠 dependencies') + && !contains(github.event.pull_request.labels.*.name, '🛠️ dependencies') run: >- echo One of the following labels is missing on this PR: breaking-change diff --git a/go.mod b/go.mod index 46d6d7db..0c60dd3e 100644 --- a/go.mod +++ b/go.mod @@ -12,9 +12,8 @@ require ( github.com/knadh/koanf/v2 v2.1.0 github.com/madflojo/testcerts v1.1.1 github.com/stretchr/testify v1.8.4 - github.com/zitadel/logging v0.5.0 - github.com/zitadel/oidc/v3 v3.12.0 - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 + github.com/zitadel/logging v0.6.0 + github.com/zitadel/oidc/v3 v3.13.0 golang.org/x/net v0.21.0 golang.org/x/oauth2 v0.17.0 golang.org/x/text v0.14.0 @@ -45,7 +44,7 @@ require ( go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect - golang.org/x/crypto v0.19.0 // indirect + golang.org/x/crypto v0.20.0 // indirect golang.org/x/sys v0.17.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/protobuf v1.32.0 // indirect diff --git a/go.sum b/go.sum index 000b00ca..aa429fb7 100644 --- a/go.sum +++ b/go.sum @@ -76,10 +76,10 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zitadel/logging v0.5.0 h1:Kunouvqse/efXy4UDvFw5s3vP+Z4AlHo3y8wF7stXHA= -github.com/zitadel/logging v0.5.0/go.mod h1:IzP5fzwFhzzyxHkSmfF8dsyqFsQRJLLcQmwhIBzlGsE= -github.com/zitadel/oidc/v3 v3.12.0 h1:gI7Thbbm0HStd3kmkpASWuBY0yM9YUDQWhYMmzOg7+Y= -github.com/zitadel/oidc/v3 v3.12.0/go.mod h1:mFCrFvb6KA9A4gZisSXI+0T1zz9z09OmjQ804kJD/KU= +github.com/zitadel/logging v0.6.0 h1:t5Nnt//r+m2ZhhoTmoPX+c96pbMarqJvW1Vq6xFTank= +github.com/zitadel/logging v0.6.0/go.mod h1:Y4CyAXHpl3Mig6JOszcV5Rqqsojj+3n7y2F591Mp/ow= +github.com/zitadel/oidc/v3 v3.13.0 h1:AtKIS3T41Osei04164PjEgmsvFTo48K3BMNxzGDCRVs= +github.com/zitadel/oidc/v3 v3.13.0/go.mod h1:dJiXws5tRruzluozMIFg+AVOgxCSe0tvMpzBvU1gQN8= github.com/zitadel/schema v1.3.0 h1:kQ9W9tvIwZICCKWcMvCEweXET1OcOyGEuFbHs4o5kg0= github.com/zitadel/schema v1.3.0/go.mod h1:NptN6mkBDFvERUCvZHlvWmmME+gmZ44xzwRXwhzsbtc= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= @@ -90,10 +90,9 @@ go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= +golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/go.work.sum b/go.work.sum index 071d7bc7..b016f7d9 100644 --- a/go.work.sum +++ b/go.work.sum @@ -543,6 +543,7 @@ github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= @@ -581,6 +582,7 @@ github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/knadh/koanf/v2 v2.0.0-20240110174456-1d7909b70777/go.mod h1:HN9uZ+qFAejH1e4G41gnoffIanINWQuONLXiV7kir6k= github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= github.com/lyft/protoc-gen-star/v2 v2.0.3 h1:/3+/2sWyXeMLzKd1bX+ixWKgEMsULrIivpDsuaF441o= github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= @@ -602,12 +604,17 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCb github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/spf13/afero v1.3.3 h1:p5gZEKLYoL7wh8VrJesMaYeNxdEd1v3cb4irOk9zB54= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= @@ -652,11 +659,14 @@ golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhp golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -666,6 +676,7 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= @@ -675,9 +686,14 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+v golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -693,6 +709,7 @@ golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= @@ -702,6 +719,7 @@ golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= @@ -710,6 +728,7 @@ google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9 google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/api v0.160.0/go.mod h1:0mu0TpK33qnydLvWqbImq2b1eQ5FHRSDCBzAxX9ZHyw= google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc h1:8DyZCyvI8mE1IdLy/60bS+52xfymkE72wv1asokgtao= google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= @@ -761,5 +780,7 @@ google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQf google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc h1:/hemPrYIhOhy8zYrNj+069zDB68us2sMGsfkFJO0iZs= diff --git a/internal/oauth2/handler.go b/internal/oauth2/handler.go index 01d92a12..88c94635 100644 --- a/internal/oauth2/handler.go +++ b/internal/oauth2/handler.go @@ -15,7 +15,6 @@ import ( "github.com/jkroepke/openvpn-auth-oauth2/internal/config" "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/idtoken" - "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/log" "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/types" "github.com/jkroepke/openvpn-auth-oauth2/internal/state" "github.com/jkroepke/openvpn-auth-oauth2/internal/ui" @@ -165,7 +164,8 @@ func (p *Provider) oauth2Callback() http.Handler { slog.String("session_id", session.Client.SessionID), slog.String("common_name", session.CommonName), ) - ctx = logging.ToContext(ctx, log.NewZitadelLogger(logger)) + + ctx = logging.ToContext(ctx, logger) id := strconv.FormatUint(session.Client.CID, 10) if p.conf.OAuth2.Refresh.UseSessionID && session.Client.SessionID != "" { diff --git a/internal/oauth2/log/logger.go b/internal/oauth2/log/logger.go deleted file mode 100644 index 6260eda3..00000000 --- a/internal/oauth2/log/logger.go +++ /dev/null @@ -1,70 +0,0 @@ -package log - -import ( - "context" - "log/slog" - - expslog "golang.org/x/exp/slog" -) - -type SLogHandler struct { - logger *slog.Logger - levelMapper map[expslog.Level]slog.Level -} - -func NewZitadelLogger(logger *slog.Logger) *expslog.Logger { - return expslog.New(newSlogHandler(logger)) -} - -func newSlogHandler(logger *slog.Logger) *SLogHandler { - return &SLogHandler{ - logger, - map[expslog.Level]slog.Level{ - expslog.LevelDebug: slog.LevelDebug, - expslog.LevelInfo: slog.LevelInfo, - expslog.LevelWarn: slog.LevelWarn, - expslog.LevelError: slog.LevelError, - }, - } -} - -func (handler SLogHandler) Enabled(ctx context.Context, level expslog.Level) bool { - return handler.logger.Enabled(ctx, handler.convertLevel(level)) -} - -func (handler SLogHandler) Handle(ctx context.Context, expRecord expslog.Record) error { - record := slog.NewRecord(expRecord.Time, handler.convertLevel(expRecord.Level), expRecord.Message, expRecord.PC) - - return handler.logger.Handler().Handle(ctx, record) //nolint:wrapcheck -} - -func (handler SLogHandler) WithAttrs(attrs []expslog.Attr) expslog.Handler { - logger := handler.logger - for _, attr := range attrs { - logger = logger.With(attr.Key, attr.Value.String()) - } - - return &SLogHandler{logger, handler.levelMapper} -} - -func (handler SLogHandler) WithGroup(name string) expslog.Handler { - return &SLogHandler{handler.logger.WithGroup(name), handler.levelMapper} -} - -func (handler SLogHandler) convertLevel(expLevel expslog.Level) slog.Level { - level, ok := handler.levelMapper[expLevel] - if ok { - return level - } - - bytes, err := expLevel.MarshalText() - if err != nil { - panic(err) - } - - if err = level.UnmarshalText(bytes); err != nil { - panic(err) - } - - return level -} diff --git a/internal/oauth2/provider.go b/internal/oauth2/provider.go index aa6bb6e6..8ef7c189 100644 --- a/internal/oauth2/provider.go +++ b/internal/oauth2/provider.go @@ -12,7 +12,6 @@ import ( "time" "github.com/jkroepke/openvpn-auth-oauth2/internal/config" - "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/log" "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/providers/generic" "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/providers/github" "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/providers/google" @@ -23,7 +22,6 @@ import ( "github.com/zitadel/oidc/v3/pkg/client/rp" httphelper "github.com/zitadel/oidc/v3/pkg/http" "github.com/zitadel/oidc/v3/pkg/oidc" - expslog "golang.org/x/exp/slog" "golang.org/x/oauth2" ) @@ -68,11 +66,9 @@ func (p *Provider) Initialize(openvpn OpenVPN) error { }) } - providerLogger := log.NewZitadelLogger(p.logger) - basePath := p.conf.HTTP.BaseURL.JoinPath("/oauth2/") redirectURI := basePath.JoinPath("/callback").String() - options := p.getProviderOptions(providerLogger, basePath) + options := p.getProviderOptions(basePath) scopes := p.conf.OAuth2.Scopes if len(scopes) == 0 { @@ -95,7 +91,7 @@ func (p *Provider) Initialize(openvpn OpenVPN) error { } p.RelyingParty, err = rp.NewRelyingPartyOIDC( - logging.ToContext(context.Background(), providerLogger), + logging.ToContext(ctx, p.logger), p.conf.OAuth2.Issuer.String(), p.conf.OAuth2.Client.ID, p.conf.OAuth2.Client.Secret.String(), @@ -127,7 +123,7 @@ func (p *Provider) Initialize(openvpn OpenVPN) error { return nil } -func (p *Provider) getProviderOptions(providerLogger *expslog.Logger, basePath *url.URL) []rp.Option { +func (p *Provider) getProviderOptions(basePath *url.URL) []rp.Option { cookieKey := []byte(p.conf.HTTP.Secret) cookieOpt := []httphelper.CookieHandlerOpt{ httphelper.WithMaxAge(int(p.conf.OpenVpn.AuthPendingTimeout.Seconds()) + 5), @@ -161,7 +157,7 @@ func (p *Provider) getProviderOptions(providerLogger *expslog.Logger, basePath * } options := []rp.Option{ - rp.WithLogger(providerLogger), + rp.WithLogger(p.logger), rp.WithCookieHandler(cookieHandler), rp.WithVerifierOpts(verifierOpts...), rp.WithAuthStyle(p.conf.OAuth2.AuthStyle.AuthStyle()), diff --git a/internal/oauth2/providers/generic/refresh.go b/internal/oauth2/providers/generic/refresh.go index 007a6e3e..ce0e6a6f 100644 --- a/internal/oauth2/providers/generic/refresh.go +++ b/internal/oauth2/providers/generic/refresh.go @@ -7,7 +7,6 @@ import ( "log/slog" "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/idtoken" - "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/log" "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/types" "github.com/zitadel/logging" "github.com/zitadel/oidc/v3/pkg/client/rp" @@ -20,7 +19,7 @@ func (p *Provider) GetRefreshToken(tokens *oidc.Tokens[*idtoken.Claims]) string // Refresh initiates a non-interactive authentication against the sso provider. func (p *Provider) Refresh(ctx context.Context, logger *slog.Logger, refreshToken string, relyingParty rp.RelyingParty) (*oidc.Tokens[*idtoken.Claims], error) { - ctx = logging.ToContext(ctx, log.NewZitadelLogger(logger)) + ctx = logging.ToContext(ctx, logger) tokens, err := rp.RefreshTokens[*idtoken.Claims](ctx, relyingParty, refreshToken, "", "") // OIDC spec says that nonce is optional for refresh tokens diff --git a/internal/oauth2/refresh.go b/internal/oauth2/refresh.go index b3c8976f..a24f29f1 100644 --- a/internal/oauth2/refresh.go +++ b/internal/oauth2/refresh.go @@ -8,7 +8,6 @@ import ( "strconv" "time" - "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/log" "github.com/jkroepke/openvpn-auth-oauth2/internal/oauth2/types" "github.com/jkroepke/openvpn-auth-oauth2/internal/openvpn/connection" "github.com/jkroepke/openvpn-auth-oauth2/internal/state" @@ -89,7 +88,7 @@ func (p *Provider) ClientDisconnect(logger *slog.Logger, client connection.Clien logger.Debug("revoke refresh token") - ctx := logging.ToContext(context.Background(), log.NewZitadelLogger(logger)) + ctx := logging.ToContext(context.Background(), logger) if err = rp.RevokeToken(ctx, p.RelyingParty, refreshToken, "refresh_token"); err != nil { if !errors.Is(err, rp.ErrRelyingPartyNotSupportRevokeCaller) { logger.Warn("refresh token revoke error: " + err.Error()) diff --git a/pkg/plugin/go.mod b/pkg/plugin/go.mod index d422c771..53a967a0 100644 --- a/pkg/plugin/go.mod +++ b/pkg/plugin/go.mod @@ -26,11 +26,10 @@ require ( github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/muhlemmer/gu v0.3.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/zitadel/logging v0.5.0 // indirect - github.com/zitadel/oidc/v3 v3.12.0 // indirect + github.com/zitadel/logging v0.6.0 // indirect + github.com/zitadel/oidc/v3 v3.13.0 // indirect github.com/zitadel/schema v1.3.0 // indirect - golang.org/x/crypto v0.19.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/crypto v0.20.0 // indirect golang.org/x/oauth2 v0.17.0 // indirect golang.org/x/sys v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/pkg/plugin/go.sum b/pkg/plugin/go.sum index 2670f74d..a70c277a 100644 --- a/pkg/plugin/go.sum +++ b/pkg/plugin/go.sum @@ -74,10 +74,10 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zitadel/logging v0.5.0 h1:Kunouvqse/efXy4UDvFw5s3vP+Z4AlHo3y8wF7stXHA= -github.com/zitadel/logging v0.5.0/go.mod h1:IzP5fzwFhzzyxHkSmfF8dsyqFsQRJLLcQmwhIBzlGsE= -github.com/zitadel/oidc/v3 v3.12.0 h1:gI7Thbbm0HStd3kmkpASWuBY0yM9YUDQWhYMmzOg7+Y= -github.com/zitadel/oidc/v3 v3.12.0/go.mod h1:mFCrFvb6KA9A4gZisSXI+0T1zz9z09OmjQ804kJD/KU= +github.com/zitadel/logging v0.6.0 h1:t5Nnt//r+m2ZhhoTmoPX+c96pbMarqJvW1Vq6xFTank= +github.com/zitadel/logging v0.6.0/go.mod h1:Y4CyAXHpl3Mig6JOszcV5Rqqsojj+3n7y2F591Mp/ow= +github.com/zitadel/oidc/v3 v3.13.0 h1:AtKIS3T41Osei04164PjEgmsvFTo48K3BMNxzGDCRVs= +github.com/zitadel/oidc/v3 v3.13.0/go.mod h1:dJiXws5tRruzluozMIFg+AVOgxCSe0tvMpzBvU1gQN8= github.com/zitadel/schema v1.3.0 h1:kQ9W9tvIwZICCKWcMvCEweXET1OcOyGEuFbHs4o5kg0= github.com/zitadel/schema v1.3.0/go.mod h1:NptN6mkBDFvERUCvZHlvWmmME+gmZ44xzwRXwhzsbtc= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= @@ -88,10 +88,9 @@ go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= +golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=