public void run() throws Exception { org.eclipse.jetty.util.log.Log.setLog(new Slf4jLog()); Server server = new Server(port); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); context.setWelcomeFiles(new String[]{ "demo.html" }); context.setResourceBase(httpPath); HashSessionIdManager idmanager = new HashSessionIdManager(); server.setSessionIdManager(idmanager); HashSessionManager manager = new HashSessionManager(); SessionHandler sessions = new SessionHandler(manager); sessions.setHandler(context); context.addServlet(new ServletHolder(new Servlet(this::getPinto)),"/pinto/*"); ServletHolder holderPwd = new ServletHolder("default", DefaultServlet.class); context.addServlet(holderPwd,"/*"); server.setHandler(sessions); server.start(); server.join(); }
public void run() throws Exception { org.eclipse.jetty.util.log.Log.setLog(new Slf4jLog()); Server server = new Server(port); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); context.setResourceBase(httpPath); HashSessionIdManager idmanager = new HashSessionIdManager(); server.setSessionIdManager(idmanager); HashSessionManager manager = new HashSessionManager(); SessionHandler sessions = new SessionHandler(manager); sessions.setHandler(context); context.addServlet(new ServletHolder(new Servlet(this::getPinto)),"/pinto/*"); ServletHolder holderPwd = new ServletHolder("default", DefaultServlet.class); context.addServlet(holderPwd,"/*"); server.setHandler(sessions); new Thread(new Console(getPinto(),port,build, () -> { try { server.stop(); } catch (Exception e) { e.printStackTrace(); } }), "console_thread").start(); server.start(); server.join(); }
private ContextHandlerCollection attachHandlers(final File staticsFolder, final Module... overrides) { final MoodcatHandler moodcatHandler = new MoodcatHandler(this, staticsFolder, overrides); final ResourceHandler resources = new ResourceHandler(); resources.setBaseResource(Resource.newResource(staticsFolder)); resources.setDirectoriesListed(false); resources.setCacheControl("max-age=3600"); final HashSessionManager hashSessionManager = new HashSessionManager(); hashSessionManager.setMaxInactiveInterval(SESSION_KEEP_ALIVE); final ContextHandlerCollection handlers = new ContextHandlerCollection(); // CHECKSTYLE:OFF handlers.addContext("/", "/").setHandler(resources); handlers.addContext("/", "/").setHandler(moodcatHandler); // CHECKSTYLE:ON return handlers; }
public SessionManager build() throws IOException { HashSessionManager manager = new HashSessionManager(); manager.setSessionTrackingModes(ImmutableSet.of(SessionTrackingMode.COOKIE)); manager.setHttpOnly(true); manager.getSessionCookieConfig().setHttpOnly(true); manager.setDeleteUnrestorableSessions(true); manager.setStoreDirectory(new File(getPath())); manager.getSessionCookieConfig().setMaxAge((int) cookieMaxAge.toSeconds()); manager.setRefreshCookieAge((int) cookieRefreshAge.toSeconds()); manager.setMaxInactiveInterval((int) maxInactiveInterval.toSeconds()); manager.setIdleSavePeriod((int) idleSavePeriod.toSeconds()); manager.setSavePeriod((int) savePeriod.toSeconds()); manager.setScavengePeriod((int) scavengePeriod.toSeconds()); return manager; }
public WebServer(Config config, DataSource dataSource) { this.config = config; this.dataSource = dataSource; sessionManager = new HashSessionManager(); int sessionTimeout = config.getInteger("web.sessionTimeout"); if (sessionTimeout != 0) { sessionManager.setMaxInactiveInterval(sessionTimeout); } initServer(); initApi(); if (config.getBoolean("web.console")) { initConsole(); } switch (config.getString("web.type", "new")) { case "old": initOldWebApp(); break; default: initWebApp(); break; } initClientProxy(); server.setHandler(handlers); server.addBean(new ErrorHandler() { @Override protected void handleErrorPage( HttpServletRequest request, Writer writer, int code, String message) throws IOException { writer.write("<!DOCTYPE<html><head><title>Error</title></head><html><body>" + code + " - " + HttpStatus.getMessage(code) + "</body></html>"); } }, false); }
private void configureSession(WebAppContext context) { SessionManager sessionManager = context.getSessionHandler().getSessionManager(); int sessionTimeout = (getSessionTimeout() > 0 ? getSessionTimeout() : -1); sessionManager.setMaxInactiveInterval(sessionTimeout); if (isPersistSession()) { Assert.isInstanceOf(HashSessionManager.class, sessionManager, "Unable to use persistent sessions"); configurePersistSession(sessionManager); } }
private void configurePersistSession(SessionManager sessionManager) { try { ((HashSessionManager) sessionManager) .setStoreDirectory(getValidSessionStoreDir()); } catch (IOException ex) { throw new IllegalStateException(ex); } }
private static ServletContextHandler getServletContextHandler(AnnotationConfigWebApplicationContext context) throws IOException { ServletContextHandler contextHandler = new ServletContextHandler(); WebConfigurer configurer = new WebConfigurer(); configurer.setContext(context); contextHandler.addEventListener(configurer); // Create the SessionHandler (wrapper) to handle the sessions HashSessionManager manager = new HashSessionManager(); SessionHandler sessions = new SessionHandler(manager); contextHandler.setHandler(sessions); return contextHandler; }
private static ServletContextHandler getServletContextHandler(AnnotationConfigWebApplicationContext context) throws IOException { ServletContextHandler contextHandler = new ServletContextHandler(); JPAWebConfigurer configurer = new JPAWebConfigurer(); configurer.setContext(context); contextHandler.addEventListener(configurer); // Create the SessionHandler (wrapper) to handle the sessions HashSessionManager manager = new HashSessionManager(); SessionHandler sessions = new SessionHandler(manager); contextHandler.setHandler(sessions); return contextHandler; }
private void restoreSessions() { try { HashSessionManager hashSessionManager = (HashSessionManager) jettySessionManager; hashSessionManager.setStoreDirectory(FileUtils.createDirIfNotExists(sessionStoreDir, "Session persistence")); hashSessionManager.setSavePeriod(60); hashSessionManager.setMaxInactiveInterval(-1); hashSessionManager.restoreSessions(); } catch (Exception e) { LOG.warning("Cannot restore sessions"); } }
@Provides @Singleton public org.eclipse.jetty.server.SessionManager provideSessionManager( @Named(CoreSettings.SESSION_COOKIE_MAX_AGE) int sessionCookieMaxAge) { HashSessionManager sessionManager = new HashSessionManager(); sessionManager.getSessionCookieConfig().setMaxAge(sessionCookieMaxAge); return sessionManager; }
protected Server createStaticResourcesServer(Server server, ServletContextHandler context, String home) throws Exception { context.setContextPath("/"); SessionManager sm = new HashSessionManager(); SessionHandler sh = new SessionHandler(sm); context.setSessionHandler(sh); if (home != null) { String[] resources = home.split(":"); if (LOG.isDebugEnabled()) { LOG.debug(">>> Protocol found: " + resources[0] + ", and resource: " + resources[1]); } if (resources[0].equals("classpath")) { // Does not work when deployed as a bundle // context.setBaseResource(new JettyClassPathResource(getCamelContext().getClassResolver(), resources[1])); URL url = this.getCamelContext().getClassResolver().loadResourceAsURL(resources[1]); context.setBaseResource(Resource.newResource(url)); } else if (resources[0].equals("file")) { context.setBaseResource(Resource.newResource(resources[1])); } DefaultServlet defaultServlet = new DefaultServlet(); ServletHolder holder = new ServletHolder(defaultServlet); // avoid file locking on windows // http://stackoverflow.com/questions/184312/how-to-make-jetty-dynamically-load-static-pages holder.setInitParameter("useFileMappedBuffer", "false"); context.addServlet(holder, "/"); } server.setHandler(context); return server; }
@Override public void run(final Configuration configuration, final Environment environment) throws Exception { // FIXME: Doesn't scale to 1+ dynos final String githubHostname = optionalEnv("GITHUB_HOSTNAME").orElse("github.com"); environment.servlets().setSessionHandler(new SessionHandler(new HashSessionManager())); environment.jersey().register(new Milestones(asList(env("REPOSITORIES").split(",")), githubHostname)); environment.jersey().register(new OAuth(env("GITHUB_CLIENT_ID"), env("GITHUB_CLIENT_SECRET"), githubHostname)); environment.jersey().register(new Github(githubHostname)); environment.jersey().register(GithubExceptionMapper.class); }
public static void configure(HashSessionManager sessionManager) { sessionManager.setHttpOnly(true); sessionManager.setSessionCookie("APPSESSIONID"); try { Path dir = Files.createDirectories(Paths.get(System.getProperty("java.io.tmpdir"), "app-session-store")); sessionManager.setStoreDirectory(dir.toFile()); } catch (IOException e) { logger.warn(e.getMessage(), e); } }
@Override public void configure(ConfigurableApp<Pipes> app) { app.configure(SessionManager.class, HashSessionManager::new, SessionManagerConfig::configure); app.configure(ObjectMapper.class, JacksonJsonConfig::configure); app.configure((LoggerContext) LoggerFactory.getILoggerFactory(), LogbackConfig::configure); app.configure(org.hibernate.cfg.Configuration.class, HibernateConfig::configure); }
public HttpTestUtil(final ContextCustomizer customizer) throws Exception { Security.addProvider(new BouncyCastleProvider()); serverKeyStore = createTempFile("server.jks"); prepareCertStore(serverKeyStore); server = new Server(); WebAppContext ctx = new WebAppContext(); SessionManager sm = new HashSessionManager(); SessionHandler sh = new SessionHandler(sm); ctx.setSessionHandler(sh); customizer.customize(ctx); ctx.setContextPath("/go"); server.setHandler(ctx); }
private void restoreSessions() { try { HashSessionManager hashSessionManager = (HashSessionManager) jettySessionManager; hashSessionManager.setStoreDirectory(FileUtils.createDirIfNotExists(sessionStoreDir, "Session persistence")); hashSessionManager.setSavePeriod(60); hashSessionManager.restoreSessions(); } catch (Exception e) { LOG.warning("Cannot restore sessions"); } }
@Provides @Singleton public org.eclipse.jetty.server.SessionManager provideSessionManager(Config config) { HashSessionManager sessionManager = new HashSessionManager(); sessionManager.getSessionCookieConfig().setMaxAge(config.getInt("network.session_cookie_max_age")); return sessionManager; }
public static Server run(ResourceConfig application, Properties properties, int port, String originFilter, String aliasName, File keystoreFile, String password, String frontendRoot, String apiPathPattern, boolean copyWebDir) { try { QueuedThreadPool threadPool = new QueuedThreadPool( Integer.valueOf(properties.getProperty("jetty.maxThreads")), Integer.valueOf(properties.getProperty("jetty.minThreads")), Integer.valueOf(properties.getProperty("jetty.idleTimeout")), new ArrayBlockingQueue<>(Integer.valueOf(properties.getProperty("jetty.maxQueueSize")))); Server server = new Server(threadPool); HttpConfiguration config = new HttpConfiguration(); if (keystoreFile != null) { log.info("Jetty runner {}. SSL enabled.", application.getClass()); SslContextFactory sslFactory = new SslContextFactory(); sslFactory.setCertAlias(aliasName); String path = keystoreFile.getAbsolutePath(); if (!keystoreFile.exists()) { log.error("Couldn't load keystore file: {}", path); return null; } sslFactory.setKeyStorePath(path); sslFactory.setKeyStorePassword(password); sslFactory.setKeyManagerPassword(password); sslFactory.setTrustStorePath(path); sslFactory.setTrustStorePassword(password); config.setSecureScheme("https"); config.setSecurePort(port); config.addCustomizer(new SecureRequestCustomizer()); ServerConnector https = new ServerConnector(server, new SslConnectionFactory(sslFactory, "http/1.1"), new HttpConnectionFactory(config)); https.setPort(port); server.setConnectors(new Connector[]{https}); } else { ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(config)); http.setPort(port); server.setConnectors(new Connector[]{http}); } Handler handler = ContainerFactory.createContainer(JettyHttpContainer.class, application); if (originFilter != null) handler = new CrossDomainFilter(handler, originFilter); if (frontendRoot != null) { WebAppContext htmlHandler = new WebAppContext(); htmlHandler.setResourceBase(frontendRoot); htmlHandler.setCopyWebDir(copyWebDir); Map<Pattern, Handler> pathToHandler = new HashMap<>(); pathToHandler.put(Pattern.compile(apiPathPattern), handler); SessionManager sm = new HashSessionManager(); SessionHandler sh = new SessionHandler(sm); htmlHandler.setSessionHandler(sh); DefaultServlet defaultServlet = new DefaultServlet(); ServletHolder holder = new ServletHolder(defaultServlet); holder.setInitParameter("useFileMappedBuffer", Boolean.toString(!copyWebDir)); holder.setInitParameter("cacheControl", "no-store,no-cache,must-revalidate,max-age=-1,public"); htmlHandler.addServlet(holder, "/"); handler = new RequestsRouter(htmlHandler, pathToHandler, frontendRoot); } server.setHandler(handler); server.start(); while (!server.isStarted()) { Thread.sleep(50); } log.info("Jetty server started {} on port {}", application.getClass(), port); return server; } catch (Exception e) { log.error(String.format("Jetty start failed %s.", application.getClass()), e); return null; } }
protected CometDServlet createServletForConnector(Server server, Connector connector, CometdEndpoint endpoint) throws Exception { CometDServlet servlet = new CometDServlet(); ServletContextHandler context = new ServletContextHandler(server, "/", ServletContextHandler.NO_SECURITY | ServletContextHandler.NO_SESSIONS); ServletHolder holder = new ServletHolder(); holder.setServlet(servlet); holder.setAsyncSupported(true); // Use baseResource to pass as a parameter the url // pointing to by example classpath:webapp if (endpoint.getBaseResource() != null) { String[] resources = endpoint.getBaseResource().split(":"); if (LOG.isDebugEnabled()) { LOG.debug(">>> Protocol found: " + resources[0] + ", and resource: " + resources[1]); } if (resources[0].equals("file")) { context.setBaseResource(Resource.newResource(resources[1])); } else if (resources[0].equals("classpath")) { // Create a URL handler using classpath protocol URL url = this.getCamelContext().getClassResolver().loadResourceAsURL(resources[1]); context.setBaseResource(Resource.newResource(url)); } } applyCrossOriginFiltering(endpoint, context); context.addServlet(holder, "/cometd/*"); context.addServlet("org.eclipse.jetty.servlet.DefaultServlet", "/"); context.setSessionHandler(new SessionHandler(new HashSessionManager())); holder.setInitParameter("timeout", Integer.toString(endpoint.getTimeout())); holder.setInitParameter("interval", Integer.toString(endpoint.getInterval())); holder.setInitParameter("maxInterval", Integer.toString(endpoint.getMaxInterval())); holder.setInitParameter("multiFrameInterval", Integer.toString(endpoint.getMultiFrameInterval())); holder.setInitParameter("JSONCommented", Boolean.toString(endpoint.isJsonCommented())); holder.setInitParameter("logLevel", Integer.toString(endpoint.getLogLevel())); return servlet; }
@Override protected void setUpContext(ServletContextHandler context) { context.addServlet(new ServletHolder(new SessionStoreServlet()), "/session"); context.addServlet(new ServletHolder(new HelloServlet()), "/*"); context.setSessionHandler(new SessionHandler(new HashSessionManager())); }
public AbstractApp() { configs.put(getKey(SessionManager.class, null), new HashSessionManager()); configs.put(getKey(ObjectMapper.class, null), configureObjectMapper(new ObjectMapper())); configs.put(getKey(ObjectMapper.class, XML_MAPPER_NAME), configureObjectMapper(new ObjectMapper())); }