@EventListener
    public void handleRedisKeyExpiredEvent(RedisKeyExpiredEvent<RdaSession> event) {
        if (event.getValue() instanceof RdaSession) {
            RdaSession session = (RdaSession) event.getValue();
            if (!session.isFinished()) {
                confirmService.sendConfirm(
                    session.getReturnUrl(),
                    session.getConfirmId(),
                    session.getConfirmSecret(),
                    false,
                    session.getApp(),
                    RdaError.TIMEOUT
                );
            }

        }
    }
@Test
    void testHandleRedisKeyExpiredEventStatusInitialized() {
        RdaSession session = new RdaSession();
        session.setStatus(Status.INITIALIZED);
        session.setReturnUrl("http://localhost");
        session.setConfirmId("id");
        session.setConfirmSecret("secret");
        Mockito.when(event.getValue()).thenReturn(session);

        timeoutService.handleRedisKeyExpiredEvent(event);
        Mockito.verify(confirmService).sendConfirm(session.getReturnUrl(), "id", "secret", false, session.getApp(), RdaError.TIMEOUT);
    }