Làm sao tự động chuyển hướng http thành https trong ứng dụng Java Web
Xem thêm các chuyên mục:

Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.


Hyper Text Transfer Protocol Secure (HTTPS) là phiên bản bảo mật của HTTP (một giao thức (protocol) truyền dữ liệu giữa trình duyệt của bạn và website). 'S' ở cuối HTTPS là viết tắt của 'Secure' (Bảo mật). Nó có nghĩa là tất cả các giao tiếp giữa trình duyệt và website của bạn được mật mã hóa (encrypted). HTTPS thường được sử dụng để bảo vệ các giao dịch trực tuyến có tính bảo mật cao như ngân hàng trực tuyến và các đơn hàng mua sắm trực tuyến.
Hiện nay HTTPS đang được khuyến khích sử dụng, các website sử dụng HTTPS cũng nhận được ưu tiên cao hơn trong bộ máy tìm kiếm của Google.

Nếu bạn có một website đang hoạt động với giao thức HTTP, giả sử rằng bạn đã cài đặt thành công HTTPS cho website của bạn. Nhưng những trang (page) mà người dùng tìm thấy trên Google vẫn là các đường dẫn sử dụng giao thức HTTP, vì vậy bạn cần phải làm gì đó để khi người dùng truy cập vào các đường dẫn này nó sẽ tự động chuyển hướng (redirect) tới HTTPS.
- http://example.com/somepage ==> https://example.com/somepage
Với các ứng dụng Java Web để tự động chuyển hướng http sang https khá đơn giản. Bạn cần vài cấu hình trong tập tin 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>
Đóng gói và triển khai lại (redeloy) ứng dụng của bạn lên Web Server. Tất cả chỉ có vậy!
Chú ý: Nếu ứng dụng của bạn không có tập tin web.xml, bạn có thể tạo nó và đặt vào thư mục WEB-INF.
Với các đường dẫn không cần bảo mật, và không muốn tự động chuyển hướng sang HTTPS bạn cũng có thể cấu hình trong 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>