From a81f4a3da2531884e8d9f5c98b7cacc8eec1febe Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Tue, 03 Nov 2026 20:58:36 +0000
Subject: [PATCH] Require and verify service parameter in proxyValidate endpoint
---
integrationTest/suite.sh | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/integrationTest/suite.sh b/integrationTest/suite.sh
index 3f6f56a..47eadb2 100755
--- a/integrationTest/suite.sh
+++ b/integrationTest/suite.sh
@@ -24,7 +24,7 @@
exit 1
fi
- local login_url=${BASH_REMATCH[1]//&/&}
+ local login_url=${BASH_REMATCH[1]//\&/\&}
local redirect_response=$($CURL -D - $cookie_options --data 'username=admin&password=admin' "$login_url")
if [[ ! ($redirect_response =~ $ticket_pattern) ]] ; then
echo "No service ticket found in response"
@@ -58,6 +58,20 @@
$CURL "${keycloak_cas_url}/p3/serviceValidate?service=http://localhost&format=JSON&ticket=$ticket"
echo
+# CAS 2.0 - proxy validation
+echo "Testing CAS 2.0 - proxyValidate..."
+ticket=$(get_ticket)
+$CURL "${keycloak_cas_url}/proxyValidate?service=http://localhost&format=JSON&ticket=$ticket"
+echo
+
+echo "Testing CAS 2.0 - proxyValidate without service..."
+ticket=$(get_ticket)
+if $CURL "${keycloak_cas_url}/proxyValidate?format=JSON&ticket=$ticket"; then
+ echo "Ticket was accepted without service parameter"
+ exit 1
+fi
+echo
+
# SAML 1.1
echo "Testing SAML 1.1..."
ticket=$(get_ticket SAML)
--
Gitblit v1.10.0