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 d5c19c440d..b96c97d1b2 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 @@ -117,7 +117,7 @@ protected Session decorate(Session session) { if (session == null) { throw new IllegalArgumentException("session cannot be null"); } - return new StoppingAwareProxiedSession(session, this); + return session instanceof StoppingAwareProxiedSession ? session : new StoppingAwareProxiedSession(session, this); } public SecurityManager getSecurityManager() {