问题2:shiro配置redis管理session后,每次重新请求重新生成session问题

使用shiro时,配置了redis缓存session,但是每次请求,包括刷新页面都会在redis中重新保存一个session,后来发现是cookie设置的domian问题,导致每次请求域名不同,后台会自动重新生成session.


@Bean(name="sessionIdCookie")
    public SimpleCookie sessionIdCookie(){
        //cookie名
        SimpleCookie sessionIdCookie = new SimpleCookie(Constent.SHIRO_SESSION_ID_COOKIE_NAME);
        //有效时间
        sessionIdCookie.setHttpOnly(true);
        sessionIdCookie.setMaxAge(Constent.SHIRO_SESSION_ID_COOKIE_MAXAGE);
//        sessionIdCookie.setDomain("/");
        return sessionIdCookie;
    }

将红色部分注释掉即可.

参考:https://blog.csdn.net/zsg88/article/details/73838461

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Shiro-Redis 是一个用于在 Shiro 中实现 Session 共享的插件,它使用 Redis 作为数据存储和缓存,以实现分布式环境下的 Session 共享。 要实现 Shiro-RedisSession 共享,你需要进行以下步骤: 1. 引入 Shiro-Redis 插件依赖:在项目的 Maven 或 Gradle 配置文件中添加 Shiro-Redis 依赖。 2. 配置 Redis 连接信息:在项目的配置文件中配置 Redis 的连接信息,包括主机名、端口号、密码等。 3. 配置 RedisSessionDAO:在 Shiro配置文件中配置 RedisSessionDAO,指定使用 Redis 作为 Session 存储和缓存的实现。可以设置过期时间、前缀等参数。 4. 配置 Session Manager:在 Shiro配置文件中配置 Session Manager,指定使用自定义的 RedisSessionManager 作为 Session管理器。同时,需要将之前配置RedisSessionDAO 设置给 RedisSessionManager。 5. 配置 SecurityManager:在 Shiro配置文件中配置 SecurityManager,指定使用自定义的 RedisSessionManager 作为 Session 管理器。同时,需要将之前配置RedisSessionDAO 设置给 RedisSessionManager。 6. 配置 Filter Chain:在 Shiro配置文件中配置 Filter Chain,将自定义的 RedisSessionManager 添加到 Filter Chain 中,以便对请求进行 Session 管理。 通过以上步骤配置完成后,Shiro 将会使用 Redis 进行 Session 的存储和缓存,从而实现 Session 的共享。在分布式环境中,不同应用节点之间可以通过 Redis 共享 Session 数据,从而实现用户的登录状态和会话信息的共享。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值