about summary refs log tree commit diff
path: root/nixos/tests/keycloak.nix
diff options
context:
space:
mode:
authorBenjamin Staffin <benley@gmail.com>2022-03-22 19:57:11 -0400
committerBenjamin Staffin <bstaffin@singlestore.com>2022-03-22 19:57:11 -0400
commit6f5636223cf615d2c304c8335ee072726d775191 (patch)
tree83b3351e49f0cea7df30554ea2bf2508cebc5abc /nixos/tests/keycloak.nix
parenta12b2ce73c8cd2c2e1d7b469b205d5b93ec0949f (diff)
keycloak-metrics-spi: init at 2.5.3
Diffstat (limited to 'nixos/tests/keycloak.nix')
-rw-r--r--nixos/tests/keycloak.nix16
1 files changed, 15 insertions, 1 deletions
diff --git a/nixos/tests/keycloak.nix b/nixos/tests/keycloak.nix
index a4beea40279fc..fce8df2b7e3a4 100644
--- a/nixos/tests/keycloak.nix
+++ b/nixos/tests/keycloak.nix
@@ -37,6 +37,7 @@ let
             };
             plugins = with config.services.keycloak.package.plugins; [
               keycloak-discord
+              keycloak-metrics-spi
             ];
           };
 
@@ -104,8 +105,21 @@ let
           ### Realm Setup ###
 
           # Get an admin interface access token
+          keycloak.succeed("""
+              curl -sSf -d 'client_id=admin-cli' \
+                   -d 'username=admin' \
+                   -d 'password=${initialAdminPassword}' \
+                   -d 'grant_type=password' \
+                   '${frontendUrl}/realms/master/protocol/openid-connect/token' \
+                   | jq -r '"Authorization: bearer " + .access_token' >admin_auth_header
+          """)
+
+          # Register the metrics SPI
           keycloak.succeed(
-              "curl -sSf -d 'client_id=admin-cli' -d 'username=admin' -d 'password=${initialAdminPassword}' -d 'grant_type=password' '${frontendUrl}/realms/master/protocol/openid-connect/token' | jq -r '\"Authorization: bearer \" + .access_token' >admin_auth_header"
+              "${pkgs.jre}/bin/keytool -import -alias snakeoil -file ${certs.ca.cert} -storepass aaaaaa -keystore cacert.jks -noprompt",
+              "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh config credentials --server '${frontendUrl}' --realm master --user admin --password '${initialAdminPassword}'",
+              "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh update events/config -s 'eventsEnabled=true' -s 'adminEventsEnabled=true' -s 'eventsListeners+=metrics-listener'",
+              "curl -sSf '${frontendUrl}/realms/master/metrics' | grep '^keycloak_admin_event_UPDATE'"
           )
 
           # Publish the realm, including a test OIDC client and user