【问题标题】:Request not redirect on Jetty Confidential port请求不在 Jetty 机密端口上重定向
【发布时间】:2013-03-02 11:20:12
【问题描述】:

我是 jetty 的新用户,正在开发一个将所有 http 请求重定向到 ssl 端口的码头服务器。我在码头教程中找到了机密端口的概念,但它不起作用。我正在添加代码快照请纠正我哪里出错了。

public class ServerMain {

    public static void main(String[] args) throws Exception {

        Server server = new Server();
        SslContextFactory con = new SslContextFactory();
        con.setKeyStorePath("D:/.keystore");
        con.setKeyStorePassword("password");
        con.setTrustStore("D:/jssecacerts");
        con.setTrustStorePassword("changeit");

        SslSelectChannelConnector connector = new SslSelectChannelConnector(con);
        connector.setHost("10.10.10.10");
        connector.setPort(8443);
        connector.setMaxIdleTime(30000);

        SelectChannelConnector connector1 = new SelectChannelConnector();
        connector1.setHost("10.10.10.10");
        connector1.setPort(8080);


        //connector1.setConfidentialPort(443);
        connector1.setConfidentialPort(8443);

        server.setConnectors(new Connector[] {connector, connector1});

        QueuedThreadPool threadPool = new QueuedThreadPool();

        threadPool.setMaxThreads(24);
        threadPool.setMinThreads(12);

        server.setThreadPool(threadPool);       

        ContextHandlerCollection contexts = new ContextHandlerCollection();

        ContextHandler mycontext = new ContextHandler();
        mycontext.setContextPath("/test");

        Handler handler = new MyHandler();
        mycontext.setHandler(handler);

        contexts.addHandler(mycontext);

        HandlerCollection handlers = new HandlerCollection();
        handlers.setHandlers(new Handler[] { contexts, new DefaultHandler() });

        server.setHandler(handlers);

        server.start();
        server.join();

    }   
}

MyHandler 也被添加到我正在处理请求并发送 200 ok 的地方。

请帮帮我。

【问题讨论】:

  • 你遇到了什么错误,到底出了什么问题?
  • 我没有收到任何错误。但是请求没有在 ssl 端口上重定向。案例 1:当我点击一个 url (10.10.10.10:8080/test) 时,它没有在我的浏览器上显示任何 ssl 异常,只是与服务器连接。在这种情况下,它应该在浏览器上引发异常。案例 2:当我点击 (10.10.10.10:8443/test) 时,它显示 ssl 异常。

标签: java jetty


【解决方案1】:

为什么码头应该使用您当前的设置重定向到 https 连接器?要实现这样的目标,您必须例如按照此处所述向您的 webapp 添加一个安全约束(我在 google 中找到的第一个链接。只需搜索 webapp security-constraint 机密以查找更多示例):http://docs.oracle.com/javaee/6/tutorial/doc/gkbaa.html

或者添加一个处理程序,从 http 连接器重定向到 https 连接器或类似的东西。

【讨论】:

  • 我正在使用嵌入式 Jetty,但在这里我找到了所有示例和 web.xml 和注释表单的设置。因此,如果您在嵌入式码头中有任何示例,请提供给我,因为我不知道如何在嵌入式码头中设置安全约束。提前致谢。
【解决方案2】:

您可能需要在web.xml 中配置transport-guarantee 元素才能使其工作。

见: http://docs.oracle.com/cd/E19226-01/820-7627/bncbk/index.html

【讨论】:

  • 请不要发布仅链接的答案,因为链接可能会中断。
  • 这不完全是一个仅链接的答案。它仍然在没有链接的情况下说些什么。不过,最好将更多信息编辑到答案本身中。
猜你喜欢
  • 1970-01-01
  • 2018-08-23
  • 2021-01-19
  • 2012-06-19
  • 1970-01-01
  • 2014-04-01
  • 2019-12-11
  • 1970-01-01
  • 2020-05-12
相关资源
最近更新 更多