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: * @(#)AppSrvEnvironment.java
25: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
26: *
27: * END_HEADER - DO NOT EDIT
28: */
29: /**
30: * AppSrvEnvironment.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 24, 2005, 1:47 PM
37: */package com.sun.jbi.internal.security;
38:
39: import javax.security.auth.callback.CallbackHandler;
40:
41: /**
42: * AppSrvEnvironment provides clients with a hook into the
43: * Application Server environment.
44: *
45: * @author Sun Microsystems, Inc.
46: */
47: public final class AppSrvEnvironment {
48: /** The Callback Handler from the AS' Web/EJB Container. */
49: private static CallbackHandler sEjbServletCBHndlr = null;
50:
51: /** Creates a new instance of AppSrvEnvironment */
52: private AppSrvEnvironment() {
53: }
54:
55: /**
56: * Get the CallbackHandler used by the EJB's and Servlets.
57: *
58: * @return the CallbackHandler instance.
59: */
60: public static CallbackHandler getCallbackHandler() {
61: if (sEjbServletCBHndlr == null) {
62: initCallbackHandler();
63: }
64: return sEjbServletCBHndlr;
65: }
66:
67: /**
68: * Initialize the Callback Handler
69: */
70: private static void initCallbackHandler() {
71: try {
72: // -- This is a hack for now, we need to define a private contract and get
73: // -- a handle to the handler.
74: Class clazz = Class
75: .forName("com.sun.enterprise.webservice.EjbServletWSSCallbackHandler");
76: java.lang.reflect.Method niMtd = clazz.getDeclaredMethod(
77: "newInstance", null);
78:
79: if (niMtd != null) {
80: niMtd.setAccessible(true);
81: sEjbServletCBHndlr = (CallbackHandler) niMtd.invoke(
82: null, null);
83:
84: }
85: } catch (Exception ex) {
86: ex.printStackTrace();
87: }
88:
89: }
90: }
|