package org.apereo.cas.web.landtool.single.listener; import org.apereo.cas.support.events.CasTicketGrantingTicketCreatedEvent; import org.apereo.cas.ticket.TicketGrantingTicket; import org.apereo.cas.web.landtool.single.service.SingleLoginService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; /** * @author Tanbin * @date 2018-11-30 */ public class TGTCreateEventListener { private static final Logger LOGGER = LoggerFactory.getLogger(TGTCreateEventListener.class); @Autowired private SingleLoginService singleLoginService; public TGTCreateEventListener() { } /** * 判断用户是否退出,若无则踢出 * @param event */ @EventListener @Async public void onTgtCreateEvent(CasTicketGrantingTicketCreatedEvent event) { TicketGrantingTicket tgt = event.getTicketGrantingTicket(); if(singleLoginService.singleLoginProperties.isKickOut()) { singleLoginService.kickOutOldLogins(tgt); } else { LOGGER.warn("##### 当前配置了[不踢出同一用户上次未退出的登录]!"); } } }