IDPCache.java revision 34f7fc919553f0b520d0008264f1c5af819a3861
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * The contents of this file are subject to the terms
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * of the Common Development and Distribution License
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * (the License). You may not use this file except in
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * compliance with the License.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * You can obtain a copy of the License at
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * https://opensso.dev.java.net/public/CDDLv1.0.html or
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * See the License for the specific language governing
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * permission and limitations under the License.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * When distributing Covered Code, include this CDDL
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Header Notice in each file and include the License file
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * If applicable, add the following below the CDDL Header,
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * with the fields enclosed by brackets [] replaced by
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * your own identifying information:
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * "Portions Copyrighted [year] [name of copyright owner]"
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * $Id: IDPCache.java,v 1.18 2009/05/14 17:23:45 exu Exp $
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Portions Copyrighted 2010-2014 ForgeRock AS.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeperimport com.sun.identity.common.PeriodicCleanUpMap;
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * This class caches authn request objects and relay states
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * based on the request id of the authn requests
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * It also caches idp session by session index.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * TODO: Add cleanup thread to update IDP Cache if the cached
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * objects stay in the cache longer than a certain Cache Duration.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Cache saves the authn request objects.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Key : request ID String
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Value : AuthnRequest object
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * TODO : handle the case when assertion effective time is different
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * from cleanup interval
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public static PeriodicCleanUpMap authnRequestCache = new PeriodicCleanUpMap(
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper SPCache.interval * 1000, SPCache.interval * 1000);
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Cache saves the authn context objects before IDP redirects user to
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * authentication.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Key : request ID String
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Value : AuthnContext object
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public static PeriodicCleanUpMap idpAuthnContextCache =
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper SPCache.interval * 1000, SPCache.interval * 1000);
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Cache saves the assertion objects.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Key : user ID String
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Value : list of assertion objects
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public static Hashtable assertionCache = new Hashtable();
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Cache saves the assertion objects.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Key : assertion ID String
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Value : assertion object
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public static PeriodicCleanUpMap assertionByIDCache =
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper new PeriodicCleanUpMap(SPCache.interval * 1000,
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Cache saves the relay state strings.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Key : request ID String
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Value : relay state string
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public static PeriodicCleanUpMap relayStateCache = new PeriodicCleanUpMap(
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper SPCache.interval * 1000, SPCache.interval * 1000);
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Cache saves the idp sessions.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * key : sessionIndex (String)
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * value :IDPSession
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * IDP: used in SingleSignOnService and SingleLogoutService
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * to invalidate a specific session
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public static Hashtable<String, IDPSession> idpSessionsByIndices = new Hashtable<String, IDPSession>();
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Cache saves Responses to be used by ArtifactResolutionService.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * key --- artifact string (after encoding and all that)
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * value --- Response
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * IDP: used in SingleSignOnService and ArtifactResolutionService
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * TODO : handle the case when artifact expiration time is different
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * from cleanup interval
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public static PeriodicCleanUpMap responsesByArtifacts =
new PeriodicCleanUpMap(
new PeriodicCleanUpMap(
new PeriodicCleanUpMap(
new PeriodicCleanUpMap(