Flesh out some session management interfaces
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / idp / session / impl / SessionImpl.java
1 /*
2  * Copyright [2006] [University Corporation for Advanced Internet Development, Inc.]
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package edu.internet2.middleware.shibboleth.idp.session.impl;
18
19 import java.net.InetAddress;
20 import java.util.List;
21
22 import javolution.util.FastList;
23
24 import edu.internet2.middleware.shibboleth.common.session.impl.AbstractSession;
25 import edu.internet2.middleware.shibboleth.idp.session.AuthenticationMethodInformation;
26 import edu.internet2.middleware.shibboleth.idp.session.ServiceInformation;
27 import edu.internet2.middleware.shibboleth.idp.session.Session;
28
29 /**
30  * Session information for user logged into the IdP.
31  */
32 public class SessionImpl extends AbstractSession implements Session {
33     
34     /** Serial version UID. */
35     private static final long serialVersionUID = 2927868242208211623L;
36
37     /** The list of methods used to authentictate the user. */
38     private List<AuthenticationMethodInformation> authnMethods;
39
40     /** The list of services to which the user has logged in. */
41     private List<ServiceInformation> servicesInformation;
42
43     /**
44      * Default constructor.
45      * 
46      * @param presenter IP address of the presenter
47      * @param principal principal ID of the user
48      */
49     public SessionImpl(InetAddress presenter, String principal) {
50         super(presenter, principal);
51
52         authnMethods = new FastList<AuthenticationMethodInformation>();
53         servicesInformation = new FastList<ServiceInformation>();
54     }
55
56     /** {@inheritDoc} */
57     public List<AuthenticationMethodInformation> getAuthenticationMethods() {
58         return authnMethods;
59     }
60
61     /** {@inheritDoc} */
62     public List<ServiceInformation> getServicesInformation() {
63         return servicesInformation;
64     }
65
66 }