Falando no Jetty 9 ... Veja como você pode fazer isso, desde que o seu conector SSL já esteja funcionando:
Etapa 1: Certifique-se de que tudo passe pelo SSL, adicionando isso ao seu web.xml. Se você tentar acessar um recurso via HTTP, isso retornará um erro 403! SECURE
<security-constraint>
<web-resource-collection>
<web-resource-name>Everything</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Etapa 2: redirecione o Jetty para HTTPS quando vir um erro 403! SECURE adicionando isso ao seu jetty.xml
<New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Arg>
<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<!-- This says... Redirect to https://host:8443 if server returns "NOT SECURE" error -->
<Set name="secureScheme">https</Set>
<Set name="securePort">8443</Set>
</New>
</Arg>
<Call name="addCustomizer">
<Arg>
<New class="org.eclipse.jetty.server.SecureRequestCustomizer" />
</Arg>
</Call>
</New>
<!-- This is your HTTP connector, you should have another one for HTTPS -->
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server">
<Ref refid="MyServer" />
</Arg>
<Arg name="factories">
<Array type="org.eclipse.jetty.server.ConnectionFactory">
<Item>
<New class="org.eclipse.jetty.server.HttpConnectionFactory">
<Arg name="config">
<!-- defined above -->
<Ref refid="tlsHttpConfig" />
</Arg>
</New>
</Item>
</Array>
</Arg>
<Set name="host">localhost</Set>
<Set name="port">8080</Set>
</New>