HttpSerlvetRequest.isSecure() è la risposta. Il ServletContainer è responsabile della restituzione di true nei seguenti casi:
- Se il ServletContainer può accettare richieste su https.
- Se c'è un LoadBalancer davanti a ServletContainer. E, LoadBlancer ha ricevuto la richiesta su https e ha inviato lo stesso al ServletContainer su semplice http. In questo caso, LoadBalancer invia X-SSL-Secure: true al server ServletContainer, che deve essere rispettato.
Il contenitore deve anche fare questa richiesta gli attributi disponibili quando la richiesta è pervenuta sulla https:
- javax.servlet.http.sslsessionid
- javax.servlet.request.key_size
- javax.servlet.request.X509Certificate
fonte
2011-11-21 08:10:02
Puoi per favore condividere dove hai ottenuto X-SSL-Secure: true 'bit? Continuo a cercare e non riesco a trovare maggiori informazioni su questa intestazione. – Zotov
Questo non funziona sul mio ambiente: Apache 2.4.10 come proxy anteriore; è impensabile sapere in java, anche se la richiesta è stata fatta con http o https ad apache. Certo, ho capito come http a Java, ma ho bisogno di sapere come è stato effettuato l'accesso al proxy frontale. - Effettivamente, come ha detto anche @Zotov: non ci sono quasi informazioni sull'intestazione X-SSL-Sercure.Quindi presumo che questo non sia ampiamente implementato ?! – badera
Il nome dell'intestazione può essere diverso poiché non è molto standard. Ma il concetto qui è che i proxy possono aggiungere delle intestazioni su SSL e i server possono leggerle. Per Ex, Nginx aggiunge il protocollo X-SSL. Può anche essere sostituito con intestazione personalizzata. –