Javaでサーブレットを作成しましたが、そのサーブレットへのリクエストがHTTPまたはHTTPSのどちらを使用して実行されたかを知りたいです。
使用できると思いrequest.getProtocol()
ましたが、どちらの方法でもHTTP/1.1が返されます。
何か案は?
Javaでサーブレットを作成しましたが、そのサーブレットへのリクエストがHTTPまたはHTTPSのどちらを使用して実行されたかを知りたいです。
使用できると思いrequest.getProtocol()
ましたが、どちらの方法でもHTTP/1.1が返されます。
何か案は?
HttpServetRequest.isSecure()が答えです。ServletContainer は、次の場合に true を返す責任があります。
コンテナは、リクエストがhttpsで受信されたときに、このリクエスト属性も利用できるようにする必要があります。
You can't reliably depend on port numbers.
But you can depend on the scheme:
Use: request.getScheme() to see if it is https
.
If it is then it is secure connection.
I believe this should work regardless of Tomcat version
セキュアです。継承されたメソッドを確認してください。
https と http は異なるポートで実行されます。したがって、リクエストからポートを取得し、リクエストがどのポートから来たかを知ることができるため、プロトコルを知ることができます。int port=request.getServerPort();