如何以编程方式在 cookie 上设置安全标志

How to set secure flag on cookie programatically

我知道我们可以这样做:

<session-config>
 <cookie-config>
 <secure>true</secure>
 </cookie-config>
</session-config>

但我想要实现的是根据一些配置设置此标志(true 或 false)。

我们应该使用过滤器吗?如何使用?

谢谢

假设您在 servlet 3.0+ 环境中,并且您不想使用 web.xml 指定 cookie-secure-flag 而是以编程方式设置它:

实现 ServletContextListener 并在 web.xml 中或通过注解注册它。
在其 contextInitialized 方法中,从您的配置中评估您的安全标志并将其设置在 SessionCookieConfig:

public void contextInitialized(ServletContextEvent sce) {
     boolean secure = ...
     sce.getServletContext().getSessionCookieConfig().setSecure(secure);
}