From f09ee1c0e741eb58b7805af8748b3472d82c04db Mon Sep 17 00:00:00 2001 From: "Marvin S. Addison" Date: Fri, 12 Feb 2016 15:34:19 -0500 Subject: [PATCH] Issue #152 Fix multiple ticket validation attempt. --- .../cas/client/jetty/CasAuthenticator.java | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/cas-client-integration-jetty/src/main/java/org/jasig/cas/client/jetty/CasAuthenticator.java b/cas-client-integration-jetty/src/main/java/org/jasig/cas/client/jetty/CasAuthenticator.java index 14b359b..0cb10a0 100644 --- a/cas-client-integration-jetty/src/main/java/org/jasig/cas/client/jetty/CasAuthenticator.java +++ b/cas-client-integration-jetty/src/main/java/org/jasig/cas/client/jetty/CasAuthenticator.java @@ -162,22 +162,18 @@ public class CasAuthenticator extends AbstractLifeCycle implements Authenticator return Authentication.UNAUTHENTICATED; } - String ticket; - for (final Protocol protocol : Protocol.values()) { - ticket = request.getParameter(protocol.getArtifactParameterName()); - if (ticket != null) { - try { - logger.debug("Attempting to validate {}", ticket); - final Assertion assertion = ticketValidator.validate(ticket, serviceUrl(request, response)); - logger.debug("Successfully authenticated {}", assertion.getPrincipal()); - authentication = new CasAuthentication(this, ticket, assertion); - cacheAuthentication(request, authentication); - } catch (Exception e) { - throw new ServerAuthException("CAS ticket validation failed", e); - } + final String ticket = extractTicket(request); + if (ticket != null) { + try { + logger.debug("Attempting to validate {}", ticket); + final Assertion assertion = ticketValidator.validate(ticket, serviceUrl(request, response)); + logger.debug("Successfully authenticated {}", assertion.getPrincipal()); + authentication = new CasAuthentication(this, ticket, assertion); + cacheAuthentication(request, authentication); + } catch (Exception e) { + throw new ServerAuthException("CAS ticket validation failed", e); } } - if (authentication != null) { return authentication; } @@ -251,4 +247,14 @@ public class CasAuthenticator extends AbstractLifeCycle implements Authenticator } } + private String extractTicket(final HttpServletRequest request) { + String ticket; + for (final Protocol protocol : Protocol.values()) { + ticket = request.getParameter(protocol.getArtifactParameterName()); + if (ticket != null) { + return ticket; + } + } + return null; + } }