/** * @since 1.0 */ public boolean isHttpSessionMode() { SessionManager sessionManager = getSessionManager(); return sessionManager instanceof WebSessionManager && ((WebSessionManager)sessionManager).isServletContainerSessions(); }
/** * @param sessionMode * @deprecated since 1.2 */ @Deprecated public void setSessionMode(String sessionMode) { log.warn("The 'sessionMode' property has been deprecated. Please configure an appropriate WebSessionManager " + "instance instead of using this property. This property/method will be removed in a later version."); String mode = sessionMode; if (mode == null) { throw new IllegalArgumentException("sessionMode argument cannot be null."); } mode = sessionMode.toLowerCase(); if (!HTTP_SESSION_MODE.equals(mode) && !NATIVE_SESSION_MODE.equals(mode)) { String msg = "Invalid sessionMode [" + sessionMode + "]. Allowed values are " + "public static final String constants in the " + getClass().getName() + " class: '" + HTTP_SESSION_MODE + "' or '" + NATIVE_SESSION_MODE + "', with '" + HTTP_SESSION_MODE + "' being the default."; throw new IllegalArgumentException(msg); } boolean recreate = this.sessionMode == null || !this.sessionMode.equals(mode); this.sessionMode = mode; if (recreate) { LifecycleUtils.destroy(getSessionManager()); SessionManager sessionManager = createSessionManager(mode); this.setInternalSessionManager(sessionManager); } }
private void applySessionManagerToSessionStorageEvaluatorIfPossible() { SubjectDAO subjectDAO = getSubjectDAO(); if (subjectDAO instanceof DefaultSubjectDAO) { SessionStorageEvaluator evaluator = ((DefaultSubjectDAO)subjectDAO).getSessionStorageEvaluator(); if (evaluator instanceof DefaultWebSessionStorageEvaluator) { ((DefaultWebSessionStorageEvaluator)evaluator).setSessionManager(getSessionManager()); } } }
@Test public void basicInstantiation() { final ShiroModuleTest.MockRealm mockRealm = createMock(ShiroModuleTest.MockRealm.class); ServletContext servletContext = createMock(ServletContext.class); Injector injector = Guice.createInjector(new ShiroWebModule(servletContext) { @Override protected void configureShiroWeb() { bindRealm().to(ShiroModuleTest.MockRealm.class); expose(SessionManager.class); } @Provides public ShiroModuleTest.MockRealm createRealm() { return mockRealm; } }); // we're not getting a WebSecurityManager here b/c it's not exposed. There didn't seem to be a good reason to // expose it outside of the Shiro module. SecurityManager securityManager = injector.getInstance(SecurityManager.class); assertNotNull(securityManager); assertTrue(securityManager instanceof WebSecurityManager); SessionManager sessionManager = injector.getInstance(SessionManager.class); assertNotNull(sessionManager); assertTrue(sessionManager instanceof ServletContainerSessionManager); assertTrue(((DefaultWebSecurityManager)securityManager).getSessionManager() instanceof ServletContainerSessionManager); }
public DefaultWebSecurityManager() { super(); DefaultWebSessionStorageEvaluator webEvalutator = new DefaultWebSessionStorageEvaluator(); ((DefaultSubjectDAO) this.subjectDAO).setSessionStorageEvaluator(webEvalutator); this.sessionMode = HTTP_SESSION_MODE; setSubjectFactory(new DefaultWebSubjectFactory()); setRememberMeManager(new CookieRememberMeManager()); setSessionManager(new ServletContainerSessionManager()); webEvalutator.setSessionManager(getSessionManager()); }
private Cache<Serializable, Session> getActiveSessionsCache() { SessionManager sessionManager = securityManager.getSessionManager(); if (sessionManager instanceof DefaultSessionManager) { SessionDAO sessionDao = ((DefaultSessionManager) sessionManager).getSessionDAO(); if (sessionDao instanceof CachingSessionDAO) { return ((CachingSessionDAO) sessionDao).getActiveSessionsCache(); } } return null; }