From fc40907a5866310f620d22c7f76ba5c148fafc07 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Tue, 03 Nov 2026 21:04:42 +0000
Subject: [PATCH] Return CAS error instead of HTTP 500 on malformed tickets

---
 README.md |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 87b69d4..e0f0c1c 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,6 @@
 
 The following features are **missing**:
 * SAML request/response [CAS 3.0 - optional]
-* Proxy ticket service and proxy ticket validation [CAS 2.0]
 
 The following features are out of scope:
 * Long-Term Tickets - Remember-Me [CAS 3.0 - optional]
@@ -30,10 +29,13 @@
 
 ## Installation
 
-Installation of a compatible plugin version is simple and can be done without a Keycloak server restart.
+Quarkus is the default distribution method of Keycloak 17.0.0 and newer. For legacy installations using WildFly, please refer to the [old README](https://github.com/jacekkow/keycloak-protocol-cas/blob/16.1.1/README.md).
 
 1. Download the latest release compatible with your Keycloak version from the [releases page](https://github.com/jacekkow/keycloak-protocol-cas/releases).
-2. Copy the JAR file into the `standalone/deployments` directory in your Keycloak server's root.
+2. Put the downloaded JAR file into the `providers/` directory inside Keycloak installation folder. If necessary, adjust the permissions/ownership so that the user Keycloak runs as is able to read this file.
+3. Stop the Keycloak server.
+4. (Re-)build the installation using `kc.sh build` command.
+5. Start the Keycloak: `kc.sh start`
 
 Remember to update plugin artifact with each Keycloak server upgrade!
 
@@ -43,7 +45,17 @@
 As there is no client ID indication in protocol, the client will be identified by the redirect URIs
 configured in Keycloak.
 
-Enter `https://your.keycloak.host/auth/realms/master/protocol/cas` as the CAS URL into your SP.
+Enter `https://your.keycloak.host/realms/master/protocol/cas` as the CAS URL into your SP.
+This assumes that you use the default `master` realm - if not, modify the URL accordingly.
+
+Note that some client implementations require you to enter login and validate URLs, not CAS URL!
+This manifests with "Page Not Found" error on login attempt
+(see [issue #27](https://github.com/jacekkow/keycloak-protocol-cas/issues/27) for example).
+In such case append `/login` to the CAS URL to get the "login URL".
+Similarly append `/serviceValidate` to get the "validate URL".
+
+Proxy callback URLs (`pgtUrl`) must match the client's redirect URIs and use HTTPS.
+Plain HTTP is accepted only if the realm's "Require SSL" setting allows it.
 
 ## Disclaimer
 
@@ -55,7 +67,8 @@
 and includes changes for Keycloak 8 and newer that were not merged by the owner for half a year.
 
 ## References
-[1] http://www.keycloak.org
+
+[1] https://www.keycloak.org/
 [2] https://issues.jboss.org/browse/KEYCLOAK-1047 (Support CAS 2.0 SSO protocol)
 [3] https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol-Specification.html
 [4] https://keycloak.gitbooks.io/server-developer-guide/content/topics/providers.html

--
Gitblit v1.10.0