Ich möchte alle Anfragen für http mit Jetty (6.1.24) an https umleiten. Aus irgendeinem Grund (meiner Unwissenheit) entgeht mir dies. Das habe ich:
<New id="redirect" class="org.mortbay.jetty.handler.rewrite.RedirectPatternRule">
<Set name="pattern">http://foobar.com/*</Set>
<Set name="location">https://foobar.com</Set>
</New>
Als Antwort bekomme ich 200 - ok, und der Text ist die Seite über http, dh die Weiterleitung findet nicht statt.
Antworten:
Apropos Steg 9 ... So können Sie das tun, vorausgesetzt, Ihr SSL-Connector funktioniert bereits:
Schritt 1: Stellen Sie sicher, dass alles über SSL läuft, indem Sie dies zu Ihrer web.xml hinzufügen. Wenn Sie versuchen, über HTTP auf eine Ressource zuzugreifen, wird ein 403! SECURE-Fehler zurückgegeben
Schritt 2: Lassen Sie Jetty zu HTTPS umleiten, wenn ein 403! SECURE-Fehler angezeigt wird, indem Sie diesen zu Ihrer jetty.xml hinzufügen
quelle
Ich denke, dass das Muster nur mit dem URI übereinstimmt. Sie sollten etwas verwenden wie:
Siehe: http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/rewrite/handler/RewriteHandler.html
quelle
Ich habe gerade das Dokument hinzugefügt: http://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Redirecting_http_requests_to_https
quelle
Soweit ich das beurteilen kann, ist dies mit den Regeln / Handlern, die mit Jetty 6 geliefert werden, nicht einfach.
Die
RedirectPatternRule
Übereinstimmungen auf demtarget
Pfad im Jetty-Server und nicht der vollständige URI, sodass Ihre Regel niemals übereinstimmt.Sie können es ändern in:
Dies hat jedoch zwei Probleme:
https
Anfragen) umgeleitet.location
wie angegeben weiter und ignoriert alles, was mit dem übereinstimmtpattern
).Sie können das erste Problem mit einigen Tricks überwinden.
Sie können das
RewriteHandler
in ein einschließenContextHandler
, und mit einem Kontext-Handler können Sie angeben, welche Konnektoren Anforderungen von (setConnectorNames
) verarbeiten sollen. Sie können dies also verwenden, um das Umschreiben nur auf Anforderungen auf den http-Connectors anzuwenden.Ich kann mir jedoch keinen Weg vorstellen, um das zweite Problem zu lösen.
Ich denke, Ihre beste Wette ist es, Ihre eigene Umleitungsregel dafür zu schreiben. Wenn Sie keine Entwicklungsressourcen haben, um dies für Sie zu tun, kontaktieren Sie mich (Sie finden meine E-Mail-Adresse über meinen Blog, der sich in meinem Profil befindet) und ich kann eine erstellen (unter derselben Lizenz wie Jetty). Es ist ziemlich einfach, eine Regel zu schreiben, die http einfach zu https umleitet.
quelle