Bạn không phải làm gì cả. Miễn là yêu cầu bắt đầu phiên là https
Tomcat sẽ đánh dấu cookie phiên là secure
.
Tôi cũng đã xem xét liệu có bất cứ điều gì chính thức ghi lại sự thật đó nhưng tôi không thể tìm thấy nó. Nhưng đó là hành vi của ít nhất là Tomcat 6.0.32 trở lên.
Đây là mã từ org/apache/catalina/connector/Request.java
đó, ở phần cuối của phương pháp, kiểm tra để xem nếu yêu cầu là an toàn và nếu nó là, đặt secure
cờ trên cookie:
/**
* 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: bạn bạn có thể tự mình tự mình cài đặt bằng cách sử dụng bộ lọc, v.v. bạn có thể kiểm tra ví dụ từ set 'secure' flag to JSESSION id cookie
Chỉ muốn xác nhận rằng: Xem cookie phiên trong công cụ trình duyệt bạn chọn (Safari Webinspector trong trường hợp của tôi)) sẽ cho bạn biết rằng cookie thực sự là một cookie chỉ bảo mật –