01: /*
02: * BEGIN_HEADER - DO NOT EDIT
03: *
04: * The contents of this file are subject to the terms
05: * of the Common Development and Distribution License
06: * (the "License"). You may not use this file except
07: * in compliance with the License.
08: *
09: * You can obtain a copy of the license at
10: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
11: * See the License for the specific language governing
12: * permissions and limitations under the License.
13: *
14: * When distributing Covered Code, include this CDDL
15: * HEADER in each file and include the License file at
16: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
17: * If applicable add the following below this CDDL HEADER,
18: * with the fields enclosed by brackets "[]" replaced with
19: * your own identifying information: Portions Copyright
20: * [year] [name of copyright owner]
21: */
22:
23: /*
24: * @(#)TrustStoreCallbackHandler.java
25: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
26: *
27: * END_HEADER - DO NOT EDIT
28: */
29: /**
30: * SecretKeyCallbackHandler.java
31: *
32: * SUN PROPRIETARY/CONFIDENTIAL.
33: * This software is the proprietary information of Sun Microsystems, Inc.
34: * Use is subject to license terms.
35: *
36: * Created on February 23, 2005, 1:53 PM
37: */package com.sun.jbi.internal.security.callback;
38:
39: import com.sun.enterprise.security.jauth.callback.TrustStoreCallback;
40: import com.sun.jbi.internal.security.KeyStoreManager;
41:
42: import java.io.IOException;
43: import javax.security.auth.callback.Callback;
44: import javax.security.auth.callback.CallbackHandler;
45: import javax.security.auth.callback.UnsupportedCallbackException;
46:
47: /**
48: * This CallbackHandler handles the SecretKey Callback.
49: *
50: * @author Sun Microsystems, Inc.
51: */
52: public class TrustStoreCallbackHandler implements CallbackHandler {
53: /** The reference to the KeyStoreManager. */
54: private KeyStoreManager mKeyMgr;
55:
56: /** The X509 Certificate Type. */
57: private static final String X509 = "X509";
58:
59: /**
60: * Creates a new instance of SecretKeyCallbackHandler.
61: *
62: * @param mgr - KeyStoreManager instance which provides the handle
63: * to the KeyStores.
64: */
65: public TrustStoreCallbackHandler(KeyStoreManager mgr) {
66: mKeyMgr = mgr;
67: }
68:
69: /**
70: * The implementation on the CallbackInterface. This method only handles
71: * SecretKeyCallback.
72: *
73: * @param callbacks - array of Callbacks to be handled.
74: * @throws IOException - if an input or output error occurs.
75: * @throws UnsupportedCallbackException - if the implementation of this method
76: * does not support one or more of the Callbacks specified in the callbacks
77: * parameter.
78: */
79: public void handle(Callback[] callbacks) throws IOException,
80: UnsupportedCallbackException {
81: for (int i = 0; i < callbacks.length; i++) {
82: CallbackHandler handler = null;
83:
84: if (callbacks[i] instanceof TrustStoreCallback) {
85: TrustStoreCallback cb = (TrustStoreCallback) callbacks[i];
86: cb.setStore(mKeyMgr.getTrustStore());
87: } else {
88: throw new UnsupportedCallbackException(callbacks[i]);
89: }
90: }
91: }
92: }
|