浏览代码

Add toString() method so more informative when context propagation takes place, such as via ContextPropagatingRemoteInvocation.

Ben Alex 21 年之前
父节点
当前提交
ba16c01b90

+ 13 - 0
core/src/main/java/org/acegisecurity/context/SecureContextImpl.java

@@ -39,6 +39,19 @@ public class SecureContextImpl extends ContextImpl implements SecureContext {
         return this.authentication;
     }
 
+    public String toString() {
+        StringBuffer sb = new StringBuffer();
+        sb.append(super.toString());
+
+        if (this.authentication == null) {
+            sb.append(": Null authentication");
+        } else {
+            sb.append(": Authentication: " + this.authentication);
+        }
+
+        return sb.toString();
+    }
+
     public void validate() throws ContextInvalidException {
         super.validate();
 

+ 3 - 0
core/src/test/java/org/acegisecurity/context/SecureContextImplTests.java

@@ -55,11 +55,14 @@ public class SecureContextImplTests extends TestCase {
         context.setAuthentication(auth);
         context.validate();
         assertEquals(auth, context.getAuthentication());
+        assertTrue(context.toString().lastIndexOf("marissa") != -1);
     }
 
     public void testSecureContextDetectsMissingAuthenticationObject() {
         SecureContext context = new SecureContextImpl();
 
+        assertTrue(context.toString().lastIndexOf("Null authentication") != -1);
+
         try {
             context.validate();
             fail("Should have thrown ContextInvalidException");