千家信息网

如何解决SpringSecurityOAuth2 redis反序列失败问题

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这期内容当中小编将会给大家带来有关如何解决SpringSecurityOAuth2 redis反序列失败问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当在认证服
千家信息网最后更新 2025年02月03日如何解决SpringSecurityOAuth2 redis反序列失败问题

这期内容当中小编将会给大家带来有关如何解决SpringSecurityOAuth2 redis反序列失败问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

当在认证服务同时进行token获取以及token资源认证可以使用的时候。然后把资源服务整合到其他资源,在这同时又自定义是实现了UserDetails并重写了该接口方法,自定义实现了UserDetailsService,并重写了接口方法,返回使用的是自定义实现的UserDetails。在资源服务器认证token的时候就会出现redis序列化失败的问题, 示例:

/** * @Description 自定义实现UserDetails * @Author wwz * @Date 2019/07/28 * @Param * @Return */@Datapublic class MyUserDetails implements UserDetails {    private AuthUser user;    private Collection authorities;    public MyUserDetails(AuthUser user, Collection authorities) {        this.user = user;        this.authorities = authorities;    }    public MyUserDetails() {    }    @Override    public Collection getAuthorities() {        return authorities;    }        其他省略......
/** * @Description 自定义用户验证数据 * @Author wwz * @Date 2019/07/28 * @Param * @Return */@Servicepublic class MyUserDetailsService implements UserDetailsService {    @Autowired    private AuthUserMapper authUserMapper;    @Override    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {        // 自定义用户权限数据        AuthUser authUser = authUserMapper.selectByUsername(username);        if (authUser == null) {            throw new UsernameNotFoundException("用户名不存在");        }        if (!authUser.getValid()) {            throw new UsernameNotFoundException("用户不可用");        }        Set grantedAuthorities = new HashSet<>(); // 中间逻辑省略。。。。。。        MyUserDetails userDetails = new MyUserDetails(authUser, grantedAuthorities);        return userDetails;    }}
org.springframework.data.redis.serializer.SerializationException

导致问题的原因是,在生成token的时候使用了自定义的UserDetails的进行了token序列化,反序列化的时候,在新项目中找不到自定义的实现,只能使用默认的实现来。 解决的方案是就是把自定义实现的UserDetails复制一份到资源项目中。

上述就是小编为大家分享的如何解决SpringSecurityOAuth2 redis反序列失败问题了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0