我是jetty的新用户,正在开发一个jetty服务器,它将所有http请求重定向到ssl端口。我在 jetty 教程中找到了 secret 端口的概念,但它不起作用。我正在添加代码快照,请纠正我出错的地方。
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 的位置。
请帮助我。
最佳答案
为什么jetty应该使用当前设置重定向到https连接器?要实现这样的目标,您必须向您的 web 应用程序添加安全约束,如下所述(我在 google 中找到的第一个链接。只需搜索 webapp security-constraint secret 即可找到更多示例):http://docs.oracle.com/javaee/6/tutorial/doc/gkbaa.html
或者添加一个处理程序,从 http 连接器重定向到 https 连接器或类似的东西。
关于java - 请求未在 Jetty Confidential 端口上重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15403687/