From ebae124bd0718c13a9c4c3beaab8ec01a8c1be7e Mon Sep 17 00:00:00 2001
From: "bjsousa@wisc.edu" <benjamin.sousa@wisc.edu>
Date: Fri, 9 Sep 2016 14:06:10 -0500
Subject: [PATCH] Add tests.  Bump minor version.

---
 pom.xml                                       |  2 +-
 ...ticatedUserDetailsAttributeMapperTest.java | 29 ++++++++++++++++++-
 ...UWUserDetailsAuthenticationFilterTest.java |  6 ++--
 3 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 56ceebb..497e77a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>edu.wisc.uwss</groupId>
 	<artifactId>uw-spring-security</artifactId>
-	<version>1.5.2-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	<name>UW Spring Security Parent</name>
 	<description>Parent project for module to integrate Spring Security with UW authentication mechanism.</description>
diff --git a/uw-spring-security-core/src/test/java/edu/wisc/uwss/preauth/PreauthenticatedUserDetailsAttributeMapperTest.java b/uw-spring-security-core/src/test/java/edu/wisc/uwss/preauth/PreauthenticatedUserDetailsAttributeMapperTest.java
index e387848..d7e86ee 100644
--- a/uw-spring-security-core/src/test/java/edu/wisc/uwss/preauth/PreauthenticatedUserDetailsAttributeMapperTest.java
+++ b/uw-spring-security-core/src/test/java/edu/wisc/uwss/preauth/PreauthenticatedUserDetailsAttributeMapperTest.java
@@ -9,6 +9,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -16,6 +17,7 @@ import javax.servlet.http.HttpServletRequest;
 
 import org.junit.Test;
 import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.security.core.GrantedAuthority;
 
 import edu.wisc.uwss.UWUserDetails;
 import edu.wisc.uwss.preauth.PreauthenticatedUserDetailsAttributeMapper.Default;
@@ -68,7 +70,32 @@ public class PreauthenticatedUserDetailsAttributeMapperTest {
     assertEquals(1,result.getAuthorities().size());
     assertEquals(manifestGroups.toString(),result.getAuthorities().toString());
   }
-  
+
+  /**
+   * Verify that a user can have multiple Manifest groups in their {@link GrantedAuthority}s
+   */
+  @Test
+  public void mapUser_multipleManifestGroups() {
+    MockHttpServletRequest request = new MockHttpServletRequest();
+
+    String uid = "somebody";
+    ArrayList<String> manifestGroups = new ArrayList<>();
+    manifestGroups.add("uw:domain:onegroup");
+    manifestGroups.add("uw:domain:anothergroup");
+
+    request.addHeader("uid", uid);
+    request.addHeader("ismemberof",manifestGroups);
+
+    UWUserDetails result = filter.mapUser(request);
+
+    assertEquals(uid, result.getUsername());
+    assertEquals(2,result.getAuthorities().size());
+
+    for (GrantedAuthority authority : result.getAuthorities()) {
+      assertTrue(manifestGroups.contains(authority.getAuthority()));
+    }
+
+  }
   /**
    * Verify behavior of {@link Default#toCustomLogoutUrl(String)} for
    * null input.
diff --git a/uw-spring-security-core/src/test/java/edu/wisc/uwss/preauth/UWUserDetailsAuthenticationFilterTest.java b/uw-spring-security-core/src/test/java/edu/wisc/uwss/preauth/UWUserDetailsAuthenticationFilterTest.java
index edce2a8..52bb7f5 100644
--- a/uw-spring-security-core/src/test/java/edu/wisc/uwss/preauth/UWUserDetailsAuthenticationFilterTest.java
+++ b/uw-spring-security-core/src/test/java/edu/wisc/uwss/preauth/UWUserDetailsAuthenticationFilterTest.java
@@ -32,12 +32,13 @@ public class UWUserDetailsAuthenticationFilterTest {
 	public void getPreAuthenticatedPrincipal_control() {
 		UWUserDetailsAuthenticationFilter filter = new UWUserDetailsAuthenticationFilter();
 		HttpServletRequest request = mock(HttpServletRequest.class);
-		
-		when(request.getHeader("uid")).thenReturn("bbadger");
+
+    when(request.getHeader("uid")).thenReturn("bbadger");
 		when(request.getHeader("eppn")).thenReturn("bbadger@wisc.edu");
 		when(request.getHeader("cn")).thenReturn("Bucky Badger");
 		when(request.getHeaders("wisceduudds")).thenReturn(Collections.enumeration(Arrays.asList("A061234")));
 		when(request.getHeader("mail")).thenReturn("foo@foo.wisc.edu");
+    when(request.getHeaders("ismemberof")).thenReturn(Collections.enumeration(Arrays.asList("somegroup")));
 		UWUserDetails userDetails = filter.getPreAuthenticatedPrincipal(request);
 		assertEquals("bbadger", userDetails.getUsername());
 		assertEquals("bbadger@wisc.edu", userDetails.getEppn());
@@ -45,6 +46,7 @@ public class UWUserDetailsAuthenticationFilterTest {
 		assertEquals("foo@foo.wisc.edu", userDetails.getEmailAddress());
 		assertEquals(1, userDetails.getUddsMembership().size());
 		assertEquals("A061234", userDetails.getUddsMembership().iterator().next());
+    assertEquals("somegroup", userDetails.getAuthorities().iterator().next().getAuthority());
 	}
 	
 	/**
-- 
GitLab