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

lprimak pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shiro.git


The following commit(s) were added to refs/heads/main by this push:
     new 99df3dd35 bugfix(test): flaky test core/.../DefaultSecurityManagerTest 
fixed (#2951)
99df3dd35 is described below

commit 99df3dd35a6e08c4a9a5283b18d07ff2c838c123
Author: Lenny Primak <[email protected]>
AuthorDate: Sat Nov 7 17:40:08 2026 -0600

    bugfix(test): flaky test core/.../DefaultSecurityManagerTest fixed (#2951)
---
 .../org/apache/shiro/mgt/DefaultSecurityManagerTest.java  | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git 
a/core/src/test/java/org/apache/shiro/mgt/DefaultSecurityManagerTest.java 
b/core/src/test/java/org/apache/shiro/mgt/DefaultSecurityManagerTest.java
index ba47492d2..73f1babce 100644
--- a/core/src/test/java/org/apache/shiro/mgt/DefaultSecurityManagerTest.java
+++ b/core/src/test/java/org/apache/shiro/mgt/DefaultSecurityManagerTest.java
@@ -60,20 +60,18 @@ public class DefaultSecurityManagerTest extends 
AbstractSecurityManagerTest {
         section.put("guest", "guest, guest");
         section.put("lonestarr", "vespa, goodguy");
         sm.setRealm(new IniRealm(ini));
-        SecurityUtils.setSecurityManager(sm);
     }
 
     @AfterEach
     @Override
     public void tearDown() {
-        SecurityUtils.setSecurityManager(null);
         sm.destroy();
         super.tearDown();
     }
 
     @Test
     void testDefaultConfig() {
-        Subject subject = SecurityUtils.getSubject();
+        Subject subject = new Subject.Builder(sm).buildSubject();
 
         AuthenticationToken token = new UsernamePasswordToken("guest", 
"guest");
         subject.login(token);
@@ -99,7 +97,7 @@ public class DefaultSecurityManagerTest extends 
AbstractSecurityManagerTest {
     @SuppressWarnings("checkstyle:MagicNumber")
     @Test
     void testAutoCreateSessionAfterInvalidation() {
-        Subject subject = SecurityUtils.getSubject();
+        Subject subject = new Subject.Builder(sm).buildSubject();
         Session session = subject.getSession();
 
         String key = "foo";
@@ -128,7 +126,7 @@ public class DefaultSecurityManagerTest extends 
AbstractSecurityManagerTest {
     @Test
     void testSubjectReuseAfterLogout() {
 
-        Subject subject = SecurityUtils.getSubject();
+        Subject subject = new Subject.Builder(sm).buildSubject();
 
         AuthenticationToken token = new UsernamePasswordToken("guest", 
"guest");
         subject.login(token);
@@ -195,19 +193,18 @@ public class DefaultSecurityManagerTest extends 
AbstractSecurityManagerTest {
     void testNewSubjectWithoutSessionCreationEnabled() {
         PrincipalCollection principals = 
ImmutablePrincipalCollection.ofSinglePrincipal("guest", "asd");
         // this tests that calling `buildSubject` doesn't throw an exception 
due to session-creation being disabled
-        Subject subject = new 
Subject.Builder().principals(principals).sessionCreationEnabled(false).buildSubject();
+        Subject subject = new 
Subject.Builder(sm).principals(principals).sessionCreationEnabled(false).buildSubject();
 
         assertThat(subject.getPrincipal()).isEqualTo("guest");
     }
 
     @Test
     void testNewSubjectWithSubjectFactoryThatDisablesSessionCreation() {
-        ((DefaultSecurityManager) SecurityUtils.getSecurityManager())
-            .setSubjectFactory(new SessionCreationDisabledSubjectFactory());
+        sm.setSubjectFactory(new SessionCreationDisabledSubjectFactory());
 
         PrincipalCollection principals = 
ImmutablePrincipalCollection.ofSinglePrincipal("guest", "asd");
         // this tests that calling `buildSubject` doesn't throw an exception 
due to session-creation being disabled
-        Subject subject = new 
Subject.Builder().principals(principals).buildSubject();
+        Subject subject = new 
Subject.Builder(sm).principals(principals).buildSubject();
 
         assertThat(subject.getPrincipal()).isEqualTo("guest");
     }

Reply via email to