我使用Jetty ProxyServlet制作了一个简单的代理服务器。它适用于http协议。下面是我的代码(常规):Jetty ProxyServlet:如何添加HTTPS支持?
MyProxyServlet
class MyProxyServlet extends ProxyServlet {
static final Logger logger = LoggerFactory.getLogger(this)
@Override
void init(ServletConfig config) throws ServletException {
super.init(config)
logger.info('>>> init done!')
}
@Override
void service(HttpServletRequest request, HttpServletResponse response) {
logger.info('>>> got a request')
super.service(request, response)
response.addHeader('foo', 'bar')
}
}
的web.xml
<servlet>
<servlet-name>MyProxyServlet</servlet-name>
<servlet-class>com.foobar.MyProxyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>MyProxyServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
的代码被包裹成一场战争,root.war,并部署到在我的Mac上使用端口8080的Jetty服务器。然后在我的Mac的系统偏好设置中启用Web Proxy (HTTP)
和Secure Web Proxy (HTTPS)
。如前所述,它适用于http。但是,对于HTTPS,它不起作用。那么,我怎样才能使它与HTTPS协同工作呢?
顺便说一句,根据此示例(Jetty ProxyServlet with SSL support),似乎我需要添加ConnectHandler
,但我不知道如何在web.xml中实现此目的。
非常感谢。
如果要针对码头9或写这个新的代码Servlet 3.1,那么*强烈建议*使用'AsyncProxyServlet'(正常的ProxyServlet仅适用于来自servlet 2.5的迁移代码) – 2014-09-02 13:34:54