package com.hwlcn.security.web.mgt; import com.hwlcn.security.mgt.DefaultSessionStorageEvaluator; import com.hwlcn.security.session.mgt.NativeSessionManager; import com.hwlcn.security.session.mgt.SessionManager; import com.hwlcn.security.subject.Subject; import com.hwlcn.security.web.subject.WebSubject; import com.hwlcn.security.web.util.WebUtils; public class DefaultWebSessionStorageEvaluator extends DefaultSessionStorageEvaluator { private SessionManager sessionManager; void setSessionManager(SessionManager sessionManager) { this.sessionManager = sessionManager; } @SuppressWarnings({"SimplifiableIfStatement"}) @Override public boolean isSessionStorageEnabled(Subject subject) { if (subject.getSession(false) != null) { return true; } if (!isSessionStorageEnabled()) { return false; } if (!(subject instanceof WebSubject) && (this.sessionManager != null && !(this.sessionManager instanceof NativeSessionManager))) { return false; } return WebUtils._isSessionCreationEnabled(subject); } }