Search in sources :

Example 1 with SamlRegisteredServiceMetadataExpirationPolicy

use of org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy in project cas by apereo.

the class SamlRegisteredServiceMetadataExpirationPolicyTests method verifyPolicyBySpEntityCache.

@Test
public void verifyPolicyBySpEntityCache() throws Exception {
    val policy = new SamlRegisteredServiceMetadataExpirationPolicy(Beans.newDuration("PT5M"));
    val props = new SamlIdPProperties();
    props.getMetadata().getFileSystem().setLocation(new FileSystemResource(FileUtils.getTempDirectory()).getFile().getCanonicalPath());
    val service = new SamlRegisteredService();
    service.setMetadataExpirationDuration(StringUtils.EMPTY);
    service.setServiceId("https://carmenwiki.osu.edu/shibboleth");
    service.setMetadataLocation("classpath:GroovyMetadataResolver.groovy");
    val cacheKey = new SamlRegisteredServiceCacheKey(service, new CriteriaSet());
    val resolver = mock(MetadataResolver.class);
    val entity = mock(EntityDescriptor.class);
    val spCacheDuration = Duration.ofSeconds(30);
    when(entity.getCacheDuration()).thenReturn(spCacheDuration);
    when(resolver.resolveSingle(argThat(argument -> argument != null && argument.size() == 1))).thenReturn(entity);
    when(resolver.resolveSingle(argThat(argument -> argument != null && argument.size() > 1))).thenReturn(null);
    assertEquals(spCacheDuration.toNanos(), policy.expireAfterCreate(cacheKey, resolver, System.currentTimeMillis()));
}
Also used : lombok.val(lombok.val) DefaultRegisteredServiceExpirationPolicy(org.apereo.cas.services.DefaultRegisteredServiceExpirationPolicy) SamlIdPProperties(org.apereo.cas.configuration.model.support.saml.idp.SamlIdPProperties) BaseSamlIdPServicesTests(org.apereo.cas.support.saml.services.BaseSamlIdPServicesTests) lombok.val(lombok.val) FileSystemResource(org.springframework.core.io.FileSystemResource) FileUtils(org.apache.commons.io.FileUtils) Beans(org.apereo.cas.configuration.support.Beans) MetadataResolver(org.opensaml.saml.metadata.resolver.MetadataResolver) SamlRegisteredServiceCacheKey(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCacheKey) StringUtils(org.apache.commons.lang3.StringUtils) Test(org.junit.jupiter.api.Test) Mockito(org.mockito.Mockito) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) Duration(java.time.Duration) LocalDate(java.time.LocalDate) Assertions(org.junit.jupiter.api.Assertions) CriteriaSet(net.shibboleth.utilities.java.support.resolver.CriteriaSet) Clock(java.time.Clock) SamlRegisteredServiceMetadataExpirationPolicy(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy) Tag(org.junit.jupiter.api.Tag) EntityDescriptor(org.opensaml.saml.saml2.metadata.EntityDescriptor) SamlRegisteredServiceCacheKey(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCacheKey) SamlIdPProperties(org.apereo.cas.configuration.model.support.saml.idp.SamlIdPProperties) SamlRegisteredServiceMetadataExpirationPolicy(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) CriteriaSet(net.shibboleth.utilities.java.support.resolver.CriteriaSet) FileSystemResource(org.springframework.core.io.FileSystemResource) Test(org.junit.jupiter.api.Test)

Example 2 with SamlRegisteredServiceMetadataExpirationPolicy

use of org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy in project cas by apereo.

the class SamlRegisteredServiceMetadataExpirationPolicyTests method verifyPolicyByEntityCache.

@Test
public void verifyPolicyByEntityCache() throws Exception {
    val policy = new SamlRegisteredServiceMetadataExpirationPolicy(Beans.newDuration("PT5M"));
    val props = new SamlIdPProperties();
    props.getMetadata().getFileSystem().setLocation(new FileSystemResource(FileUtils.getTempDirectory()).getFile().getCanonicalPath());
    val service = new SamlRegisteredService();
    service.setMetadataExpirationDuration(StringUtils.EMPTY);
    service.setServiceId("https://carmenwiki.osu.edu/shibboleth");
    service.setMetadataLocation("classpath:GroovyMetadataResolver.groovy");
    val cacheKey = new SamlRegisteredServiceCacheKey(service, new CriteriaSet());
    val resolver = mock(MetadataResolver.class);
    val entity = mock(EntityDescriptor.class);
    val entityCacheDuration = Duration.ofSeconds(10);
    when(entity.getCacheDuration()).thenReturn(entityCacheDuration);
    when(resolver.resolveSingle(any())).thenReturn(entity);
    assertEquals(entityCacheDuration.toNanos(), policy.expireAfterCreate(cacheKey, resolver, System.currentTimeMillis()));
    when(resolver.resolveSingle(any())).thenThrow(new IllegalArgumentException());
    assertEquals(policy.getDefaultExpiration(), policy.expireAfterCreate(cacheKey, resolver, System.currentTimeMillis()));
    assertEquals(policy.getDefaultExpiration(), policy.expireAfterUpdate(cacheKey, resolver, 1000, policy.getDefaultExpiration()));
}
Also used : lombok.val(lombok.val) SamlRegisteredServiceCacheKey(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCacheKey) SamlIdPProperties(org.apereo.cas.configuration.model.support.saml.idp.SamlIdPProperties) SamlRegisteredServiceMetadataExpirationPolicy(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) CriteriaSet(net.shibboleth.utilities.java.support.resolver.CriteriaSet) FileSystemResource(org.springframework.core.io.FileSystemResource) Test(org.junit.jupiter.api.Test)

Example 3 with SamlRegisteredServiceMetadataExpirationPolicy

use of org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy in project cas by apereo.

the class SamlRegisteredServiceMetadataExpirationPolicyTests method verifyPolicyByServiceExpirationPolicy.

@Test
@SuppressWarnings("JavaTimeDefaultTimeZone")
public void verifyPolicyByServiceExpirationPolicy() throws Exception {
    val policy = new SamlRegisteredServiceMetadataExpirationPolicy(Beans.newDuration("PT5M"));
    val props = new SamlIdPProperties();
    props.getMetadata().getFileSystem().setLocation(new FileSystemResource(FileUtils.getTempDirectory()).getFile().getCanonicalPath());
    val service = new SamlRegisteredService();
    service.setExpirationPolicy(new DefaultRegisteredServiceExpirationPolicy().setExpirationDate(LocalDate.now(Clock.systemDefaultZone()).plusDays(1).toString()));
    service.setMetadataExpirationDuration(StringUtils.EMPTY);
    service.setServiceId("https://carmenwiki.osu.edu/shibboleth");
    service.setMetadataLocation("classpath:GroovyMetadataResolver.groovy");
    val cacheKey = new SamlRegisteredServiceCacheKey(service, new CriteriaSet());
    val resolver = mock(MetadataResolver.class);
    val entity = mock(EntityDescriptor.class);
    when(entity.getCacheDuration()).thenReturn(null);
    when(resolver.resolveSingle(argThat(argument -> argument != null && argument.size() == 1))).thenReturn(entity);
    when(resolver.resolveSingle(argThat(argument -> argument != null && argument.size() > 1))).thenReturn(null);
    assertNotEquals(policy.getDefaultExpiration(), policy.expireAfterCreate(cacheKey, resolver, System.currentTimeMillis()));
}
Also used : lombok.val(lombok.val) DefaultRegisteredServiceExpirationPolicy(org.apereo.cas.services.DefaultRegisteredServiceExpirationPolicy) SamlIdPProperties(org.apereo.cas.configuration.model.support.saml.idp.SamlIdPProperties) BaseSamlIdPServicesTests(org.apereo.cas.support.saml.services.BaseSamlIdPServicesTests) lombok.val(lombok.val) FileSystemResource(org.springframework.core.io.FileSystemResource) FileUtils(org.apache.commons.io.FileUtils) Beans(org.apereo.cas.configuration.support.Beans) MetadataResolver(org.opensaml.saml.metadata.resolver.MetadataResolver) SamlRegisteredServiceCacheKey(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCacheKey) StringUtils(org.apache.commons.lang3.StringUtils) Test(org.junit.jupiter.api.Test) Mockito(org.mockito.Mockito) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) Duration(java.time.Duration) LocalDate(java.time.LocalDate) Assertions(org.junit.jupiter.api.Assertions) CriteriaSet(net.shibboleth.utilities.java.support.resolver.CriteriaSet) Clock(java.time.Clock) SamlRegisteredServiceMetadataExpirationPolicy(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy) Tag(org.junit.jupiter.api.Tag) EntityDescriptor(org.opensaml.saml.saml2.metadata.EntityDescriptor) SamlRegisteredServiceCacheKey(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCacheKey) SamlIdPProperties(org.apereo.cas.configuration.model.support.saml.idp.SamlIdPProperties) DefaultRegisteredServiceExpirationPolicy(org.apereo.cas.services.DefaultRegisteredServiceExpirationPolicy) SamlRegisteredServiceMetadataExpirationPolicy(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) CriteriaSet(net.shibboleth.utilities.java.support.resolver.CriteriaSet) FileSystemResource(org.springframework.core.io.FileSystemResource) Test(org.junit.jupiter.api.Test)

Aggregations

lombok.val (lombok.val)3 CriteriaSet (net.shibboleth.utilities.java.support.resolver.CriteriaSet)3 SamlIdPProperties (org.apereo.cas.configuration.model.support.saml.idp.SamlIdPProperties)3 SamlRegisteredService (org.apereo.cas.support.saml.services.SamlRegisteredService)3 SamlRegisteredServiceCacheKey (org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCacheKey)3 SamlRegisteredServiceMetadataExpirationPolicy (org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceMetadataExpirationPolicy)3 Test (org.junit.jupiter.api.Test)3 FileSystemResource (org.springframework.core.io.FileSystemResource)3 Clock (java.time.Clock)2 Duration (java.time.Duration)2 LocalDate (java.time.LocalDate)2 FileUtils (org.apache.commons.io.FileUtils)2 StringUtils (org.apache.commons.lang3.StringUtils)2 Beans (org.apereo.cas.configuration.support.Beans)2 DefaultRegisteredServiceExpirationPolicy (org.apereo.cas.services.DefaultRegisteredServiceExpirationPolicy)2 BaseSamlIdPServicesTests (org.apereo.cas.support.saml.services.BaseSamlIdPServicesTests)2 Assertions (org.junit.jupiter.api.Assertions)2 Tag (org.junit.jupiter.api.Tag)2 Mockito (org.mockito.Mockito)2 MetadataResolver (org.opensaml.saml.metadata.resolver.MetadataResolver)2