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.security;
19  
20  import org.springframework.beans.factory.xml.BeanDefinitionParser;
21  
22  import edu.internet2.middleware.shibboleth.common.config.BaseSpringNamespaceHandler;
23  
24  /**
25   * Spring namespace handler for Shibboleth security objects.
26   */
27  public class SecurityNamespaceHandler extends BaseSpringNamespaceHandler {
28  
29      /** Security configuration namespace. */
30      public static final String NAMESPACE = "urn:mace:shibboleth:2.0:security";
31  
32      /** {@inheritDoc} */
33      public void init() {
34          registerBeanDefinitionParser(FilesystemX509CredentialBeanDefinitionParser.SCHEMA_TYPE,
35                  new FilesystemX509CredentialBeanDefinitionParser());
36  
37          registerBeanDefinitionParser(InlineX509CredentialBeanDefinitionParser.SCHEMA_TYPE,
38                  new InlineX509CredentialBeanDefinitionParser());
39  
40          registerBeanDefinitionParser(FilesystemBasicCredentialBeanDefinitionParser.SCHEMA_TYPE,
41                  new FilesystemBasicCredentialBeanDefinitionParser());
42  
43          registerBeanDefinitionParser(InlineBasicCredentialBeanDefinitionParser.SCHEMA_TYPE,
44                  new InlineBasicCredentialBeanDefinitionParser());
45  
46          registerBeanDefinitionParser(FilesystemPKIXValidationInformationBeanDefinitionParser.SCHEMA_TYPE,
47                  new FilesystemPKIXValidationInformationBeanDefinitionParser());
48  
49          registerBeanDefinitionParser(InlinePKIXValidationInformationBeanDefinitionParser.SCHEMA_TYPE,
50                  new InlinePKIXValidationInformationBeanDefinitionParser());
51          
52          BeanDefinitionParser pkixOptionsParser = new PKIXValidationOptionsBeanDefinitionParser();
53          registerBeanDefinitionParser(PKIXValidationOptionsBeanDefinitionParser.ELEMENT_NAME, pkixOptionsParser);
54          registerBeanDefinitionParser(PKIXValidationOptionsBeanDefinitionParser.SCHEMA_TYPE, pkixOptionsParser);
55          
56          registerBeanDefinitionParser(CertPathPKIXValidationOptionsBeanDefinitionParser.SCHEMA_TYPE,
57                  new CertPathPKIXValidationOptionsBeanDefinitionParser());
58  
59          BeanDefinitionParser parser = new ShibbolethSecurityPolicyBeanDefinitionParser();
60          registerBeanDefinitionParser(ShibbolethSecurityPolicyBeanDefinitionParser.ELEMENT_NAME, parser);
61          registerBeanDefinitionParser(ShibbolethSecurityPolicyBeanDefinitionParser.SCHEMA_TYPE, parser);
62  
63          registerBeanDefinitionParser(ChainingTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
64                  new ChainingTrustEngineBeanDefinitionParser());
65  
66          registerBeanDefinitionParser(ChainingSignatureTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
67                  new ChainingSignatureTrustEngineBeanDefinitionParser());
68  
69          registerBeanDefinitionParser(MetadataExplicitKeyTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
70                  new MetadataExplicitKeyTrustEngineBeanDefinitionParser());
71  
72          registerBeanDefinitionParser(MetadataPKIXX509CredentialTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
73                  new MetadataPKIXX509CredentialTrustEngineBeanDefinitionParser());
74  
75          registerBeanDefinitionParser(MetadataExplicitKeySignatureTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
76                  new MetadataExplicitKeySignatureTrustEngineBeanDefinitionParser());
77  
78          registerBeanDefinitionParser(MetadataPKIXSignatureTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
79                  new MetadataPKIXSignatureTrustEngineBeanDefinitionParser());
80  
81          registerBeanDefinitionParser(StaticExplicitKeyTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
82                  new StaticExplicitKeyTrustEngineBeanDefinitionParser());
83  
84          registerBeanDefinitionParser(StaticExplicitKeySignatureTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
85                  new StaticExplicitKeySignatureTrustEngineBeanDefinitionParser());
86  
87          registerBeanDefinitionParser(StaticPKIXX509CredentialTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
88                  new StaticPKIXX509CredentialTrustEngineBeanDefinitionParser());
89  
90          registerBeanDefinitionParser(StaticPKIXSignatureTrustEngineBeanDefinitionParser.SCHEMA_TYPE,
91                  new StaticPKIXSignatureTrustEngineBeanDefinitionParser());
92  
93          registerBeanDefinitionParser(ClientCertAuthRuleBeanDefinitionParser.SCHEMA_TYPE,
94                  new ClientCertAuthRuleBeanDefinitionParser());
95  
96          registerBeanDefinitionParser(MandatoryMessageAuthenticationRuleBeanDefinitionParser.SCHEMA_TYPE,
97                  new MandatoryMessageAuthenticationRuleBeanDefinitionParser());
98      }
99  
100 }