@Override public void invoke(ValveContext context) throws ContainerException { HttpServletRequest servletRequest = (HttpServletRequest) context.getServletRequest(); HstRequestContext requestContext = (HstRequestContext) servletRequest.getAttribute(ContainerConstants.HST_REQUEST_CONTEXT); ResolvedMount resolvedMount = requestContext.getResolvedMount(); boolean subjectBasedSession = resolvedMount.isSubjectBasedSession(); boolean sessionStateful = resolvedMount.isSessionStateful(); if (subjectBasedSession) { if (requestContext.getSubject() == null) { log.debug("Subject based session cannot be set because no subject is found."); } else { // we could include the session userId in the cachekey, but instead we mark the // request as uncacheable for subjectbased request rendering markRequestUncacheable(context); setSubjectSession(context, requestContext, sessionStateful); } } context.invokeNext(); }
@Override public void invoke(ValveContext context) throws ContainerException { HttpServletRequest servletRequest = context.getServletRequest(); HstRequestContext requestContext = (HstRequestContext) servletRequest.getAttribute(ContainerConstants.HST_REQUEST_CONTEXT); ResolvedMount resolvedMount = requestContext.getResolvedMount(); boolean subjectBasedSession = resolvedMount.isSubjectBasedSession(); boolean sessionStateful = resolvedMount.isSessionStateful(); if (subjectBasedSession) { clearSubjectSession(context, requestContext, sessionStateful); } // ensure Session isn't tried to reuse again (it has been returned to the pool anyway) ((HstMutableRequestContext) requestContext).setSession(null); if (sessionSecurityDelegation.sessionSecurityDelegationEnabled()) { sessionSecurityDelegation.cleanupSessionDelegates(requestContext); } // continue context.invokeNext(); }
HstRequestContext requestContext = (HstRequestContext) servletRequest.getAttribute(ContainerConstants.HST_REQUEST_CONTEXT); ResolvedMount resolvedMount = requestContext.getResolvedMount(); boolean subjectBasedSession = resolvedMount.isSubjectBasedSession(); boolean sessionStateful = resolvedMount.isSessionStateful();