From e9569564d7b869a4e42030fb44264fb62b026aea Mon Sep 17 00:00:00 2001 From: Scott Battaglia Date: Sun, 27 Mar 2011 18:17:44 +0000 Subject: [PATCH] CASC-143 fix for the changes Atlassian made to seraph --- cas-client-core/pom.xml | 8 ++++++++ .../cas/client/PublicTestHttpServer.java | 9 +++++++++ .../cas/client/jaas/CasLoginModuleTests.java | 4 ++-- .../validation/Cas10TicketValidatorTests.java | 4 ++-- .../Cas20ProxyTicketValidatorTests.java | 4 ++-- .../Cas20ServiceTicketValidatorTests.java | 4 ++-- .../Saml11TicketValidatorTests.java | 4 ++-- cas-client-integration-atlassian/pom.xml | 19 ++++++++++++++++--- .../atlassian/JiraCasAuthenticator.java | 18 ++++++++++++++++++ pom.xml | 3 +++ 10 files changed, 64 insertions(+), 13 deletions(-) diff --git a/cas-client-core/pom.xml b/cas-client-core/pom.xml index c7dd0a0..94d7508 100644 --- a/cas-client-core/pom.xml +++ b/cas-client-core/pom.xml @@ -28,6 +28,14 @@ true + + commons-codec + commons-codec + 1.4 + jar + true + + org.springframework spring-beans diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/PublicTestHttpServer.java b/cas-client-core/src/test/java/org/jasig/cas/client/PublicTestHttpServer.java index e6ae620..57de8d2 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/PublicTestHttpServer.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/PublicTestHttpServer.java @@ -22,6 +22,8 @@ package org.jasig.cas.client; import java.io.*; import java.net.ServerSocket; import java.net.Socket; +import java.util.HashMap; +import java.util.Map; /** * @author Scott Battaglia @@ -42,6 +44,8 @@ public final class PublicTestHttpServer extends Thread { private ServerSocket server; + private static Map serverMap = new HashMap(); + private PublicTestHttpServer(String data, String encoding, String MIMEType, int port) throws UnsupportedEncodingException { this(data.getBytes(encoding), encoding, MIMEType, port); } @@ -55,9 +59,14 @@ public final class PublicTestHttpServer extends Thread { } public static synchronized PublicTestHttpServer instance(final int port) { + if (serverMap.containsKey(port)) { + return serverMap.get(port); + } + try { final PublicTestHttpServer server = new PublicTestHttpServer("test", "ASCII", "text/plain", port); server.start(); + serverMap.put(port, server); Thread.yield(); return server; } catch (Exception e) { diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/jaas/CasLoginModuleTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/jaas/CasLoginModuleTests.java index decb5a0..623730a 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/jaas/CasLoginModuleTests.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/jaas/CasLoginModuleTests.java @@ -54,10 +54,10 @@ public class CasLoginModuleTests { private Map options; - @AfterClass + /* @AfterClass public static void classCleanUp() { server.shutdown(); - } + }*/ @Before public void setUp() throws Exception { diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas10TicketValidatorTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas10TicketValidatorTests.java index 2c3a2df..7a8a991 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas10TicketValidatorTests.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas10TicketValidatorTests.java @@ -46,10 +46,10 @@ public final class Cas10TicketValidatorTests extends AbstractTicketValidatorTest super(); } - @AfterClass + /*@AfterClass public static void classCleanUp() { server.shutdown(); - } + } */ @Before public void setUp() throws Exception { diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorTests.java index 54f0d96..691d89b 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorTests.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorTests.java @@ -51,10 +51,10 @@ public final class Cas20ProxyTicketValidatorTests extends AbstractTicketValidato super(); } - @AfterClass + /*@AfterClass public static void classCleanUp() { server.shutdown(); - } + } */ @Before public void setUp() throws Exception { diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ServiceTicketValidatorTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ServiceTicketValidatorTests.java index 3963ee0..cf31da4 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ServiceTicketValidatorTests.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ServiceTicketValidatorTests.java @@ -51,10 +51,10 @@ public final class Cas20ServiceTicketValidatorTests extends AbstractTicketValida super(); } - @AfterClass + /*@AfterClass public static void classCleanUp() { server.shutdown(); - } + } */ @Before public void setUp() throws Exception { diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Saml11TicketValidatorTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Saml11TicketValidatorTests.java index c8f618b..bea430f 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Saml11TicketValidatorTests.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Saml11TicketValidatorTests.java @@ -48,10 +48,10 @@ public final class Saml11TicketValidatorTests extends AbstractTicketValidatorTes this.validator.setTolerance(1000L); } - @AfterClass + /*@AfterClass public static void cleanUp() throws Exception { server.shutdown(); - } + }*/ @Test public void testValidationFailedResponse() throws UnsupportedEncodingException { diff --git a/cas-client-integration-atlassian/pom.xml b/cas-client-integration-atlassian/pom.xml index 4921650..bdef5b1 100644 --- a/cas-client-integration-atlassian/pom.xml +++ b/cas-client-integration-atlassian/pom.xml @@ -14,17 +14,28 @@ atlassian-seraph com.atlassian.seraph - 2.3.3 + 2.4.0 provided + jar opensymphony propertyset + true + + atlassian-osuser + com.atlassian.osuser + 1.1.2 + provided + jar + true + + com.atlassian.confluence @@ -513,7 +524,8 @@ - + + diff --git a/cas-client-integration-atlassian/src/main/java/org/jasig/cas/client/integration/atlassian/JiraCasAuthenticator.java b/cas-client-integration-atlassian/src/main/java/org/jasig/cas/client/integration/atlassian/JiraCasAuthenticator.java index 97d886d..27ec613 100644 --- a/cas-client-integration-atlassian/src/main/java/org/jasig/cas/client/integration/atlassian/JiraCasAuthenticator.java +++ b/cas-client-integration-atlassian/src/main/java/org/jasig/cas/client/integration/atlassian/JiraCasAuthenticator.java @@ -21,6 +21,9 @@ package org.jasig.cas.client.integration.atlassian; import com.atlassian.seraph.auth.DefaultAuthenticator; import com.atlassian.seraph.auth.AuthenticatorException; +import com.opensymphony.user.EntityNotFoundException; +import com.opensymphony.user.User; +import com.opensymphony.user.UserManager; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jasig.cas.client.util.AbstractCasFilter; @@ -47,6 +50,21 @@ public final class JiraCasAuthenticator extends DefaultAuthenticator { private static final Log LOG = LogFactory.getLog(JiraCasAuthenticator.class); + @Override + protected boolean authenticate(final Principal principal, final String password) throws AuthenticatorException { + return ((User) principal).authenticate(password); + } + + @Override + protected Principal getUser(final String username) { + try { + return UserManager.getInstance().getUser(username); + } catch (final EntityNotFoundException e) { + LOG.warn("Could not find user '" + username + "' in UserManager : " + e); + } + return null; + } + public Principal getUser(final HttpServletRequest request, final HttpServletResponse response) { final HttpSession session = request.getSession(); diff --git a/pom.xml b/pom.xml index 950c0e2..46a6d42 100644 --- a/pom.xml +++ b/pom.xml @@ -64,6 +64,7 @@ 1.5 + org.apache.maven.plugins maven-surefire-plugin @@ -72,6 +73,8 @@ **/*Tests* + false + 1