001: /**
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 2004 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: Csiv2Initializer.java 5928 2004-12-13 16:27:33Z benoitf $
023: * --------------------------------------------------------------------------
024: */package org.objectweb.jonas.security.iiop;
025:
026: import org.omg.IOP.Codec;
027: import org.omg.IOP.ENCODING_CDR_ENCAPS;
028: import org.omg.IOP.Encoding;
029: import org.omg.IOP.CodecFactoryPackage.UnknownEncoding;
030: import org.omg.PortableInterceptor.ORBInitInfo;
031: import org.omg.PortableInterceptor.ORBInitializer;
032:
033: import org.objectweb.carol.util.csiv2.SasPolicy;
034: import org.objectweb.carol.util.csiv2.SasPolicyFactory;
035:
036: import org.objectweb.jonas.common.Log;
037:
038: import org.objectweb.util.monolog.api.BasicLevel;
039: import org.objectweb.util.monolog.api.Logger;
040:
041: /**
042: * Initializer of SAS interceptor
043: * @author Florent Benoit
044: */
045: public class Csiv2Initializer extends org.omg.CORBA.LocalObject
046: implements ORBInitializer {
047:
048: /**
049: * Logger
050: */
051: private static Logger logger = Log
052: .getLogger(Log.JONAS_CSIV2_SECURITY_PREFIX);
053:
054: /**
055: * Logger details (On catching exception)
056: */
057: private static Logger loggerDetails = Log
058: .getLogger(Log.JONAS_CSIV2_DETAILS_SECURITY_PREFIX);
059:
060: /**
061: * Called during ORB initialization. If a service must resolve initial
062: * references as part of its initialization, it can assume that all initial
063: * references will be available at this point.
064: * @param info provides initialization attributes and operations by which
065: * Interceptors can be registered.
066: */
067: public void post_init(ORBInitInfo info) {
068: // Interceptors (server, client, IOR)
069: if (logger.isLoggable(BasicLevel.DEBUG)) {
070: logger.log(BasicLevel.DEBUG,
071: "Initializing SAS Interceptors");
072: }
073:
074: // Codec for GIOP 1.2
075: Encoding encoding = new Encoding(ENCODING_CDR_ENCAPS.value,
076: (byte) 1, (byte) 2);
077: Codec codec = null;
078: try {
079: codec = info.codec_factory().create_codec(encoding);
080: } catch (UnknownEncoding ue) {
081: String err = "Cannot use a given encoding : '"
082: + ue.getMessage() + "'.";
083: logger.log(BasicLevel.ERROR, err);
084: throw new RuntimeException(err);
085: }
086:
087: try {
088: info
089: .add_server_request_interceptor(new Csiv2ServerInterceptor(
090: codec, logger, loggerDetails));
091: } catch (Exception e) {
092: logger.log(BasicLevel.ERROR,
093: "Unable to register CSIv2 server interceptor : '"
094: + e.getMessage() + "'.");
095: }
096: try {
097: info
098: .add_client_request_interceptor(new Csiv2ClientInterceptor(
099: codec, logger, loggerDetails));
100: } catch (Exception e) {
101: logger.log(BasicLevel.ERROR,
102: "Unable to register CSIv2 client interceptor : '"
103: + e.getMessage() + "'.");
104: }
105:
106: try {
107: info.add_ior_interceptor(new Csiv2IorInterceptor(codec,
108: logger, loggerDetails));
109: } catch (Exception e) {
110: logger.log(BasicLevel.ERROR,
111: "Unable to register CSIv2 IOR interceptor : '"
112: + e.getMessage() + "'.");
113: }
114:
115: // Factory
116: if (logger.isLoggable(BasicLevel.DEBUG)) {
117: logger.log(BasicLevel.DEBUG,
118: "Initializing SAS policy factory");
119: }
120: info.register_policy_factory(SasPolicy.POLICY_TYPE,
121: new SasPolicyFactory());
122:
123: }
124:
125: /**
126: * Called during ORB initialization. If it is expected that initial services
127: * registered by an interceptor will be used by other interceptors, then
128: * those initial services shall be registered at this point via calls to
129: * <code>ORBInitInfo.register_initial_reference</code>.
130: * @param info provides initialization attributes and operations by which
131: * Interceptors can be registered.
132: */
133: public void pre_init(ORBInitInfo info) {
134: // TODO Auto-generated method stub
135:
136: }
137: }
|