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  package edu.internet2.middleware.shibboleth.common.config.relyingparty.saml;
19  
20  import edu.internet2.middleware.shibboleth.common.relyingparty.provider.saml2.SSOConfiguration;
21  
22  /** Spring factory for SAML 2 SSO profile configurations. */
23  public class SAML2SSOProfileConfigurationFactoryBean extends AbstractSAML2ProfileConfigurationFactoryBean {
24  
25      /** Whether responses to the authentication request should include an attribute statement. */
26      private boolean includeAttributeStatement;
27  
28      /** The maximum amount of time, in milliseconds, the service provider should maintain a session for the user. */
29      private long maximumSPSessionLifetime;
30  
31      /** {@inheritDoc} */
32      public Class getObjectType() {
33          return SSOConfiguration.class;
34      }
35  
36      /**
37       * Gets whether responses to the authentication request should include an attribute statement.
38       * 
39       * @return whether responses to the authentication request should include an attribute statement
40       */
41      public boolean includeAttributeStatement() {
42          return includeAttributeStatement;
43      }
44  
45      /**
46       * Sets whether responses to the authentication request should include an attribute statement.
47       * 
48       * @param include whether responses to the authentication request should include an attribute statement
49       */
50      public void setIncludeAttributeStatement(boolean include) {
51          includeAttributeStatement = include;
52      }
53  
54      /**
55       * Gets the maximum amount of time, in milliseconds, the service provider should maintain a session for the user
56       * based on the authentication assertion.
57       * 
58       * @return max lifetime of service provider should maintain a session
59       */
60      public long getMaximumSPSessionLifetime() {
61          return maximumSPSessionLifetime;
62      }
63  
64      /**
65       * Sets the maximum amount of time, in milliseconds, the service provider should maintain a session for the user
66       * based on the authentication assertion.
67       * 
68       * @param lifetime max lifetime of service provider should maintain a session
69       */
70      public void setMaximumSPSessionLifetime(long lifetime) {
71          maximumSPSessionLifetime = lifetime;
72      }
73  
74      /** {@inheritDoc} */
75      protected Object createInstance() throws Exception {
76          SSOConfiguration configuration = (SSOConfiguration) getObjectType().newInstance();
77          populateBean(configuration);
78          configuration.setIncludeAttributeStatement(includeAttributeStatement());
79          configuration.setMaximumSPSessionLifetime(getMaximumSPSessionLifetime());
80  
81          return configuration;
82      }
83  }