Даже если мой встроенный причал настроен на «https». Но он отвечает с кодом сервера 200 при доступе по http - PullRequest
0 голосов
/ 09 января 2020

Ниже приведен фрагмент кода, который используется для запуска встроенного сервера Jetty. Я пытаюсь получить доступ к своему приложению через http: //, однако оно настроено на https. В этом случае я не должен получить код ответа сервера 200. Я не уверен, где я делаю ошибку. Я использую встроенный причал (jetty-all-9.4.18.v20190429-uber.jar)

private static void startServer() throws Exception {
        //guiInetAddress = new InetSocketAddress(GuiGlobalProps.guiIP, GuiGlobalProps.guiPort);
        warFile = getResourceAsStream(GuiGlobalProps.guiWarFileName);
        QueuedThreadPool threadPool = new QueuedThreadPool();
        threadPool.setMinThreads(GuiGlobalProps.guiNoOfServerMinThreads);
        threadPool.setMaxThreads(GuiGlobalProps.guiNoOfServerMaxThreads);
        Server server = new Server(threadPool);
        HttpConfiguration http_config = new HttpConfiguration();
        http_config.setSendServerVersion(false);
        http_config.setRequestHeaderSize(8192);
        http_config.setSecureScheme("https");
        http_config.setSecurePort(GuiGlobalProps.guiPort);
        ServerConnector httpsConnector = null;
        HandlerList handlers = new HandlerList();        
            HttpConfiguration https_config = new HttpConfiguration(http_config);
            SecureRequestCustomizer src = new SecureRequestCustomizer();
            src.setStsIncludeSubDomains(true);
            https_config.addCustomizer(src);
         SslContextFactory sslContextFactory = new SslContextFactory();
         sslContextFactory.setKeyStorePath(getResourceAsStream((GuiGlobalProps.httpsKeyStoreFileName)));
            sslContextFactory.setKeyStorePassword(GuiGlobalProps.httpsKeyStoreFilePasswd);
            sslContextFactory.setKeyManagerPassword(GuiGlobalProps.httpsKeyStoreManagerPasswd);

            httpsConnector = new ServerConnector(server, new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()),
                    new HttpConnectionFactory(https_config));

            httpsConnector.setPort(GuiGlobalProps.guiPort);
            httpsConnector.setIdleTimeout(300000);      
            server.addConnector(httpsConnector);

        WebAppContext webapp = new WebAppContext();
        webapp.getSessionHandler().setSecureRequestOnly(true);
        webapp.getSessionHandler().setHttpOnly(true);
        webapp.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false"); 
        webapp.setContextPath("/");
        webapp.setTempDirectory(new File(workingDir.getAbsolutePath() + "/eomgui"));
        webapp.setWar(warFile);
        webapp.addServlet(new ServletHolder(new FileUploadServlet()),"/FileUpload");
        webapp.addServlet(new ServletHolder(new ManualFulfillmentFileUploadServlet()),"/ManualFulfillmentFileUploadServlet");        
        handlers.addHandler(webapp);
        server.setHandler(handlers);
        server.start();
        server.join();
}
...