how to decode/encode CAS tickets across HTTP requests ?
Tom Zeller
tzeller at dragonacea.biz
Tue Aug 30 11:56:57 EDT 2016
Mostly Marvin,
TL;DR Dumb question : how should the CAS ticket be retrieved from an HTTP request via Java ?
I ask because some CAS tests[1] were failing due to the difference between the following :
ST-AAdzZWNyZXQyZixTFItOzysDQA+i1wYkOUqD4ME5uIpKvL0P2yx15V/XLIZMv4cfnu9GfZzJherEt1eX2pJcIg8OfeLJrVmV6cqrmZFb0+buuTHwGX2nbozbycd8mW6zXzkPgXrRUrIw+Y28nm9NK9qHtowwB2kItRwDtD+L/v4LnC4Ugx3kFov1Aly55HtRbsbpZwKzHXnIkila1dkb4j33iYAK+HxFzhYaHthLxKXFT4l6cAb9gnDphnbN1sDAOjgfF0X2uzcOYbmWq/QhgNm9HxSo6Okqc11oOotgJX5Rv7dV4yUlEZ0TC18jtEbamI0mIw==
and
ST-AAdzZWNyZXQyZixTFItOzysDQA i1wYkOUqD4ME5uIpKvL0P2yx15V/XLIZMv4cfnu9GfZzJherEt1eX2pJcIg8OfeLJrVmV6cqrmZFb0 buuTHwGX2nbozbycd8mW6zXzkPgXrRUrIw Y28nm9NK9qHtowwB2kItRwDtD L/v4LnC4Ugx3kFov1Aly55HtRbsbpZwKzHXnIkila1dkb4j33iYAK HxFzhYaHthLxKXFT4l6cAb9gnDphnbN1sDAOjgfF0X2uzcOYbmWq/QhgNm9HxSo6Okqc11oOotgJX5Rv7dV4yUlEZ0TC18jtEbamI0mIw==
As you can see, the “+” in the first has been replaced by a “ “ in the second. As these are encoded CAS tickets, the difference matters.
Deal is, calling HttpServletRequest.getParameter() returns the latter (the wrong one with the “ “). What I need, I think, is a version of java-support’s URISupport.parseQueryString() which does not URL decode query string params, but I thought I’d ask first.
The issue came up, I think, because the EncodingTicketService introduced characters into the ticket via the DataSealer that my horrible CAS “client” hadn’t seen before.
Thx,
Tom
[1] https://build.shibboleth.net/jenkins/job/java-idp-integration-tests/ws/test-distributions/20160826-22275202/logs/idp-process.log/*view*/
More information about the dev
mailing list