使用beego session的同学,不知道发现没有,删除session的时候有个小bug,当session中只剩一个key-value时,无法删除;
查看代码(这里只举例mysql,其他的session存储也一样存在这个问题),发现:
删除session代码:
func (st *MysqlSessionStore) Delete(key interface{}) error {
st.lock.Lock()
defer st.lock.Unlock()
delete(st.values, key)
return nil
}
更新session代码:
func (st *MysqlSessionStore) SessionRelease() {
defer st.c.Close()
if len(st.values) > 0 {
b, err := encodeGob(st.values)
if err != nil {
return
}
st.c.Exec("UPDATE session set `session_data`= ? where session_key=?", b, st.sid)
}
}
这样,当session中只有一个key-value时,我们删除session后,st.values就为空了,也就不满足条件 len(st.values)>0了,那么久无法更新session到持久化了,这样,最后一个key-value的session永远无法删除;解决方法就是直接把 if len(st.values) > 0 条件去掉即可;
- 浏览: 65374 次
- 性别:
- 来自: 深圳
最新评论
-
漫步匆匆:
PropertyConfigurator.configure( ...
iphone消息推送java后台证书生成及测试代码 -
pyczh:
写的很好,这次正好用到了,非常感谢!
iphone消息推送java后台证书生成及测试代码
相关推荐
因为小程序原生不支持Cookie,因此也不支持Session。 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。 大概思路就是借助小程序本地储存+网络请求的header可读可写来...
自己学习写的一个监听session各个操作,从session创建到消毁。
session驱动类 session存入数据库 数据库存储session 用于session存入数据库
删除Session里面特定的值,解决Session删除值的困扰。
如果没有sessionId就新创建session,如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId...
SESSION购物车SESSION购物车SESSION购物车SESSION购物车SESSION购物车SESSION购物车SESSION购物车
C语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言...
js 销毁session,session js 销毁session,session
这是一个关于Session的小demo,是一初学Jsp的学生做的,适合初学者使用。
在session共享中遇到的坑。自己通过更改源码实现自定义功能
oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解...
session 的应用对于处学ASP.NET的用户很有帮助.
spring session redis分布式session,自定义session解决分布式session不同步问题
在后台应用程序中设置:Session.Timeout = 1; 注意:1、此方法可以设置在一个公共的页面中,然后直接调用即可。 2、时间是以分钟为单位的 方法二: 在Web.config中设置: 在<system></system>中写入...
tomcat修改sessionId,同一台服务器部署多个tomcat需要修改sessionId,否则会出现session冲突的问题
asp.net写的一个cookie和session登陆小实验,项目简单明了,都加上了备注。
所以,这个模块主要针对小网站,并没有太多的数据存储在session中。安装在使用 mini-session 之前, 你需要先安装 Cookies 包。npm install cookies然后npm install mini-sessionDemovar http = require(...
这个是jsp中session实现购物车的小代码,供初学者参考,加油,程序员们,come on!
iframe 跨域访问session问题解决方法
退出页面自动清除session技巧