当您使用spring-session,例如将会话保留在reddis中时,这确实是自动完成的。该cookie比创建通过
org.springframework.session.web.http.cookieHttpSessionStrategy在其中
cookieHttpSessionStrategy#createSessioncookie检查是否请求来自通过HTTPS和集相应地确保:
sessioncookie.setSecure(request.isSecure());
如果您 不 使用spring-session,则可以使用来配置安全cookie
ServletContextInitializer。使用application属性,根据配置文件将其设置为true / false。
@Beanpublic ServletContextInitializer servletContextInitializer(@Value("${secure.cookie}") boolean secure) { return new ServletContextInitializer() { @Override public void onStartup(ServletContext servletContext) throws ServletException { servletContext.getSessioncookieConfig().setSecure(secure); } };}application.properties(在配置文件“ prod”未激活时在dev中使用):
secure.cookie=false
application-prod.properties(仅在配置文件“
prod”处于活动状态时使用,会覆盖application.properties中的值):
secure.cookie=false
使用以下命令在生产服务器上启动应用程序:
--spring.profiles.active=prod
到目前为止,如果您尚未使用配置文件,这听起来似乎需要付出一定的努力,但是无论如何,您仍然很可能需要针对产品环境的配置文件,因此它确实值得。



