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