a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: FedletSessionProvider.java,v 1.4 2008/08/06 17:28:17 exu Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
6cf99bcf5206a0fcc9dd9296fc46ac28c3fe8adePeter Major * Portions Copyrighted 2015-2016 ForgeRock AS.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.plugin.session.impl;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.debug.Debug;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.plugin.session.SessionException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.plugin.session.SessionListener;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.plugin.session.SessionProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport javax.servlet.http.HttpServletRequest;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport javax.servlet.http.HttpServletResponse;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.Map;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The <code>FedletSessionProvider</code> class is an implementation of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>SessionProvider</code> interface for Fedlet deployment.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The implementation performs no operation on the methods.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class FedletSessionProvider implements SessionProvider {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private static Debug debug = Debug.getInstance("libPlugins");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Default Constructor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public FedletSessionProvider() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Indicates whether a secret originally comes from this class or not
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param secret the secret string to be matched
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if there is a match, false otherwise
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static boolean matchSecret(String secret) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Meaningful only for SP side, the implementation of this method
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * will create a local session for the local user identified by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the information in the map. The underline mechanism of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * session creation and management is application specific.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * For example, it could be cookie setting or url rewriting, which
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is expected to be done by the implementation of this method.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Note that only the first input parameter is mandatory. Normally,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at least one of the last two parameters should not be null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param info a Map with keys and values being of type String; The
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * keys will include "principalName" (returned from
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * SPAccountMapper), "realm", "authLevel", and may
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * include "resourceOffering" and/or "idpEntityID";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The implementation of this method could choose to set
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * some of the information contained in the map into the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * newly created Session by calling setProperty(), later
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the target application may consume the information.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param request the HttpServletRequest the user made to initiate
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the SSO; Note that it should be the initial request
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * coming from the browser as opposed to the possible
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * subsequent back-channel HTTP request for delivering
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * SOAP message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param response the HttpServletResponse that will be sent to the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * user (for example it could be used to set a cookie).
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param targetApplication the original resource that was requested
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * as the target of the SSO by the end user;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If needed, this String could be modified,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * e.g., by appending query string(s) or by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * url rewriting, hence this is an in/out
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * parameter.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the newly created local user session.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SessionException if an error occurred during session
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * creation.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Object createSession(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Map info, // in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HttpServletRequest request, // in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HttpServletResponse response, // in/out
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster StringBuffer targetApplication // in/out
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ) throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.createSession(1) called " +info);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return info.get(SessionProvider.PRINCIPAL_NAME);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * May be used by both SP and IDP side for getting an existing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * session given an session ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param sessionID the unique session handle.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the corresponding session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SessionException if an error occurred during session
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * retrieval.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Object getSession(String sessionID)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.getSession(1) called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return sessionID;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * May be used by both SP and IDP side for getting an existing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * session given a browser initiated HTTP request.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param request the browser initiated HTTP request.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the corresponding session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SessionException if an error occurred during session
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * retrieval.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Object getSession(HttpServletRequest request)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.getSession(2) called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * May be used by both SP and IDP side to invalidate a session.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * In case of SLO with SOAP, the last two input parameters
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * would have to be null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session the session to be invalidated
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param request the browser initiated HTTP request.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param response the HTTP response going back to browser.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SessionException if an error occurred during session
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * retrieval.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void invalidateSession(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Object session,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HttpServletRequest request, // optional input
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HttpServletResponse response // optional input
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ) throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.invalidateSession called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Indicates whether the session is still valid.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This is useful for toolkit clean-up thread.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session Session object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return boolean value indicating whether the session
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is still valid
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean isValid(Object session)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.isValid called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The returned session ID should be unique and not
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * change during the lifetime of this session.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getSessionID(Object session) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.getSessionID called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return (String) session;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns princiapl name, or user name given the session
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session Session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return principal name, or user name.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SessionException if this operation causes an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getPrincipalName(Object session)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.getPrincipalName called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return (String) session;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Stores a property in the session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session the session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param name the property name.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param values the property values.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SessionException if setting the property causes an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setProperty(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Object session,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String name,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String[] values
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ) throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.setProperty(1) called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Retrieves a property from the session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session the session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param name the property name.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the property values.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SessionException if getting the property causes an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String[] getProperty(Object session, String name)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.getProperty(1) called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /*
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Rewrites an URL with session information in case
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * cookie setting is not supported.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session the session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param URL the URL to be rewritten.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the rewritten URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SessionException if rewritting the URL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * causes an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String rewriteURL(Object session, String URL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.rewriteURL(1) called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return URL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Registers a listener for the session.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session the session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param listener listener for the session invalidation event.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
6cf99bcf5206a0fcc9dd9296fc46ac28c3fe8adePeter Major * @throws SessionException if adding the listener caused an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void addListener(Object session, SessionListener listener)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SessionException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.addListener called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a load balancer cookie in the suppled HTTP response. The load
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * balancer cookie's value is set per server instance and is used to
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * support sticky load balancing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
6cf99bcf5206a0fcc9dd9296fc46ac28c3fe8adePeter Major * @param request The HTTP request.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param response the <code>HttpServletResponse</code> that will be sent
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * to the user.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
6cf99bcf5206a0fcc9dd9296fc46ac28c3fe8adePeter Major public void setLoadBalancerCookie(HttpServletRequest request, HttpServletResponse response) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.message("FedletSessionProvider.setLoadBalancerCookie called");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public long getTimeLeft(Object session) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return 0;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}