首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当启用cookies HTTPOnly时,Primefaces HTTPOnly停止不工作

当启用cookies HTTPOnly时,Primefaces HTTPOnly停止不工作
EN

Stack Overflow用户
提问于 2022-02-24 06:10:13
回答 1查看 159关注 0票数 1

我使用的是Primefaces 11.0.0,我有一个下载文件组件,如下所示:

代码语言:javascript
复制
<p:commandButton 
    onclick="PrimeFaces.monitorDownload(startDownload, stopDownload);"
    ajax="false"
    icon="fa fa-download">
    <p:fileDownload value="#{downloadBean.getDownloadFile(document.id)}"/>
</p:commandButton>

我的应用程序运行在tomcat上,在 Nginx 后面,我们有一个安全建议来添加 HTTPOnly,将安全地添加到cookies中,因此当在Nginx上将HTTPOnly配置到cookies时,stopDownload就不会被调用。

我的Nginx配置如下:

代码语言:javascript
复制
location /myapp {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_cookie_path /myapp "/myapp; HTTPOnly; Secure";
        }

如何使stopDownload与HTTPOnly协同工作?

编辑:

通过将HTTPOnly设置为重要的会话cookie,我能够使其工作,如下所示:

代码语言:javascript
复制
proxy_cookie_flags ~ Secure;
proxy_cookie_flags JSESSIONID HTTPOnly Secure;

这是最好的做法还是有更好的解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-27 16:31:51

这是正确的。

由于Monitor下载需要使用JavaScript访问cookie以“停止下载”,所以cookie不能仅为HTTP,这就是代码中断的原因。

您的JSESSIONID cookie绝对是正确的锁定它。在我看来,您的上述配置是正确的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71247826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档