Ich bin jetzt in einem Google-App-Engine-Projekt. In meiner Anwendung muss ich nur das https-Protokoll zulassen. Und ich muss andere Protokolle einschränken. Es sollte nur https zulassen. Ich habe den folgenden Code in web.xml hinzugefügt.
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Nach der Bereitstellung funktioniert es jedoch für beide Protokolle (http und https). Wie kann ich http einschränken?
Es ist möglich, die einzelnen Handler so zu konfigurieren, dass HTTPS in der Datei app.yaml im Ordner WEB-INF erforderlich ist, wie hier beschrieben: Java-Anwendungskonfiguration mithilfe von app.yaml - Google App Engine .
Sie müssen nur diese beiden Wörter zu Ihrer app.yaml
-Datei unter dem entsprechenden url
-Eintrag hinzufügen:secure: always
Zum Beispiel:
- url: .*
script: main.app
secure: always
Wenn ein Benutzer versucht, mit HTTP auf die URL zuzugreifen, wird er automatisch zu HTTPS umgeleitet. Ziemlich cool.
Wenn Sie bei "web.xml" bleiben möchten, anstatt die Option "app.yaml" zu verwenden (wodurch Ihre Dateien "web.xml" und "appengine-web.xml" zum Zeitpunkt der Bereitstellung überschrieben werden), können Sie Folgendes hinzufügen:
<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>
Referenz: https://cloud.google.com/appengine/docs/Java/config/webxml#Security_and_Authentication
Benutzt du deine eigene Domain? Derzeit unterstützt GAE SSL für * .appspot.com-Domains only . Sie sind seit einiger Zeit vielversprechend SSL-Unterstützung für Nicht-Appspot-Domänen, und wir warten alle auf Neuigkeiten in dieser Hinsicht.
Dies ist für zukünftige Leute !!!
In Java Das Hinzufügen des Codes unten in meiner web.xml
-Datei hat für mich funktioniert
<security-constraint>
<web-resource-collection>
<web-resource-name>HTTPS redirect</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Für andere Projekte fügen Sie secure: always
unter allen URLs in der app.yaml
-Datei hinzu
Fügen Sie dies Ihrer web.xml-Datei hinzu
<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>