codestory

Wie automatisch http auf https in einer Web-Anwendung Java umleiten?

  1. Was ist Https?
  2. http zu https umleiten

1. Was ist Https?

Hyper Text Transfer Protocol Secure (HTTPS) ist die gesicherte Version von HTTP (ein Protokoll (protocol), das die Daten zwischen Ihren Browser und website übertragen). 'S' am Ende von HTTPS ist die Abkürzung von 'Secure' (sicher). Das heißt, alle Kommunikationen zwischen Ihren Browser und Website werden verschlüsselt (encrypted). HTTPS wird oft benutzt, um die strengen geheimen Online-Transaktionen wie Online-Banking und Online-Shopping Aufträge zu schützen.
Jetzt wird HTTPS empfohlen zu benutzen. Die HTTPS benutzenden Website bekommen auch die höhere Priorität in die Suche-Maschine von Google.

2. http zu https umleiten

Z.B Sie haben eine website , die mit dem Protokoll HTTP aktiv ist. Angenommen, Sie haben HTTPS für Ihre Website erfoglreich installiert. Aber die auf Google von den Benutzer gefundenen Seiten (page) sind noch die das Protokoll HTTP benutzenden Links. Deshalb müssen Sie etwas machen damit wenn der Benutzer auf die Links zugrifft, wird es zu HTTPS automatisch umleiten. (redirect)
  • http://example.com/somepage ==> https://example.com/somepage
Für die Applikation Java Web ist es sehr einfach, um http zu https umzuleiten. Sie brauchen eingie Konfigurationen in die File web.xml:
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   version="3.0">
   <display-name>My Web App</display-name>

   <!-- .... -->

   <security-constraint>
      <web-resource-collection>
         <web-resource-name>SessionTest</web-resource-name>
         <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
   </security-constraint>

  <!-- .... -->

</web-app>
Ihre Applikation auf Web Server packen und wieder anwenden (redeloy). Das ist alles !
Achtung: Wenn Ihre Applikation keine File web.xml hat, können Sie es erstellen und im Verzeichnis WEB-INF stellen.
Für die Links, die nicht sichern brauchen und zu HTTPS nicht automatisch umleiten möchten, können Sie in web.xml konfigurieren.
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   version="3.0">
   <display-name>My Web App</display-name>

   <!-- .... -->

   <security-constraint>
      <web-resource-collection>
         <web-resource-name>SessionTest</web-resource-name>
         <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
   </security-constraint>
 
 
   <security-constraint>
      <web-resource-collection>
         <web-resource-name>Non-SecureResource</web-resource-name>
         <url-pattern>/test.jsp</url-pattern>
         <url-pattern>/somepath/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
         <transport-guarantee>NONE</transport-guarantee>
      </user-data-constraint>
   </security-constraint>


  <!-- .... -->

</web-app>