package org.apereo.cas.ticket.support; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apereo.cas.ticket.TicketState; /** * NeverExpiresExpirationPolicy always answers false when asked if a Ticket is * expired. Use this policy when you want a Ticket to live forever, or at least * as long as the particular CAS Universe exists. * * @author Scott Battaglia * @since 3.0.0 */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include= JsonTypeInfo.As.PROPERTY) public class NeverExpiresExpirationPolicy extends AbstractCasExpirationPolicy { /** Serializable Unique ID. */ private static final long serialVersionUID = 3833747698242303540L; /** * Instantiates a new Never expires expiration policy. */ public NeverExpiresExpirationPolicy() {} @Override public boolean isExpired(final TicketState ticketState) { return false; } @JsonIgnore @Override public Long getTimeToLive() { return (long) Integer.MAX_VALUE; } @JsonIgnore @Override public Long getTimeToIdle() { return (long) Integer.MAX_VALUE; } @Override public boolean equals(final Object obj) { if (obj == null) { return false; } if (obj == this) { return true; } if (obj.getClass() != getClass()) { return false; } return new EqualsBuilder() .isEquals(); } @Override public int hashCode() { return new HashCodeBuilder() .toHashCode(); } }