HttpSerlvetRequest.isSecure() là câu trả lời. ServletContainer chịu trách nhiệm trả lại đúng trong các trường hợp sau:
- Nếu ServletContainer có thể tự chấp nhận yêu cầu trên https.
- Nếu có LoadBalancer ở phía trước ServletContainer. Và, LoadBlancer đã nhận được yêu cầu trên https và đã gửi đi cùng với ServletContainer trên đồng bằng http. Trong trường hợp này, LoadBalancer gửi tiêu đề X-SSL-Secure: đúng vào ServletContainer, danh sách này cần được tôn trọng.
Các container cũng nên thực hiện yêu cầu này thuộc tính có sẵn khi yêu cầu được nhận vào https:
- javax.servlet.http.sslsessionid
- javax.servlet.request.key_size
- javax.servlet.request.X509Certificate
Nguồn
2011-11-21 08:10:02
Bạn có thể chia sẻ nơi bạn nhận được 'X-SSL-Secure: true' bit không? Tôi tiếp tục tìm kiếm và tôi không thể tìm thêm thông tin về tiêu đề này. – Zotov
Điều này không hoạt động trên môi trường của tôi: Apache 2.4.10 làm proxy phía trước; nó iseems là không thể biết trong java, wheter yêu cầu đã được thực hiện với http hoặc https để apache. Chắc chắn, tôi nhận được nó như là http để Java, nhưng tôi cần phải biết, làm thế nào các proxy phía trước đã được truy cập. - Thật vậy, như @ Zotov cũng đã đề cập: Hầu như không có thông tin về tiêu đề X-SSL-Sercure.Vì vậy, tôi cho rằng điều này không được triển khai rộng rãi ?! – badera
Tên tiêu đề có thể khác nhau vì nó không phải là rất chuẩn. Tuy nhiên, khái niệm ở đây là các proxy có thể thêm tiêu đề về SSL và các máy chủ có thể đọc chúng. Đối với Ex, Nginx thêm X-SSL-Protocol. Nó cũng có thể được thay thế bằng tiêu đề tùy chỉnh. –