private static Optional<SamlRegisteredServiceServiceProviderMetadataFacade> getServiceProviderSsoDescriptor(final String entityID,
final MetadataResolver chainingMetadataResolver,
final EntityDescriptor entityDescriptor) {
val ssoDescriptor = entityDescriptor.getSPSSODescriptor(SAMLConstants.SAML20P_NS);
if (ssoDescriptor != null) {
LOGGER.debug("Located SP SSODescriptor in metadata for [{}]. Metadata is valid until [{}]", entityID,
ObjectUtils.defaultIfNull(ssoDescriptor.getValidUntil(), "forever"));
if (ssoDescriptor.getValidUntil() != null && ssoDescriptor.getValidUntil().isBeforeNow()) {
LOGGER.warn("SP SSODescriptor in the metadata has expired at [{}]", ssoDescriptor.getValidUntil());
return Optional.empty();
}
return Optional.of(new SamlRegisteredServiceServiceProviderMetadataFacade(ssoDescriptor, entityDescriptor,
chainingMetadataResolver));
}
LOGGER.warn("Could not locate SP SSODescriptor in the metadata for [{}]", entityID);
return Optional.empty();
}