Sie müssen nichts tun. Solange die Anfrage zum Starten der Sitzung https
lautet, markiert Tomcat den Sitzungscookie als secure
.
Ich schaute auch, ob es etwas gab, das offiziell diese Tatsache dokumentierte, aber ich konnte es nicht finden. Aber das ist das Verhalten von Tomcat 6.0.32 und höher. Hier
ist der Code von org/apache/catalina/connector/Request.java
, die am Ende des Verfahrens wird überprüft, ob die Anforderung sicher ist und wenn es ist, setzt die secure
Flagge auf den Keks:
/**
* Configures the given JSESSIONID cookie.
*
* @param cookie The JSESSIONID cookie to be configured
*/
protected void configureSessionCookie(Cookie cookie) {
cookie.setMaxAge(-1);
Context ctxt = getContext();
String contextPath = null;
if (ctxt != null && !getConnector().getEmptySessionPath()) {
if (ctxt.getSessionCookiePath() != null) {
contextPath = ctxt.getSessionCookiePath();
} else {
contextPath = ctxt.getEncodedPath();
}
}
if ((contextPath != null) && (contextPath.length() > 0)) {
cookie.setPath(contextPath);
} else {
cookie.setPath("/");
}
if (ctxt != null && ctxt.getSessionCookieDomain() != null) {
cookie.setDomain(ctxt.getSessionCookieDomain());
}
if (isSecure()) {
cookie.setSecure(true);
}
}
UPDATE: Sie kann manuell versuchen, dies selbst zu setzen, indem Sie einen Filter usw. verwenden. Sie können ein Beispiel von set 'secure' flag to JSESSION id cookie
überprüfen Ich möchte nur bestätigen: Betrachten Sie Ihre Session-Cookies in einem Browser-Tool Ihrer Wahl (Safari Webinspector in meinem Fall)) wird Ihnen mitteilen, dass es sich bei dem Cookie tatsächlich um einen Nur-Sicherheit-Cookie handelt –