小编Kev*_*ick的帖子

Embedded Jetty:在安全的 https 服务器中,ContextHandler 重定向到 http URI

我正在使用嵌入式 Jetty 构建沙箱 RESTful API。我的概念验证设计:一个简单的嵌入式码头服务器,它 (1) 接受 SSL 端口上的连接,(2) 使用 ContextHandlerCollection 根据 URI 前缀调用正确的处理程序。

我的原始测试使用简单的非 SSL 连接,似乎运行良好(注意,附录中的导入代码和助手 HelloHandler 类)。

public static void main(String[] args) throws Exception {
    Server server = new Server(12000); 

    ContextHandler test1Context = new ContextHandler();
    test1Context.setContextPath("/test1");
    test1Context.setHandler(new HelloHandler("Hello1"));

    ContextHandler test2Context = new ContextHandler();
    test2Context.setContextPath("/test2");
    test2Context.setHandler(new HelloHandler("Hello2"));

    ContextHandlerCollection contextHandlers = new ContextHandlerCollection();
    contextHandlers.setHandlers(new Handler[] { test1Context, test2Context });

    server.setHandler(contextHandlers);
    server.start();
    server.join();
}
Run Code Online (Sandbox Code Playgroud)

但是,在对此进行测试时,我忽略了当我省略尾部正斜杠时发生浏览器重定向的情况,因此http://localhost:12000/test1 被重定向到http://localhost:12000/test1/. (FWIW,该站点稍后将转化为 4 个多小时的故障排除)。

当我切换到 HTTPS SSL 连接时,一切都出错了。代码如下:

public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

rest ssl jetty embedded-jetty http-redirect

5
推荐指数
1
解决办法
4105
查看次数

标签 统计

embedded-jetty ×1

http-redirect ×1

jetty ×1

rest ×1

ssl ×1