我使用Jetty ProxyServlet创建了一个简单的代理服务器。它适用于http协议。下面是我的代码(在groovy中):
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>
代码被包装到war,root.war中,并部署到Mac上的Jetty服务器上,端口为8080.然后我在Mac的系统偏好设置中启用了Web Proxy (HTTP)
和Secure Web Proxy (HTTPS)
。如前所述,它适用于http。但是,对于HTTPS,它不起作用。那么,我如何才能使用HTTPS?
BTW,根据这个例子(Jetty ProxyServlet with SSL support),似乎我需要添加ConnectHandler
,但我不知道如何在web.xml中实现这一点。
非常感谢。