View Javadoc

    1   /*
    2    * Licensed to the University Corporation for Advanced Internet Development,
    3    * Inc. (UCAID) under one or more contributor license agreements.  See the
    4    * NOTICE file distributed with this work for additional information regarding
    5    * copyright ownership. The UCAID licenses this file to You under the Apache
    6    * License, Version 2.0 (the "License"); you may not use this file except in
    7    * compliance with the License.  You may obtain a copy of the License at
    8    *
    9    *    http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17
    18  /*
    19   * Copyright 2008 University Corporation for Advanced Internet Development, Inc.
    20   *
    21   * Licensed under the Apache License, Version 2.0 (the "License");
    22   * you may not use this file except in compliance with the License.
    23   * You may obtain a copy of the License at
    24   *
    25   * http://www.apache.org/licenses/LICENSE-2.0
    26   *
    27   * Unless required by applicable law or agreed to in writing, software
    28   * distributed under the License is distributed on an "AS IS" BASIS,
    29   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    30   * See the License for the specific language governing permissions and
    31   * limitations under the License.
    32   */
    33
    34  package edu.internet2.middleware.shibboleth.idp.session.impl;
    35
    36  import java.util.List;
    37  import java.util.Vector;
    38
    39  import org.joda.time.DateTime;
    40  import org.opensaml.util.storage.AbstractExpiringObject;
    41
    42  import edu.internet2.middleware.shibboleth.idp.session.Session;
    43
    44  /** Session store entry. */
    45  public class SessionManagerEntry extends AbstractExpiringObject {
    46
    47      /** Serial version UID. */
    48      private static final long serialVersionUID = -9160494097986587739L;
    49
    50      /** User's session. */
    51      private Session userSession;
    52
    53      /** Indexes for this session. */
    54      private List<String> indexes;
    55
    56      /**
    57       * Constructor.
    58       *
    59       * @param session user session
    60       * @param lifetime lifetime of session
    61       */
    62      public SessionManagerEntry(Session session, long lifetime) {
    63          super(new DateTime().plus(lifetime));
    64          userSession = session;
    65          indexes = new Vector<String>();
    66          indexes.add(userSession.getSessionID());
    67      }
    68
    69      /**
    70       * Gets the user session.
    71       *
    72       * @return user session
    73       */
    74      public Session getSession() {
    75          return userSession;
    76      }
    77
    78      /**
    79       * Gets the ID of the user session.
    80       *
    81       * @return ID of the user session
    82       */
    83      public String getSessionId() {
    84          return userSession.getSessionID();
    85      }
    86
    87      /**
    88       * Gets the list of indexes for this session.
    89       *
    90       * @return list of indexes for this session
    91       */
    92      public List<String> getSessionIndexes() {
    93          return indexes;
    94      }
    95
    96      /** {@inheritDoc} */
    97      public DateTime getExpirationTime() {
    98          return userSession.getLastActivityInstant().plus(userSession.getInactivityTimeout());
    99      }
    100 }