我是jetty的新用户并开发了一个将所有http请求重定向到ssl端口的jetty服务器。我在jetty教程中找到了机密端口的概念,但它不起作用。我正在添加代码快照plz纠正我在哪里出错。
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的地方。
请帮助我。
答案 0 :(得分:0)
为什么jetty会使用您当前的设置重定向到https连接器?要实现这样的目的,你必须为你的webapp添加一个安全约束,如此处所述(我在google中找到的第一个链接。只需搜索webapp security-constraint机密以查找更多示例):http://docs.oracle.com/javaee/6/tutorial/doc/gkbaa.html
或者添加一个处理程序,从http连接器重定向到https连接器或类似的东西。
答案 1 :(得分:0)
您可能需要在transport-guarantee
中配置web.xml
元素才能使其正常工作。
请参阅: http://docs.oracle.com/cd/E19226-01/820-7627/bncbk/index.html