设置Jetty服务器的cookie为secure和httponly

前一阵在搞一些服务器安全加固的需求,因为用到Jetty服务器,用户要求发送的cookie必须设置secure和httponly。从网上找了些资料,验证了半天,分享出来。

比较简单的方式是直接修改Jetty的配置文件,默认情况下Jetty安装后没有这个文件。

新建一个文件命名为jetty-web.xml,放到WEB-INF目录下,文件内容:

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Get name="sessionHandler">
        <Get name="sessionManager">
            <Set name="secureCookies" type="boolean">true</Set>
            <Set name="httpOnly" type="boolean">true</Set>
        </Get>
    </Get>
</Configure>
重启一下Jetty服务器就能够看到新的Cookie上带有secure和httponly的标志了。

简单解释一下工作原理,相关类的关系如下:


归根结底是要设置SessionManager的两个属性,通过类的关联关系可以找到对应的方法。同时,设置WebAppContext的工作由类JettyWebXmlConfiguration来实现,这个类会在WEB-INF目录下依次查找 jetty6-web.xml, jetty-web.xml 或者 web-jetty.xml配置文件。


除此之外,网上也有人尝试通过修改Java代码的方式实现此功能,但没有验证过


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值