⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 throttleduseandtimeoutexpirationpolicy.java

📁 CAS在Tomcat中实现单点登录项目,单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一
💻 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 + -