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 }