spring session redis 实现剔除用户功能

 1.需求背景

当管理员修改某一个用户角色信息时,后台需要剔除用户登录,清除用户的登录状态。

2.springsession整合redis 的依赖部分

<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>

3.剔除用户的逻辑部分

import org.springframework.session.FindByIndexNameSessionRepository;
import org.springframework.session.Session;
import org.springframework.session.data.redis.RedisOperationsSessionRepository;


@Autowired
private RedisOperationsSessionRepository redisOperationsSessionRepository;
@Autowired
private FindByIndexNameSessionRepository<? extends Session> sessionRepository;



private void deleteUserSession(String userId) {
        log.info("删除用户session,userId:{}", userId);
        // 查询用户的 Session 信息,返回值 key 为 sessionId
        Map<String, ? extends Session> userSessions =                                 sessionRepository.findByIndexNameAndIndexValue(FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, userId);
        // 移除用户的 session 信息
        List<String> sessionIds = new ArrayList<>(userSessions.keySet());
        for (String session : sessionIds) {
            log.info("删除用户session,sessionId:{}", session);
            redisOperationsSessionRepository.deleteById(session);
        }

    }

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 06:08:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 06:08:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 06:08:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 06:08:01       20 阅读

热门阅读

  1. ClickHouse学习

    2024-02-20 06:08:01       33 阅读
  2. 洛谷p2904 River Crossing S

    2024-02-20 06:08:01       36 阅读
  3. 深入学习Kafka之概念解析

    2024-02-20 06:08:01       31 阅读
  4. HTTP 头部- Origin Referer

    2024-02-20 06:08:01       27 阅读
  5. 模板方法模式

    2024-02-20 06:08:01       24 阅读
  6. Fork/Join线程池

    2024-02-20 06:08:01       27 阅读
  7. Hive切换引擎(MR、Tez、Spark)

    2024-02-20 06:08:01       25 阅读