@EventListener
    public void handleRedisKeyExpiredEvent(RedisKeyExpiredEvent<EidSession> event) {
        if (event.getValue() instanceof EidSession) {
            EidSession session = (EidSession) event.getValue();
            confirmService.sendError(session.getReturnUrl(), session.getConfirmId(), session.getConfirmSecret(),
                "eid_timeout");
        }
    }
@Test
    public void testHandleRedisKeyExpiredEvent() {
        EidSession session = new EidSession();
        session.setReturnUrl("http://localhost");
        session.setId("id");
        session.setConfirmId("app_session_id");
        session.setConfirmSecret("secret");
        Mockito.when(event.getValue()).thenReturn(session);

        timeoutService.handleRedisKeyExpiredEvent(event);
        Mockito.verify(confirmService).sendError(session.getReturnUrl(), "app_session_id", "secret", "eid_timeout");
    }