1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package edu.internet2.middleware.shibboleth.common.config.security.saml;
19
20 import java.util.ArrayList;
21 import java.util.List;
22
23 import javax.xml.namespace.QName;
24
25 import org.opensaml.saml2.binding.security.SAML2HTTPPostSimpleSignRule;
26 import org.opensaml.xml.security.keyinfo.BasicProviderKeyInfoCredentialResolver;
27 import org.opensaml.xml.security.keyinfo.KeyInfoCredentialResolver;
28 import org.opensaml.xml.security.keyinfo.KeyInfoProvider;
29 import org.opensaml.xml.security.keyinfo.provider.DSAKeyValueProvider;
30 import org.opensaml.xml.security.keyinfo.provider.InlineX509DataProvider;
31 import org.opensaml.xml.security.keyinfo.provider.RSAKeyValueProvider;
32 import org.opensaml.xml.util.DatatypeHelper;
33 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
34 import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
35 import org.w3c.dom.Element;
36
37
38 public class SAML2HTTPPostSimpleSignRuleBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
39
40
41 public static final QName SCHEMA_TYPE = new QName(SAMLSecurityNamespaceHandler.NAMESPACE, "SAML2HTTPPostSimpleSign");
42
43
44 protected Class getBeanClass(Element element) {
45 return SAML2HTTPPostSimpleSignRule.class;
46 }
47
48
49 protected boolean shouldGenerateId() {
50 return true;
51 }
52
53
54 protected void doParse(Element element, BeanDefinitionBuilder builder) {
55 builder.addConstructorArgReference(DatatypeHelper.safeTrimOrNullString(element.getAttributeNS(null,
56 "trustEngineRef")));
57
58 builder.addConstructorArgReference(DatatypeHelper.safeTrimOrNullString(element.getAttributeNS(null,
59 "parserPoolRef")));
60
61 List<KeyInfoProvider> keyInfoProviders = new ArrayList<KeyInfoProvider>();
62 keyInfoProviders.add(new DSAKeyValueProvider());
63 keyInfoProviders.add(new RSAKeyValueProvider());
64 keyInfoProviders.add(new InlineX509DataProvider());
65 KeyInfoCredentialResolver keyInfoCredResolver = new BasicProviderKeyInfoCredentialResolver(keyInfoProviders);
66 builder.addConstructorArgValue(keyInfoCredResolver);
67 }
68 }