当前位置 博文首页 > 无限迭代中......:Spring Security + Spring Session Redis——

    无限迭代中......:Spring Security + Spring Session Redis——

    作者:[db:作者] 时间:2021-07-19 19:24

    前置

    ?Spring Session + Redis——自定义JSON序列化解决方案

    问题描述

    Spring Security + Spring Session使用中Redis,默认序列化方式是JdkSerializationRedisSerializer。

    修改为GenericJackson2JsonRedisSerializer后,Spring Security在认证成功之后保存一个SecurityContext的实现类SecurityContextImpl的 Session 变量到Redis

    SecurityContextImpl是有无参构造的,但是这个类下面经常有一个UsernamePasswordAuthenticationToken类没有无参构造,造成反序列化失败。

    解决方案

        @Bean
        public RedisSerializer<Object> springSessionDefaultRedisSerializer(){
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.registerModules(SecurityJackson2Modules.getModules(getClass().getClassLoader()));
            return new GenericJackson2JsonRedisSerializer(objectMapper);
        }        

    参考文章

    spring security+spring session+redis反序列化问题

    cs