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;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22 import org.opensaml.saml2.metadata.provider.MetadataProvider;
23 import org.opensaml.security.MetadataCredentialResolver;
24 import org.opensaml.xml.security.keyinfo.BasicProviderKeyInfoCredentialResolver;
25 import org.opensaml.xml.security.keyinfo.KeyInfoCredentialResolver;
26 import org.opensaml.xml.security.keyinfo.KeyInfoProvider;
27 import org.opensaml.xml.security.keyinfo.provider.DSAKeyValueProvider;
28 import org.opensaml.xml.security.keyinfo.provider.InlineX509DataProvider;
29 import org.opensaml.xml.security.keyinfo.provider.RSAKeyValueProvider;
30 import org.opensaml.xml.signature.impl.ExplicitKeySignatureTrustEngine;
31 import org.springframework.beans.factory.config.AbstractFactoryBean;
32
33
34
35
36 public class MetadataExplicitKeySignatureTrustEngineFactoryBean extends AbstractFactoryBean {
37
38
39 private MetadataProvider metadataProvider;
40
41
42
43
44
45
46 public MetadataProvider getMetadataProvider() {
47 return metadataProvider;
48 }
49
50
51
52
53
54
55 public void setMetadataProvider(MetadataProvider provider) {
56 metadataProvider = provider;
57 }
58
59
60 public Class getObjectType() {
61 return ExplicitKeySignatureTrustEngine.class;
62 }
63
64
65 protected Object createInstance() throws Exception {
66 MetadataCredentialResolver credResolver = new MetadataCredentialResolver(getMetadataProvider());
67
68 List<KeyInfoProvider> keyInfoProviders = new ArrayList<KeyInfoProvider>();
69 keyInfoProviders.add(new DSAKeyValueProvider());
70 keyInfoProviders.add(new RSAKeyValueProvider());
71 keyInfoProviders.add(new InlineX509DataProvider());
72 KeyInfoCredentialResolver keyInfoCredResolver = new BasicProviderKeyInfoCredentialResolver(keyInfoProviders);
73
74 return new ExplicitKeySignatureTrustEngine(credResolver, keyInfoCredResolver);
75 }
76 }