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