Как автоматически перенаправить http на https в веб-приложение Java?
1. Что такое Https?
Hyper Text Transfer Protocol Secure (HTTPS) это безопасная версия HTTP (протокол (protocol) передающий данные между вашим браузером и вебсайтом). 'S' в конце HTTPS это сокращенное 'Secure' (Безопасный). Это означает все коммуникации между браузером и вебсайтом закодированы (encrypted). HTTPS обычно используется для защиты онлайн транзакций с высокой конфиденциальностью, такие как онлайн банк или онлайн покупики.
На данный момент HTTPS рекомендуется для использования. Вебсайты, исопльзующие HTTPS так же получают более высокие приоритеты в поисковике Google.
2. Редирект http на https
Если у вас есть вебсайт, который работает с протоколом HTTP, допустим вы успешно установили HTTPS для вашего вебсайта. Но страницы (page), которые найдены пользователем в Google все еще являются ссылками, использующими протокол HTTP, поэтому вам нужно что-то сделать, чтобы когда пользователь зашел по данной ссылке, она автоматически редиректирует (redirect) на HTTPS.
- http://example.com/somepage ==> https://example.com/somepage
Для приложений Java Web автоматический редирект http на https довольно прост. Вам нужны некоторые конфигурации в файле 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>
Упаковать и развернуть еще раз (redeloy)ваше приложение на Web Server. И все!
Применчание: Если ваше приложение не имеет файл web.xml, вы можете создать его и расположить в папку WEB-INF.
Для ссылок без необходимости безопасности, и вы не хотите автоматического редиректа на HTTPS, вы так же можете конфигурировать в 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>
<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>
Руководства Java Servlet/JSP
- Установите Tomcat Server для Eclipse
- Установите Glassfish Web Server в Windows
- Запускать веб-приложение Java Maven в Tomcat Maven Plugin
- Запуск веб-приложения Java Maven в Jetty Maven Plugin
- Запуск фоновой задачи в приложении Java Servlet
- Руководство Java Servlet для начинающих
- Руководство Java Servlet Filter
- Руководство Java JSP для начинающих
- Руководство Java JSP Standard Tag Library (JSTL)
- Установите Web Tools Platform для Eclipse
- Создайте простое приложение для входа и закрепите его с помощью Java Servlet Filter
- Создание простого веб-приложения Java с использованием Servlet, JSP и JDBC
- Загрузка и загрузка файлов, хранящихся на жестком диске с помощью Java Servlet
- Выгрузка и загрузка файлов из базы данных с помощью Java Servlet
- Отображение изображения из базы данных с помощью Java Servlet
- Перенаправление 301 Постоянное перенаправление в Java Servlet
- Как автоматически перенаправить http на https в веб-приложение Java?
- Используйте Google reCAPTCHA в веб-приложении Java
Show More