class CustomLogoutSuccessHandler implements LogoutHandler {

    @Autowired
    private RedisTemplate redisTemplate;

    @SneakyThrows
    @Override
    public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {<FILL_FUNCTION_BODY>}
}

        String token = request.getHeader(Constant.TOKEN);
        Object userInfo = redisTemplate.opsForValue().get(Constant.AUTHENTICATION_TOKEN + token);
        if (ObjectUtil.isNotNull(userInfo)) {
            String user[] = userInfo.toString().split(",");
            if (user != null && user.length == 2) {
                SysLoginLog loginLog = new SysLoginLog();
                loginLog.setOptionIp(IPUtils.getIpAddr(request));
                loginLog.setOptionName("用户退出成功");
                loginLog.setOptionTerminal(request.getHeader("User-Agent"));
                loginLog.setUsername(user[1]);
                loginLog.setOptionTime(new Date());
                SpringContextUtils.publishEvent(new LoginLogEvent(loginLog));
            }
        }
        redisTemplate.delete(Constant.AUTHENTICATION_TOKEN + token);
    
<no_super_class>