在PrimeFaces高级主题上将Cookies设置为HttpOnly

问题描述

我需要将HttpOnly添加到我的PrimeFace项目中的所有cookie。

我试图通过web.xml设置cookie web.xml

但是在layout.js poseidon_expandeditems上创建的cookie被创建了两次,一次是带有标志HttpOnly,而另一次则没有。

如何将我在项目中创建的所有cookie设置为具有HttpOnly?

解决方法

您不能将cookie设置为“仅HTTP”,因为这将使其无法用于Javascript代码。 Poseidon中的布局正在使用Javascript创建和管理cookie,因此它不能仅具有HTTP,因此它可以操纵cookie。为什么您认为它必须是HttpOnly?

例如,来自巴比伦主题layout.js ...

    saveMenuState: function () {
        $.cookie('babylon_expandeditems',this.expandedMenuitems.join(','),{ path: '/' });
    },saveScrollState: function (value) {
        $.cookie('babylon_scroll',value,clearMenuState: function () {
        $.removeCookie('babylon_expandeditems',{ path: '/' });
        $.removeCookie('babylon_active_route',{ path: '/' });
        $.removeCookie('babylon_static_menu_inactive',{ path: '/' });
        $.removeCookie('babylon_scroll',{ path:'/' });
    },

如果您仍然有疑问,建议在Poseidon主题论坛上提出: https://forum.primefaces.org/viewforum.php?f=43