Até onde eu sei, isso não é fácil de ser feito com nenhuma das regras / manipuladores enviados com o Jetty 6.
As RedirectPatternRule
correspondências no target
qual é o caminho no servidor Jetty, e não o URI completo; portanto, sua regra nunca corresponde.
Você pode alterá-lo para:
<New id="redirect" class="org.mortbay.jetty.handler.rewrite.RedirectPatternRule">
<Set name="pattern">/*</Set>
<Set name="location">https://foobar.com</Set>
</New>
No entanto, isso tem 2 problemas:
- Ele redirecionará todas as solicitações (mesmo
https
solicitações)
- Ele não leva em conta o URL solicitado (ele sempre redireciona para
location
o que é especificado e ignora qualquer coisa que corresponda ao pattern
)
Você pode superar o primeiro problema com alguns truques.
Você pode agrupar o RewriteHandler
em a ContextHandler
, e um manipulador de contexto permite especificar de quais conectores ele manipulará as solicitações de ( setConnectorNames
). Portanto, você pode usar isso para fazer com que a reescrita se aplique apenas às solicitações nos conectores http.
Não consigo pensar em uma maneira de superar a segunda questão.
Eu acho que sua melhor aposta será escrever sua própria regra de redirecionamento para isso. Se você não tiver recursos de desenvolvimento para fazer isso por você, entre em contato comigo (você pode encontrar meu endereço de e-mail no meu blog, que está no meu perfil) e eu posso preparar um (com a mesma licença do Jetty). Será bastante simples escrever uma regra que simplesmente redirecione http para https.