Repository: shiro
Updated Branches:
  refs/heads/master 2606a3876 -> 3c6afaf05


Revert "SHIRO-391 -- ThreadContext.bind(Subject) also binds the subject's 
primary principal to slf4j's MDC"

This reverts commit ccdf4c3ec53c210fce4705b816282b5eb7dec1eb.


Project: http://git-wip-us.apache.org/repos/asf/shiro/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro/commit/3c6afaf0
Tree: http://git-wip-us.apache.org/repos/asf/shiro/tree/3c6afaf0
Diff: http://git-wip-us.apache.org/repos/asf/shiro/diff/3c6afaf0

Branch: refs/heads/master
Commit: 3c6afaf0560fb7c91f94f2bbc9679b12c951fb52
Parents: 2606a38
Author: Brian Demers <[email protected]>
Authored: Thu Nov 10 15:38:36 2016 -0500
Committer: Brian Demers <[email protected]>
Committed: Thu Nov 10 15:54:47 2016 -0500

----------------------------------------------------------------------
 .../org/apache/shiro/util/ThreadContext.java    |  9 -------
 .../shiro/guice/ShiroSessionScopeTest.java      |  6 ++---
 .../web/jaxrs/ShiroSecurityContextTest.groovy   | 27 +++++---------------
 3 files changed, 9 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/shiro/blob/3c6afaf0/core/src/main/java/org/apache/shiro/util/ThreadContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/shiro/util/ThreadContext.java 
b/core/src/main/java/org/apache/shiro/util/ThreadContext.java
index 53057d7..28488a3 100644
--- a/core/src/main/java/org/apache/shiro/util/ThreadContext.java
+++ b/core/src/main/java/org/apache/shiro/util/ThreadContext.java
@@ -22,7 +22,6 @@ import org.apache.shiro.mgt.SecurityManager;
 import org.apache.shiro.subject.Subject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -54,12 +53,6 @@ public abstract class ThreadContext {
     public static final String SECURITY_MANAGER_KEY = 
ThreadContext.class.getName() + "_SECURITY_MANAGER_KEY";
     public static final String SUBJECT_KEY = ThreadContext.class.getName() + 
"_SUBJECT_KEY";
 
-       /**
-     * The key of the subject in SLF4Js Mapped Diagnostic Context ({@link 
MDC}). This can be used to
-     * show the subject in the logs. The subject is displayed in the logs 
using the pattern <pre>%X{shiroSubject}</pre>.
-     */
-    private static final String SUBJECT_KEY_MDC = "shiroSubject";
-
     private static final ThreadLocal<Map<Object, Object>> resources = new 
InheritableThreadLocalMap<Map<Object, Object>>();
 
     /**
@@ -307,7 +300,6 @@ public abstract class ThreadContext {
     public static void bind(Subject subject) {
         if (subject != null) {
             put(SUBJECT_KEY, subject);
-            MDC.put(SUBJECT_KEY_MDC, String.valueOf(subject.getPrincipal()));
         }
     }
 
@@ -326,7 +318,6 @@ public abstract class ThreadContext {
      * @since 0.2
      */
     public static Subject unbindSubject() {
-        MDC.remove(SUBJECT_KEY_MDC);
         return (Subject) remove(SUBJECT_KEY);
     }
     

http://git-wip-us.apache.org/repos/asf/shiro/blob/3c6afaf0/support/guice/src/test/java/org/apache/shiro/guice/ShiroSessionScopeTest.java
----------------------------------------------------------------------
diff --git 
a/support/guice/src/test/java/org/apache/shiro/guice/ShiroSessionScopeTest.java 
b/support/guice/src/test/java/org/apache/shiro/guice/ShiroSessionScopeTest.java
index 4c70824..9b8c901 100644
--- 
a/support/guice/src/test/java/org/apache/shiro/guice/ShiroSessionScopeTest.java
+++ 
b/support/guice/src/test/java/org/apache/shiro/guice/ShiroSessionScopeTest.java
@@ -34,14 +34,14 @@ public class ShiroSessionScopeTest {
     public void testScope() throws Exception {
         Subject subject = createMock(Subject.class);
         try {
+            ThreadContext.bind(subject);
+
             final Key<SomeClass> key = Key.get(SomeClass.class);
             Provider<SomeClass> mockProvider = createMock(Provider.class);
             Session session = createMock(Session.class);
 
             SomeClass retuned = new SomeClass();
 
-            expect(subject.getPrincipal()).andReturn("testUser").anyTimes();
-
             expect(subject.getSession()).andReturn(session);
             expect(session.getAttribute(key)).andReturn(null);
             expect(mockProvider.get()).andReturn(retuned);
@@ -52,8 +52,6 @@ public class ShiroSessionScopeTest {
 
             replay(subject, mockProvider, session);
 
-            ThreadContext.bind(subject);
-
             ShiroSessionScope underTest = new ShiroSessionScope();
 
             // first time the session doesn't contain it, we expect the 
provider to be invoked

http://git-wip-us.apache.org/repos/asf/shiro/blob/3c6afaf0/support/jaxrs/src/test/groovy/org/apache/shiro/web/jaxrs/ShiroSecurityContextTest.groovy
----------------------------------------------------------------------
diff --git 
a/support/jaxrs/src/test/groovy/org/apache/shiro/web/jaxrs/ShiroSecurityContextTest.groovy
 
b/support/jaxrs/src/test/groovy/org/apache/shiro/web/jaxrs/ShiroSecurityContextTest.groovy
index b2c0c96..5d7e947 100644
--- 
a/support/jaxrs/src/test/groovy/org/apache/shiro/web/jaxrs/ShiroSecurityContextTest.groovy
+++ 
b/support/jaxrs/src/test/groovy/org/apache/shiro/web/jaxrs/ShiroSecurityContextTest.groovy
@@ -73,15 +73,13 @@ class ShiroSecurityContextTest {
         def originalSecurityContext = mock(SecurityContext)
         def shrioContext = new ShiroSecurityContext(requestContext)
         def subject = mock(Subject)
+        ThreadContext.bind(subject)
 
-        expect(subject.getPrincipal()).andReturn("TestUser")
         
expect(requestContext.getSecurityContext()).andReturn(originalSecurityContext).anyTimes()
         expect(subject.getPrincipals()).andReturn(new 
SimplePrincipalCollection("TestUser", "realm"))
 
         replay requestContext, originalSecurityContext, subject
 
-        ThreadContext.bind(subject)
-
         def resultPrincipal = shrioContext.getUserPrincipal()
         assertSame "TestUser", resultPrincipal.getName()
 
@@ -94,16 +92,14 @@ class ShiroSecurityContextTest {
         def originalSecurityContext = mock(SecurityContext)
         def shrioContext = new ShiroSecurityContext(requestContext)
         def subject = mock(Subject)
+        ThreadContext.bind(subject)
 
-        expect(subject.getPrincipal()).andReturn(null)
         
expect(requestContext.getSecurityContext()).andReturn(originalSecurityContext).anyTimes()
         expect(subject.getPrincipals()).andReturn(null)
         expect(originalSecurityContext.getUserPrincipal()).andReturn(null)
 
         replay requestContext, originalSecurityContext, subject
 
-        ThreadContext.bind(subject)
-
         assertNull shrioContext.getUserPrincipal()
 
         verify requestContext, originalSecurityContext, subject
@@ -115,16 +111,13 @@ class ShiroSecurityContextTest {
         def originalSecurityContext = mock(SecurityContext)
         def shrioContext = new ShiroSecurityContext(requestContext)
         def subject = mock(Subject)
-        def testPrincipal = new TestPrincipal("Tester")
+        ThreadContext.bind(subject)
 
-        expect(subject.getPrincipal()).andReturn(testPrincipal)
         
expect(requestContext.getSecurityContext()).andReturn(originalSecurityContext).anyTimes()
-        expect(subject.getPrincipals()).andReturn(new 
SimplePrincipalCollection(testPrincipal, "test-realm"))
+        expect(subject.getPrincipals()).andReturn(new 
SimplePrincipalCollection(new TestPrincipal("Tester"), "test-realm"))
 
         replay requestContext, originalSecurityContext, subject
 
-        ThreadContext.bind(subject)
-
         def resultPrincipal = shrioContext.getUserPrincipal()
         assertSame "Tester", resultPrincipal.getName()
 
@@ -137,15 +130,13 @@ class ShiroSecurityContextTest {
         def originalSecurityContext = mock(SecurityContext)
         def shrioContext = new ShiroSecurityContext(requestContext)
         def subject = mock(Subject)
+        ThreadContext.bind(subject)
 
-        expect(subject.getPrincipal()).andReturn("test-principal")
         
expect(requestContext.getSecurityContext()).andReturn(originalSecurityContext).anyTimes()
         expect(subject.hasRole("test-role")).andReturn(true)
 
         replay requestContext, originalSecurityContext, subject
 
-        ThreadContext.bind(subject)
-
         assertTrue shrioContext.isUserInRole("test-role")
 
         verify requestContext, originalSecurityContext, subject
@@ -157,15 +148,13 @@ class ShiroSecurityContextTest {
         def originalSecurityContext = mock(SecurityContext)
         def shrioContext = new ShiroSecurityContext(requestContext)
         def subject = mock(Subject)
+        ThreadContext.bind(subject)
 
-        expect(subject.getPrincipal()).andReturn("test-principal")
         
expect(requestContext.getSecurityContext()).andReturn(originalSecurityContext).anyTimes()
         expect(subject.hasRole("test-role")).andReturn(false)
 
         replay requestContext, originalSecurityContext, subject
 
-        ThreadContext.bind(subject)
-
         assertFalse shrioContext.isUserInRole("test-role")
 
         verify requestContext, originalSecurityContext, subject
@@ -177,16 +166,14 @@ class ShiroSecurityContextTest {
         def originalSecurityContext = mock(SecurityContext)
         def shrioContext = new ShiroSecurityContext(requestContext)
         def subject = mock(Subject)
+        ThreadContext.bind(subject)
 
-        expect(subject.getPrincipal()).andReturn(null) // we are just testing 
equality here
         
expect(requestContext.getSecurityContext()).andReturn(originalSecurityContext).anyTimes()
         expect(subject.getPrincipals()).andReturn(new 
SimplePrincipalCollection("Tester", "test-realm"))
         expect(subject.getPrincipals()).andReturn(new 
SimplePrincipalCollection("Tester", "test-realm"))
 
         replay requestContext, originalSecurityContext, subject
 
-        ThreadContext.bind(subject)
-
         def result1Principal = shrioContext.getUserPrincipal()
         def result2Principal = shrioContext.getUserPrincipal()
 

Reply via email to