polishgem / shiro-redisson

shiro集成redisson

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

shiro-redisson

Build Status Coverage Status Maven Central GitHub release License Project Stats

功能简介

1.使用redisson包解决redis缓存
2.解决shiro-redis使用*查询时,导致redis长时间卡死
3.解决使用spring-boot-devtools,出现ClassCastException异常
4.支持redisson提供的编码类型,https://github.com/redisson/redisson/wiki/4.-data-serialization

JDK

1.8

如何使用?

  1. 在项目中加入shiro-redisson依赖

    Maven

    <dependency>
        <groupId>com.github.fartherp</groupId>
        <artifactId>shiro-redisson</artifactId>
        <version>1.1.1</version>
    </dependency>

    Gradle

    compile 'com.github.fartherp:shiro-redisson:1.1.1'
    

java使用

    @Bean
    public MyShiroRealm myShiroRealm() {
        return new MyShiroRealm();
    }
    
    @Bean
    public SessionManager sessionManager(SessionDAO redisSessionDAO, ObjectProvider<SessionListener> sessionListenersProvider) {
        List<SessionListener> sessionListeners = sessionListenersProvider.stream().collect(Collectors.toList());
        DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
        sessionManager.setSessionDAO(redisSessionDAO);
        sessionManager.setSessionListeners(sessionListeners);
        return mySessionManager;
    }

    /**
    * 内置session监听器,保证删除session/cache冗余的数据信息
    */
    @Bean
    public SessionListener sessionListener(SessionDAO redisSessionDAO, MyShiroRealm myShiroRealm) {
        return new RedisSessionListener(redisSessionDAO, myShiroRealm);
    }

    @Bean
    public RedisCacheManager cacheManager(RedissonClient redissonClient) {
        return new RedisCacheManager(redissonClient);
    }

    @Bean
    public RedisSessionDAO redisSessionDAO(RedisCacheManager cacheManager) {
        return new RedisSessionDAO(cacheManager);
    }

About

shiro集成redisson

License:Apache License 2.0


Languages

Language:Java 100.0%