You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by fp...@apache.org on 2020/07/05 15:38:38 UTC
[shiro] branch master updated: [SHIRO-551] Implement toString() for
DelegatingSubject.java.
This is an automated email from the ASF dual-hosted git repository.
fpapon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shiro.git
The following commit(s) were added to refs/heads/master by this push:
new 062c8e3 [SHIRO-551] Implement toString() for DelegatingSubject.java.
new 8e3042f Merge pull request #220 from bmhm/SHIRO-551
062c8e3 is described below
commit 062c8e383b8f657c0b6ff735018d85a2e74d4322
Author: Benjamin Marwell <bm...@gmail.com>
AuthorDate: Fri May 1 11:10:26 2020 +0200
[SHIRO-551] Implement toString() for DelegatingSubject.java.
---
.../shiro/subject/support/DelegatingSubject.java | 13 +++++++++++++
.../apache/shiro/subject/DelegatingSubjectTest.java | 21 +++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/core/src/main/java/org/apache/shiro/subject/support/DelegatingSubject.java b/core/src/main/java/org/apache/shiro/subject/support/DelegatingSubject.java
index 5581b7a..d3040d1 100644
--- a/core/src/main/java/org/apache/shiro/subject/support/DelegatingSubject.java
+++ b/core/src/main/java/org/apache/shiro/subject/support/DelegatingSubject.java
@@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory;
import java.util.Collection;
import java.util.List;
+import java.util.StringJoiner;
import java.util.concurrent.Callable;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -515,4 +516,16 @@ public class DelegatingSubject implements Subject {
return popped;
}
+
+ @Override
+ public String toString() {
+ return new StringJoiner(", ", "DelegatingSubject{", "}")
+ .add("principals=" + principals)
+ .add("authenticated=" + authenticated)
+ .add("host='******")
+ .add("session='******'")
+ .add("sessionCreationEnabled=" + sessionCreationEnabled)
+ .add("securityManager=" + securityManager)
+ .toString();
+ }
}
diff --git a/core/src/test/java/org/apache/shiro/subject/DelegatingSubjectTest.java b/core/src/test/java/org/apache/shiro/subject/DelegatingSubjectTest.java
index ee04e6d..2bc0bbe 100644
--- a/core/src/test/java/org/apache/shiro/subject/DelegatingSubjectTest.java
+++ b/core/src/test/java/org/apache/shiro/subject/DelegatingSubjectTest.java
@@ -216,4 +216,25 @@ public class DelegatingSubjectTest {
LifecycleUtils.destroy(sm);
}
+
+ @Test
+ public void testToString() {
+ // given
+ String username = "jsmith";
+
+ DefaultSecurityManager securityManager = new DefaultSecurityManager();
+ PrincipalCollection identity = new SimplePrincipalCollection(username, "testRealm");
+ final String hostname = "localhost";
+ final DelegatingSubject sourceSubject = new DelegatingSubject(identity, true, hostname, null, securityManager);
+
+ // when
+ final String subjectToString = sourceSubject.toString();
+
+ // then
+ final Session session = sourceSubject.getSession(true);
+ String sesionId = (String) session.getId();
+ assertFalse("toString must not leak sessionId", subjectToString.contains(sesionId));
+ assertFalse("toString must not leak host", subjectToString.contains(hostname));
+ }
+
}