This is an automated email from the ASF dual-hosted git repository.

bmarwell pushed a commit to branch fix/bmarwell/cookieExpiry
in repository https://gitbox.apache.org/repos/asf/shiro.git

commit 427371f7c2307c817204c5cb408c48f24a0b3457
Author: Benjamin Marwell <[email protected]>
AuthorDate: Thu Jun 18 15:46:13 2026 +0200

    (wip) check cookie expiry
---
 .../shiro/web/mgt/CookieRememberMeManagerTest.java | 41 +++++++++++++++++++---
 1 file changed, 36 insertions(+), 5 deletions(-)

diff --git 
a/web/src/test/java/org/apache/shiro/web/mgt/CookieRememberMeManagerTest.java 
b/web/src/test/java/org/apache/shiro/web/mgt/CookieRememberMeManagerTest.java
index e28d6037a..5df9763bd 100644
--- 
a/web/src/test/java/org/apache/shiro/web/mgt/CookieRememberMeManagerTest.java
+++ 
b/web/src/test/java/org/apache/shiro/web/mgt/CookieRememberMeManagerTest.java
@@ -18,23 +18,27 @@
  */
 package org.apache.shiro.web.mgt;
 
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import org.apache.shiro.authc.AuthenticationInfo;
 import org.apache.shiro.authc.SimpleAuthenticationInfo;
 import org.apache.shiro.authc.UsernamePasswordToken;
-import org.apache.shiro.lang.codec.Base64;
 import org.apache.shiro.crypto.CryptoException;
+import org.apache.shiro.lang.codec.Base64;
+import org.apache.shiro.mgt.SecurityManager;
+import org.apache.shiro.session.mgt.SimpleSession;
+import org.apache.shiro.subject.ImmutablePrincipalCollection;
 import org.apache.shiro.subject.PrincipalCollection;
 import org.apache.shiro.web.servlet.ShiroHttpServletRequest;
 import org.apache.shiro.web.servlet.SimpleCookie;
 import org.apache.shiro.web.subject.WebSubject;
 import org.apache.shiro.web.subject.WebSubjectContext;
 import org.apache.shiro.web.subject.support.DefaultWebSubjectContext;
+import org.apache.shiro.web.subject.support.WebDelegatingSubject;
+import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-import jakarta.servlet.http.Cookie;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-
 import java.util.UUID;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -322,4 +326,31 @@ class CookieRememberMeManagerTest {
             assertDoesNotThrow(() -> Base64.decode(base64), "Error decoding " 
+ stringToTest);
         }
     }
+
+    @Test
+    void ensuresDeleteIfMaxAge() {
+        HttpServletRequest mockRequest = 
createNiceMock(HttpServletRequest.class);
+        HttpServletResponse mockResponse = 
createNiceMock(HttpServletResponse.class);
+
+        WebSubjectContext context = new DefaultWebSubjectContext();
+        context.setServletRequest(mockRequest);
+        context.setServletResponse(mockResponse);
+        expect(mockRequest.isSecure()).andReturn(true).anyTimes();
+
+        CookieRememberMeManager mgr = new CookieRememberMeManager();
+
+        Cookie cookie = createNiceMock(Cookie.class);
+        expect(cookie.getName()).andReturn("rememberMe").anyTimes();
+        // TODO: set value
+        // TODO: check age / set age in servlet
+        expect(mockRequest.getCookies()).andReturn(new 
Cookie[]{cookie}).anyTimes();
+        replay(mockRequest);
+        replay(cookie);
+
+        // when
+        byte[] rememberedSerializedIdentity = 
mgr.getRememberedSerializedIdentity(context);
+
+        // then
+        assertThat(rememberedSerializedIdentity).isNull();
+    }
 }

Reply via email to