package at.asitplus.eidas.specific.connector.health; import javax.xml.transform.TransformerFactoryConfigurationError; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.health.Health; import org.springframework.boot.actuate.health.HealthIndicator; import at.gv.egiz.eaaf.modules.pvp2.api.metadata.IPvpMetadataBuilderConfiguration; import at.gv.egiz.eaaf.modules.pvp2.api.metadata.IPvpMetadataConfigurationFactory; import at.gv.egiz.eaaf.modules.pvp2.impl.builder.PvpMetadataBuilder; import at.gv.egiz.eaaf.modules.pvp2.impl.utils.AbstractCredentialProvider; import lombok.Setter; import lombok.extern.slf4j.Slf4j; @Slf4j public class Saml2MetadataHealthIndicator implements HealthIndicator { @Autowired private PvpMetadataBuilder metadatabuilder; @Autowired private IPvpMetadataConfigurationFactory configFactory; @Setter private AbstractCredentialProvider pvpIdpCredentials; @Override public Health health() { try { // build metadata final IPvpMetadataBuilderConfiguration metadataConfig = configFactory.generateMetadataBuilderConfiguration( "http://localhost/monitoring", pvpIdpCredentials); metadatabuilder.buildPvpMetadata(metadataConfig); return Health.up().build(); } catch (Exception | TransformerFactoryConfigurationError e) { return Health.down().down(e).build(); } } }