📄 throttleduseandtimeoutexpirationpolicy.java
字号:
/* * Copyright 2007 The JA-SIG Collaborative. All rights reserved. See license * distributed with this file and available online at * http://www.ja-sig.org/products/cas/overview/license/ */package org.jasig.cas.ticket.support;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.jasig.cas.ticket.ExpirationPolicy;import org.jasig.cas.ticket.TicketState;/** * Implementation of an expiration policy that adds the concept of saying that a * ticket can only be used once every X millseconds to prevent misconfigured * clients from consuming resources by doing constant redirects. * * @author Scott Battaglia * @version $Revision: 42053 $ $Date: 2007-06-10 09:17:55 -0400 (Sun, 10 Jun 2007) $ * @since 3.0.5 */public final class ThrottledUseAndTimeoutExpirationPolicy implements ExpirationPolicy { private Log log = LogFactory.getLog(this.getClass()); /** Static ID for serialization. */ private static final long serialVersionUID = -848036845536731268L; /** The time to kill in milliseconds. */ private long timeToKillInMilliSeconds; /** Time time between which a ticket must wait to be used again. */ private long timeInBetweenUsesInMilliSeconds; public void setTimeInBetweenUsesInMilliSeconds( final long timeInBetweenUsesInMilliSeconds) { this.timeInBetweenUsesInMilliSeconds = timeInBetweenUsesInMilliSeconds; } public void setTimeToKillInMilliSeconds(final long timeToKillInMilliSeconds) { this.timeToKillInMilliSeconds = timeToKillInMilliSeconds; } public boolean isExpired(final TicketState ticketState) { if (ticketState.getCountOfUses() == 0 && (System.currentTimeMillis() - ticketState.getLastTimeUsed() < this.timeToKillInMilliSeconds)) { if (log.isDebugEnabled()) { log .debug("Ticket is not expired due to a count of zero and the time being less than the timeToKillInMilliseconds"); } return false; } if ((System.currentTimeMillis() - ticketState.getLastTimeUsed() >= this.timeToKillInMilliSeconds)) { if (log.isDebugEnabled()) { log .debug("Ticket is expired due to the time being greater than the timeToKillInMilliseconds"); } return true; } if ((System.currentTimeMillis() - ticketState.getLastTimeUsed() <= this.timeInBetweenUsesInMilliSeconds)) { log .warn("Ticket is expired due to the time being less than the waiting period."); return true; } return false; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -