package org.apereo.cas.web.report; import org.apereo.cas.configuration.CasConfigurationProperties; import org.apereo.cas.support.events.dao.CasEvent; import org.apereo.cas.support.events.CasEventRepository; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Collection; /** * This is {@link AuthenticationEventsController}. * * @author Misagh Moayyed * @since 5.0.0 */ @ConditionalOnClass(value = CasEventRepository.class) public class AuthenticationEventsController extends BaseCasMvcEndpoint { private final CasEventRepository eventRepository; public AuthenticationEventsController(final CasEventRepository eventRepository, final CasConfigurationProperties casProperties) { super("casauthnevents", "/authnEvents", casProperties.getMonitor().getEndpoints().getAuthenticationEvents(), casProperties); this.eventRepository = eventRepository; } /** * Handle request. * * @param request the request * @param response the response * @return the model and view * @throws Exception the exception */ @GetMapping protected ModelAndView handleRequestInternal(final HttpServletRequest request, final HttpServletResponse response) throws Exception { ensureEndpointAccessIsAuthorized(request, response); return new ModelAndView("monitoring/viewAuthenticationEvents"); } /** * Gets records. * * @param request the request * @param response the response * @return the records * @throws Exception the exception */ @GetMapping(value = "/getEvents") @ResponseBody public Collection<CasEvent> getRecords(final HttpServletRequest request, final HttpServletResponse response) throws Exception { ensureEndpointAccessIsAuthorized(request, response); return this.eventRepository.load(); } }