[utilities COMMIT] in /java-support/trunk/src: main/java/net/shibboleth/utilities/java/support/net/CookieManager.java...

noreply at shibboleth.net noreply at shibboleth.net
Tue Oct 8 17:15:53 EDT 2013


Author: scantor
Date: Tue Oct  8 17:15:53 2013
New Revision: 455

URL: http://svn.shibboleth.net/view/utilities?rev=455&view=rev
Log:
Add unsetCookie method, fix maxAge default.

Modified:
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java
    java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/CookieManagerTest.java

Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java?rev=455&r1=454&r2=455&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java Tue Oct  8 17:15:53 2013
@@ -61,6 +61,7 @@
     /** Constructor. */
     public CookieManager() {
         secure = true;
+        maxAge = -1;
     }
 
     /**
@@ -153,4 +154,21 @@
         
         httpResponse.addCookie(cookie);
     }
+
+    /**
+     * Unsets a cookie with the specified name.
+     * 
+     * @param name  name of cookie
+     */
+    @Nullable public void unsetCookie(@Nonnull @NotEmpty final String name) {
+        Cookie cookie = new Cookie(name, null);
+        cookie.setPath(cookiePath != null ? cookiePath : httpRequest.getContextPath());
+        if (cookieDomain != null) {
+            cookie.setDomain(cookieDomain);
+        }
+        cookie.setSecure(secure);
+        cookie.setMaxAge(0);
+        
+        httpResponse.addCookie(cookie);
+    }
 }

Modified: java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/CookieManagerTest.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/CookieManagerTest.java?rev=455&r1=454&r2=455&view=diff
==============================================================================
--- java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/CookieManagerTest.java (original)
+++ java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/CookieManagerTest.java Tue Oct  8 17:15:53 2013
@@ -67,6 +67,7 @@
         Assert.assertEquals(cookie.getPath(), "/idp");
         Assert.assertNull(cookie.getDomain());
         Assert.assertTrue(cookie.getSecure());
+        Assert.assertEquals(cookie.getMaxAge(), -1);
     }
 
     @Test public void testCookieNoPath() throws ComponentInitializationException {
@@ -87,5 +88,28 @@
         Assert.assertEquals(cookie.getPath(), "/idp");
         Assert.assertNull(cookie.getDomain());
         Assert.assertTrue(cookie.getSecure());
+        Assert.assertEquals(cookie.getMaxAge(), -1);
+    }
+
+    @Test public void testCookieUnset() throws ComponentInitializationException {
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setContextPath("/idp");
+        request.setCookies(new Cookie("foo", "bar"));
+        MockHttpServletResponse response = new MockHttpServletResponse();
+        
+        CookieManager cm = new CookieManager();
+        cm.setHttpServletRequest(request);
+        cm.setHttpServletResponse(response);
+        cm.initialize();
+        
+        cm.unsetCookie("foo");
+        
+        Cookie cookie = response.getCookie("foo");
+        Assert.assertNotNull(cookie);
+        Assert.assertNull(cookie.getValue());
+        Assert.assertEquals(cookie.getPath(), "/idp");
+        Assert.assertNull(cookie.getDomain());
+        Assert.assertTrue(cookie.getSecure());
+        Assert.assertEquals(cookie.getMaxAge(), 0);
     }
 }



More information about the commits mailing list