use of org.apereo.cas.support.events.service.CasRegisteredServiceExpiredEvent in project cas by apereo.
the class RegisteredServicesEventListener method handleRegisteredServiceExpiredEvent.
/**
* Handle registered service expired event.
*
* @param event the event
*/
@EventListener
public void handleRegisteredServiceExpiredEvent(final CasRegisteredServiceExpiredEvent event) {
final RegisteredService registeredService = event.getRegisteredService();
final List<RegisteredServiceContact> contacts = registeredService.getContacts();
final EmailProperties mail = casProperties.getServiceRegistry().getMail();
final SmsProperties sms = casProperties.getServiceRegistry().getSms();
final String serviceName = StringUtils.defaultIfBlank(registeredService.getName(), registeredService.getServiceId());
if (communicationsManager.isMailSenderDefined()) {
final String message = String.format(mail.getText(), serviceName);
contacts.stream().filter(c -> StringUtils.isNotBlank(c.getEmail())).forEach(c -> communicationsManager.email(message, mail.getFrom(), mail.getSubject(), c.getEmail(), mail.getCc(), mail.getBcc()));
}
if (communicationsManager.isSmsSenderDefined()) {
final String message = String.format(sms.getText(), serviceName);
contacts.stream().filter(c -> StringUtils.isNotBlank(c.getPhone())).forEach(c -> communicationsManager.sms(sms.getFrom(), c.getPhone(), message));
}
servicesManager.load();
}
use of org.apereo.cas.support.events.service.CasRegisteredServiceExpiredEvent in project cas by apereo.
the class DefaultRegisteredServicesEventListener method handleRegisteredServiceExpiredEvent.
@Override
public void handleRegisteredServiceExpiredEvent(final CasRegisteredServiceExpiredEvent event) {
val registeredService = event.getRegisteredService();
val contacts = registeredService.getContacts();
val serviceRegistry = casProperties.getServiceRegistry();
val serviceName = StringUtils.defaultIfBlank(registeredService.getName(), registeredService.getServiceId());
if (contacts == null || contacts.isEmpty()) {
LOGGER.debug("No contacts are defined to be notified for policy changes to service [{}]", serviceName);
return;
}
val logMessage = String.format("Sending notification to [{}] as service [{}] is %s from registry", event.isDeleted() ? "deleted" : "expired");
LOGGER.info(logMessage, contacts, serviceName);
communicationsManager.validate();
if (communicationsManager.isMailSenderDefined()) {
val mail = serviceRegistry.getMail();
val body = EmailMessageBodyBuilder.builder().properties(mail).parameters(Map.of("service", serviceName)).build().produce();
contacts.stream().filter(c -> StringUtils.isNotBlank(c.getEmail())).forEach(c -> communicationsManager.email(mail, c.getEmail(), body));
}
if (communicationsManager.isSmsSenderDefined()) {
val sms = serviceRegistry.getSms();
val message = sms.getFormattedText(serviceName);
contacts.stream().filter(c -> StringUtils.isNotBlank(c.getPhone())).forEach(c -> communicationsManager.sms(sms.getFrom(), c.getPhone(), message));
}
}
use of org.apereo.cas.support.events.service.CasRegisteredServiceExpiredEvent in project cas by apereo.
the class AbstractServicesManager method processExpiredRegisteredService.
private RegisteredService processExpiredRegisteredService(final RegisteredService registeredService) {
val policy = registeredService.getExpirationPolicy();
LOGGER.warn("Registered service [{}] has expired on [{}]", registeredService.getServiceId(), policy.getExpirationDate());
if (policy.isNotifyWhenExpired()) {
LOGGER.debug("Contacts for registered service [{}] will be notified of service expiry", registeredService.getServiceId());
publishEvent(new CasRegisteredServiceExpiredEvent(this, registeredService, false));
}
if (policy.isDeleteWhenExpired()) {
LOGGER.debug("Deleting expired registered service [{}] from registry.", registeredService.getServiceId());
if (policy.isNotifyWhenDeleted()) {
LOGGER.debug("Contacts for registered service [{}] will be notified of service expiry and removal", registeredService.getServiceId());
publishEvent(new CasRegisteredServiceExpiredEvent(this, registeredService, true));
}
delete(registeredService);
return null;
}
return registeredService;
}
use of org.apereo.cas.support.events.service.CasRegisteredServiceExpiredEvent in project cas by apereo.
the class RegisteredServicesEventListenerTests method verifyServiceExpirationWithRemovalEvent.
@Test
public void verifyServiceExpirationWithRemovalEvent() {
val registeredService = RegisteredServiceTestUtils.getRegisteredService();
val contact = new DefaultRegisteredServiceContact();
contact.setName("Test");
contact.setEmail("casuser@example.org");
contact.setPhone("13477465421");
registeredService.getContacts().add(contact);
val listener = new DefaultRegisteredServicesEventListener(this.servicesManager, casProperties, communicationsManager);
listener.handleRefreshEvent(new CasRegisteredServicesRefreshEvent(this));
listener.handleEnvironmentChangeEvent(new EnvironmentChangeEvent(Set.of()));
val event = new CasRegisteredServiceExpiredEvent(this, registeredService, true);
listener.handleRegisteredServiceExpiredEvent(event);
}
use of org.apereo.cas.support.events.service.CasRegisteredServiceExpiredEvent in project cas by apereo.
the class RegisteredServicesEventListenerTests method verifyServiceExpirationEventWithContact.
@Test
public void verifyServiceExpirationEventWithContact() {
val registeredService = RegisteredServiceTestUtils.getRegisteredService();
val contact = new DefaultRegisteredServiceContact();
contact.setName("Test");
contact.setEmail("casuser@example.org");
contact.setPhone("13477465421");
registeredService.getContacts().add(contact);
val listener = new DefaultRegisteredServicesEventListener(this.servicesManager, casProperties, communicationsManager);
val event = new CasRegisteredServiceExpiredEvent(this, registeredService, false);
assertDoesNotThrow(new Executable() {
@Override
public void execute() throws Throwable {
listener.handleRegisteredServiceExpiredEvent(event);
}
});
}
Aggregations