/* * See LICENSE for licensing and NOTICE for copyright. */ package net.shibboleth.idp.cas.config; import net.shibboleth.idp.profile.config.AbstractProfileConfiguration; import net.shibboleth.utilities.java.support.annotation.Duration; import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty; import net.shibboleth.utilities.java.support.annotation.constraint.Positive; import net.shibboleth.utilities.java.support.component.ComponentInitializationException; import net.shibboleth.utilities.java.support.component.InitializableComponent; import net.shibboleth.utilities.java.support.logic.Constraint; import javax.annotation.Nonnull; /** * Base class for CAS protocol configuration. * * @author Marvin S. Addison */ public abstract class AbstractTicketConfiguration extends AbstractProfileConfiguration implements InitializableComponent { /** CAS base protocol URI. */ public static final String PROTOCOL_URI = "https://www.apereo.org/cas/protocol"; /** Initialization flag. */ private boolean initialized; /** Validity time period of tickets. */ @Duration @Positive private long ticketValidityPeriod; /** * Creates a new configuration instance. * * @param profileId Unique profile identifier. */ public AbstractTicketConfiguration(@Nonnull @NotEmpty final String profileId) { super(profileId); } @Override public void initialize() throws ComponentInitializationException { Constraint.isNotNull(getSecurityConfiguration(), "Security configuration cannot be null."); Constraint.isNotNull(getSecurityConfiguration().getIdGenerator(), "Security configuration ID generator cannot be null."); initialized = true; } @Override public boolean isInitialized() { return initialized; } /** * @return Ticket validity period in milliseconds. */ @Positive public long getTicketValidityPeriod() { return ticketValidityPeriod; } /** * Sets the ticket validity period. * * @param millis Ticket validity period in milliseconds. */ public void setTicketValidityPeriod(@Duration @Positive final long millis) { this.ticketValidityPeriod = Constraint.isGreaterThan(0, millis, "Ticket validity period must be positive."); } }