72 votes

Comment puis-je savoir si la requête adressée à la servlet a été exécutée via HTTP ou HTTPS ?

J'ai écrit une servlet en Java et j'aimerais savoir si la requête adressée à cette servlet a été exécutée via HTTP ou HTTPS.

Je pensais pouvoir utiliser request.getProtocol() mais il renvoie HTTP/1.1 sur les deux méthodes.

Des idées?

29voto

Cratylus Points 21838

Vous ne pouvez pas compter de manière fiable sur les numéros de port. Mais vous pouvez compter sur le schéma:

Utilisez : request.getScheme() pour voir s'il s'agit de https .

Si c'est le cas, il s'agit d'une connexion sécurisée.

Je pense que cela devrait fonctionner quelle que soit la version de Tomcat

11voto

Matthew Flaschen Points 131723

isSecure . Assurez-vous de vérifier les méthodes héritées.

-4voto

Krishan Points 319

https et http s'exécutent sur des ports différents. Ainsi, vous pouvez obtenir le port de la demande et savoir de quel port provient la demande et connaître le protocole. int port=request.getServerPort();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X