From 7399c9a7a543df1926be885973f7eae95e2a6cf2 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Fri, 29 Jul 2011 09:24:02 -0500 Subject: [PATCH] SEC-1792: Fixed NullPointerException in RunAsUserToken#toString() --- .../security/access/intercept/RunAsUserToken.java | 3 ++- .../security/access/intercept/RunAsUserTokenTests.java | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/springframework/security/access/intercept/RunAsUserToken.java b/core/src/main/java/org/springframework/security/access/intercept/RunAsUserToken.java index 178b6e2eb4..47d58e209f 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/RunAsUserToken.java +++ b/core/src/main/java/org/springframework/security/access/intercept/RunAsUserToken.java @@ -71,7 +71,8 @@ public class RunAsUserToken extends AbstractAuthenticationToken { public String toString() { StringBuilder sb = new StringBuilder(super.toString()); - sb.append("; Original Class: ").append(this.originalAuthentication.getName()); + String className = this.originalAuthentication == null ? null : this.originalAuthentication.getName(); + sb.append("; Original Class: ").append(className); return sb.toString(); } diff --git a/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java b/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java index 58e233868f..2ce5ec6a29 100644 --- a/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java +++ b/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java @@ -58,6 +58,13 @@ public class RunAsUserTokenTests extends TestCase { public void testToString() { RunAsUserToken token = new RunAsUserToken("my_password", "Test", "Password", AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"), UsernamePasswordAuthenticationToken.class); - assertTrue(token.toString().lastIndexOf("Original Class:") != -1); + assertTrue(token.toString().lastIndexOf("Original Class: "+UsernamePasswordAuthenticationToken.class.getName().toString()) != -1); + } + + // SEC-1792 + public void testToStringNullOriginalAuthentication() { + RunAsUserToken token = new RunAsUserToken("my_password", "Test", "Password", + AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"), null); + assertTrue(token.toString().lastIndexOf("Original Class: null") != -1); } }