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

kku*_*ung 4 java security cookies servlets servlet-3.0

我知道我们可以这样做:

<session-config>
 <cookie-config>
 <secure>true</secure>
 </cookie-config>
</session-config>
Run Code Online (Sandbox Code Playgroud)

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

我们应该使用过滤器吗?

谢谢

wer*_*ero 5

假设您处于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);
}
Run Code Online (Sandbox Code Playgroud)