This is an automated email from the ASF dual-hosted git repository.
ronny pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb.git
The following commit(s) were added to refs/heads/main by this push:
new 565074d66 fix(tests): Fix and enable JWTRolesClaimTest
565074d66 is described below
commit 565074d66748f8b4c48315691958c13d4b2af81b
Author: Ronny Berndt <[email protected]>
AuthorDate: Sun Dec 14 14:25:10 2025 +0100
fix(tests): Fix and enable JWTRolesClaimTest
Jessica discovered [1] that the “JWTRolesClaimTest”
test suite was not activated during testing and was
therefore not called. In addition, the tests failed
because the used JWT test tokens had an expiration date
(Sat Aug 16 2025 01:10:10 GMT+0200).
1. For all used JWT test tokens, the expiration date
was increased to Thu Dec 31 2099 22:59:59 GMT+0000.
2. The JWT token signatures were adjusted.
3. Tests were activated in the Elixir suite.
[1] https://github.com/apache/couchdb/pull/5822#discussion_r2615970826
---
test/elixir/test/config/suite.elixir | 9 ++++++++-
test/elixir/test/jwt_roles_claim_test.exs | 27 ++++++++++++++++-----------
2 files changed, 24 insertions(+), 12 deletions(-)
diff --git a/test/elixir/test/config/suite.elixir
b/test/elixir/test/config/suite.elixir
index 5df1e4832..bf95f5dce 100644
--- a/test/elixir/test/config/suite.elixir
+++ b/test/elixir/test/config/suite.elixir
@@ -836,5 +836,12 @@
"no index without fallback",
"uses all docs when fields do not match selector",
"uses all docs when selector doesnt require fields to exist"
- ]
+ ],
+ "JwtRolesClaimTest": [
+ "case: roles_claim_name (defined) / roles_claim_path (defined)",
+ "case: roles_claim_name (defined) / roles_claim_path (undefined)",
+ "case: roles_claim_name (undefined) / roles_claim_path (defined)",
+ "case: roles_claim_name (undefined) / roles_claim_path (undefined)",
+ "case: roles_claim_path with bad input"
+ ]
}
diff --git a/test/elixir/test/jwt_roles_claim_test.exs
b/test/elixir/test/jwt_roles_claim_test.exs
index 28b280e9c..ec3c7e53e 100644
--- a/test/elixir/test/jwt_roles_claim_test.exs
+++ b/test/elixir/test/jwt_roles_claim_test.exs
@@ -14,15 +14,15 @@ defmodule JwtRolesClaimTest do
%{
:section => "jwt_keys",
:key => "hmac:myjwttestkey",
+ # "a-string-secret-at-least-256-bits-long"
:value => ~w(
- NTNv7j0TuYARvmNMmWXo6fKvM4o6nv/aUi9ryX38ZH+L1bkrnD1ObOQ8JAUmHCBq7
- Iy7otZcyAagBLHVKvvYaIpmMuxmARQ97jUVG16Jkpkp1wXOPsrF9zwew6TpczyH
- kHgX5EuLg2MeBuiT/qJACs1J0apruOOJCg/gOtkjB4c=
+ YS1zdHJpbmctc2VjcmV0LWF0LWxlYXN0LTI1Ni1iaXRzLWxvbmc=
) |> Enum.join()
},
%{
:section => "jwt_keys",
:key => "hmac:myjwttestkey2",
+ # "Undoubtedly-Engaging-Roadway-029"
:value => ~w(
VW5kb3VidGVkbHktRW5nYWdpbmctUm9hZHdheS0wMjk=
) |> Enum.join()
@@ -133,17 +133,19 @@ defmodule JwtRolesClaimTest do
end
def test_roles(roles) do
+ # myjwttestkey
+ # Token expires after Thu Dec 31 2099 22:59:59 GMT+0000
token = ~w(
eyJ0eXAiOiJKV1QiLCJraWQiOiJteWp3dHRlc3RrZXkiLCJhbGciOiJIUzI1NiJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRyd
- WUsImlhdCI6MTY1NTI5NTgxMCwiZXhwIjoxNzU1Mjk5NDEwLCJteSI6eyJuZXN0ZW
+ WUsImlhdCI6MTY1NTI5NTgxMCwiZXhwIjoxOTI0OTg4Mzk5LCJteSI6eyJuZXN0ZW
QiOnsiX2NvdWNoZGIucm9sZXMiOlsibXlfbmVzdGVkX2NvdWNoZGIucm9sZXNfMSI
sIm15X25lc3RlZF9jb3VjaGRiLnJvbGVzXzEiXX19LCJfY291Y2hkYi5yb2xlcyI6
WyJfY291Y2hkYi5yb2xlc18xIiwiX2NvdWNoZGIucm9sZXNfMiJdLCJteS5fY291Y
2hkYi5yb2xlcyI6WyJteS5fY291Y2hkYi5yb2xlc18xIiwibXkuX2NvdWNoZGIucm
9sZXNfMiJdLCJmb28iOnsiYmFyLnpvbmsiOnsiYmF6LmJ1dSI6eyJiYWEiOnsiYmF
hLmJlZSI6eyJyb2xlcyI6WyJteV9uZXN0ZWRfcm9sZV8xIiwibXlfbmVzdGVkX3Jv
- bGVfMiJdfX19fX19.F6kQK-FK0z1kP01bTyw-moXfy2klWfubgF7x7Xitd-0) |>
Enum.join()
+ bGVfMiJdfX19fX19._3BgqHB8ETk4QPOn_LMgUkjgsjgqDCf7AUlV3XRmP6A) |>
Enum.join()
resp =
Couch.get("/_session",
@@ -156,19 +158,20 @@ defmodule JwtRolesClaimTest do
end
def test_roles_as_string(roles) do
- # Different token
+ # myjwttestkey2
+ # Token expires after Thu Dec 31 2099 22:59:59 GMT+0000
token = ~w(
eyJ0eXAiOiJKV1QiLCJraWQiOiJteWp3dHRlc3RrZXkyIiwiYWxnIjoiSFMyNTYifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWU
- sImlhdCI6MTY1NTI5NTgxMCwiZXhwIjoxNzU1Mjk5NDEwLCJteSI6eyJuZXN0ZWQiOn
+ sImlhdCI6MTY1NTI5NTgxMCwiZXhwIjo0MTAyNDQxMTk5LCJteSI6eyJuZXN0ZWQiOn
siX2NvdWNoZGIucm9sZXMiOiJteV9uZXN0ZWRfY291Y2hkYl9zdHJpbmcucm9sZXNfM
SwgbXlfbmVzdGVkX2NvdWNoZGJfc3RyaW5nLnJvbGVzXzEifX0sIl9jb3VjaGRiLnJv
bGVzIjoiX2NvdWNoZGJfc3RyaW5nLnJvbGVzXzEsX2NvdWNoZGJfc3RyaW5nLnJvbGV
zXzIiLCJteS5fY291Y2hkYi5yb2xlcyI6Im15Ll9jb3VjaGRiX3N0cmluZy5yb2xlc1
8xLCBteS5fY291Y2hkYl9zdHJpbmcucm9sZXNfMiIsImZvbyI6eyJiYXIuem9uayI6e
yJiYXouYnV1Ijp7ImJhYSI6eyJiYWEuYmVlIjp7InJvbGVzIjoibXlfbmVzdGVkX3N0
- cmluZ19yb2xlXzEsIG15X25lc3RlZF9zdHJpbmdfcm9sZV8yIn19fX19fQ.rzaLmcA2
- 0R291XuGYNNTM9ypGL3UD_GlVp3DmBtWrZI
+ cmluZ19yb2xlXzEsIG15X25lc3RlZF9zdHJpbmdfcm9sZV8yIn19fX19fQ.nUQYe_Fy
+ 1LBY0F4jbfLwj47p2468v0lrCzHXMWpkfA4
) |> Enum.join()
resp =
@@ -182,17 +185,19 @@ defmodule JwtRolesClaimTest do
end
def test_roles_with_bad_input() do
+ # myjwttestkey
+ # Token expires after Thu Dec 31 2099 22:59:59 GMT+0000
token = ~w(
eyJ0eXAiOiJKV1QiLCJraWQiOiJteWp3dHRlc3RrZXkiLCJhbGciOiJIUzI1NiJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRyd
- WUsImlhdCI6MTY1NTI5NTgxMCwiZXhwIjoxNzU1Mjk5NDEwLCJteSI6eyJuZXN0ZW
+ WUsImlhdCI6MTY1NTI5NTgxMCwiZXhwIjoxOTI0OTg4Mzk5LCJteSI6eyJuZXN0ZW
QiOnsiX2NvdWNoZGIucm9sZXMiOlsibXlfbmVzdGVkX2NvdWNoZGIucm9sZXNfMSI
sIm15X25lc3RlZF9jb3VjaGRiLnJvbGVzXzEiXX19LCJfY291Y2hkYi5yb2xlcyI6
WyJfY291Y2hkYi5yb2xlc18xIiwiX2NvdWNoZGIucm9sZXNfMiJdLCJteS5fY291Y
2hkYi5yb2xlcyI6WyJteS5fY291Y2hkYi5yb2xlc18xIiwibXkuX2NvdWNoZGIucm
9sZXNfMiJdLCJmb28iOnsiYmFyLnpvbmsiOnsiYmF6LmJ1dSI6eyJiYWEiOnsiYmF
hLmJlZSI6eyJyb2xlcyI6WyJteV9uZXN0ZWRfcm9sZV8xIiwibXlfbmVzdGVkX3Jv
- bGVfMiJdfX19fX19.F6kQK-FK0z1kP01bTyw-moXfy2klWfubgF7x7Xitd-0) |>
Enum.join()
+ bGVfMiJdfX19fX19._3BgqHB8ETk4QPOn_LMgUkjgsjgqDCf7AUlV3XRmP6A) |>
Enum.join()
resp =
Couch.get("/_session",