01: /*
02: * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
03: * PROPRIETARY/CONFIDENTIAL. Use of this product is subject to license terms.
04: */
05: package com.sun.portal.monitoring.security.ssl;
06:
07: import javax.net.ssl.KeyManager;
08: import javax.net.ssl.KeyManagerFactory;
09: import javax.net.ssl.TrustManager;
10: import javax.net.ssl.TrustManagerFactory;
11: import java.security.KeyStoreException;
12: import java.security.NoSuchAlgorithmException;
13: import java.security.NoSuchProviderException;
14: import java.security.UnrecoverableKeyException;
15:
16: public class ManagersFactory {
17: public SslContext getSslContext() {
18: return sslContext;
19: }
20:
21: public void setSslContext(SslContext sslContext) {
22: this .sslContext = sslContext;
23: }
24:
25: public KeyManager[] getKeyManagers() throws SslException {
26: KeyManager[] result;
27:
28: DemoKeyManager keyManager = new DemoKeyManager();
29: keyManager.setSslContext(sslContext);
30: keyManager.gearUp();
31:
32: if (sslContext.getKeyManagerProviderName().equals(
33: SslContext.KEY_MANAGER_PROVIDER_NAME)) {
34: result = new KeyManager[] { keyManager };
35: } else {
36: try {
37: KeyManagerFactory keyManagerFactory = KeyManagerFactory
38: .getInstance(sslContext
39: .getKeyManagerAlgorithm(), sslContext
40: .getKeyManagerProviderName());
41: keyManagerFactory.init(keyManager.getKeyStore(),
42: sslContext.getSecurityContext()
43: .getKeyStoreContext()
44: .getKeyStorePassword());
45: result = keyManagerFactory.getKeyManagers();
46: } catch (NoSuchAlgorithmException nsae) {
47: throw new SslException(nsae);
48: } catch (NoSuchProviderException nspe) {
49: throw new SslException(nspe);
50: } catch (UnrecoverableKeyException uke) {
51: throw new SslException(uke);
52: } catch (KeyStoreException kse) {
53: throw new SslException(kse);
54: }
55: }
56:
57: return result;
58: }
59:
60: public TrustManager[] getTrustManagers() throws SslException {
61: TrustManager[] result;
62:
63: DemoTrustManager trustManager = new DemoTrustManager();
64: trustManager.setSslContext(sslContext);
65: trustManager.gearUp();
66:
67: if (sslContext.getTrustManagerProviderName().equals(
68: SslContext.TRUST_MANAGER_PROVIDER_NAME)) {
69: result = new TrustManager[] { trustManager };
70: } else {
71: try {
72: TrustManagerFactory trustManagerFactory = TrustManagerFactory
73: .getInstance(sslContext
74: .getTrustManagerAlgorithm(), sslContext
75: .getTrustManagerProviderName());
76: trustManagerFactory.init(trustManager.getTrustStore());
77: result = trustManagerFactory.getTrustManagers();
78: } catch (NoSuchAlgorithmException nsae) {
79: throw new SslException(nsae);
80: } catch (NoSuchProviderException nspe) {
81: throw new SslException(nspe);
82: } catch (KeyStoreException kse) {
83: throw new SslException(kse);
84: }
85: }
86:
87: return result;
88: }
89:
90: private SslContext sslContext;
91: }
|