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