private void configureSessionsAndSecurity(MutableServletContextHandler handler, Server server) { handler.setServer(server); if (handler.isSecurityEnabled()) { handler.getSecurityHandler().setServer(server); } if (handler.isSessionsEnabled()) { handler.getSessionHandler().setServer(server); } }
private void configureSessionsAndSecurity(MutableServletContextHandler handler, Server server) { handler.setServer(server); if (handler.isSecurityEnabled()) { handler.getSecurityHandler().setServer(server); } if (handler.isSessionsEnabled()) { handler.getSessionHandler().setServer(server); } }
@Override public void start() throws Exception { for (MutableServletContextHandler environment : listeners.keySet()) { final SessionHandler sessionHandler = environment.getSessionHandler(); if (sessionHandler == null) { final String msg = String.format( "Can't register session listeners for %s because sessions support is not enabled: %s", environment.getDisplayName().toLowerCase(), Joiner.on(',').join(listeners.get(environment).stream() .map(it -> FeatureUtils.getInstanceClass(it).getSimpleName()) .collect(Collectors.toList()))); if (failWithoutSession) { throw new IllegalStateException(msg); } else { logger.warn(msg); } } else { listeners.get(environment).forEach(sessionHandler::addEventListener); } } }
@Override public void start() throws Exception { for (MutableServletContextHandler environment : listeners.keySet()) { final SessionHandler sessionHandler = environment.getSessionHandler(); if (sessionHandler == null) { final String msg = String.format( "Can't register session listeners for %s because sessions support is not enabled: %s", environment.getDisplayName().toLowerCase(), Joiner.on(',').join(listeners.get(environment).stream() .map(it -> FeatureUtils.getInstanceClass(it).getSimpleName()) .collect(Collectors.toList()))); if (failWithoutSession) { throw new IllegalStateException(msg); } else { logger.warn(msg); } } else { listeners.get(environment).forEach(sessionHandler::addEventListener); } } }
private void initializeShiro(final ShiroConfiguration config, Environment environment) { if (config.isEnabled()) { LOG.debug("Shiro is enabled"); if (config.isDropwizardSessionHandler() && environment.getApplicationContext().getSessionHandler() == null) { LOG.debug("Adding DropWizard SessionHandler to environment."); environment.getApplicationContext().setSessionHandler(new SessionHandler()); } // This line ensure Shiro is configured and its .ini file found in the designated location. // e.g., via the shiroConfigLocations ContextParameter with fall-backs to default locations if that parameter isn't specified. environment.servlets().addServletListeners( new EnvironmentLoaderListener() ); final String filterUrlPattern = config.getSecuredUrlPattern(); LOG.debug("ShiroFilter will check URLs matching '{}'.", filterUrlPattern); environment.servlets().addFilter("shiro-filter", new ShiroFilter()).addMappingForUrlPatterns( EnumSet.allOf(DispatcherType.class), true, filterUrlPattern ); } else { LOG.debug("Shiro is not enabled"); } }