1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.xml.security.x509;
18
19 import java.security.PrivateKey;
20 import java.security.PublicKey;
21 import java.security.cert.X509CRL;
22 import java.security.cert.X509Certificate;
23 import java.util.Arrays;
24 import java.util.Collection;
25 import java.util.Collections;
26
27 import javax.net.ssl.X509KeyManager;
28
29 import org.opensaml.xml.security.credential.BasicCredential;
30 import org.opensaml.xml.util.DatatypeHelper;
31
32
33 public class X509KeyManagerX509CredentialAdapter extends BasicCredential implements X509Credential {
34
35
36 private String credentialAlias;
37
38
39 private X509KeyManager keyManager;
40
41
42
43
44
45
46
47 public X509KeyManagerX509CredentialAdapter(X509KeyManager manager, String alias) {
48 if (manager == null) {
49 throw new IllegalArgumentException("Key manager may not be null");
50 }
51 keyManager = manager;
52
53 credentialAlias = DatatypeHelper.safeTrimOrNullString(alias);
54 if (credentialAlias == null) {
55 throw new IllegalArgumentException("Entity alias may not be null");
56 }
57 }
58
59
60 public Collection<X509CRL> getCRLs() {
61 return Collections.EMPTY_LIST;
62 }
63
64
65 public X509Certificate getEntityCertificate() {
66 X509Certificate[] certs = keyManager.getCertificateChain(credentialAlias);
67 if (certs != null && certs.length > 0) {
68 return certs[0];
69 }
70
71 return null;
72 }
73
74
75 public Collection<X509Certificate> getEntityCertificateChain() {
76 X509Certificate[] certs = keyManager.getCertificateChain(credentialAlias);
77 if (certs != null && certs.length > 0) {
78 return Arrays.asList(certs);
79 }
80
81 return null;
82 }
83
84
85 public PrivateKey getPrivateKey() {
86 return keyManager.getPrivateKey(credentialAlias);
87 }
88
89
90 public PublicKey getPublicKey() {
91 return getEntityCertificate().getPublicKey();
92 }
93 }