00001
00026 package org.objectweb.jonas.security.iiop;
00027
00028 import org.omg.IOP.Codec;
00029 import org.omg.IOP.ENCODING_CDR_ENCAPS;
00030 import org.omg.IOP.Encoding;
00031 import org.omg.IOP.CodecFactoryPackage.UnknownEncoding;
00032 import org.omg.PortableInterceptor.ORBInitInfo;
00033 import org.omg.PortableInterceptor.ORBInitializer;
00034
00035 import org.objectweb.carol.util.csiv2.SasPolicy;
00036 import org.objectweb.carol.util.csiv2.SasPolicyFactory;
00037
00038 import org.objectweb.jonas.common.Log;
00039
00040 import org.objectweb.util.monolog.api.BasicLevel;
00041 import org.objectweb.util.monolog.api.Logger;
00042
00047 public class Csiv2Initializer extends org.omg.CORBA.LocalObject implements ORBInitializer {
00048
00052 private static Logger logger = Log.getLogger(Log.JONAS_CSIV2_SECURITY_PREFIX);
00053
00057 private static Logger loggerDetails = Log.getLogger(Log.JONAS_CSIV2_DETAILS_SECURITY_PREFIX);
00058
00066 public void post_init(ORBInitInfo info) {
00067
00068 if (logger.isLoggable(BasicLevel.DEBUG)) {
00069 logger.log(BasicLevel.DEBUG, "Initializing SAS Interceptors");
00070 }
00071
00072
00073 Encoding encoding = new Encoding(ENCODING_CDR_ENCAPS.value, (byte) 1, (byte) 2);
00074 Codec codec = null;
00075 try {
00076 codec = info.codec_factory().create_codec(encoding);
00077 } catch (UnknownEncoding ue) {
00078 String err = "Cannot use a given encoding : '" + ue.getMessage() + "'.";
00079 logger.log(BasicLevel.ERROR, err);
00080 throw new RuntimeException(err);
00081 }
00082
00083 try {
00084 info.add_server_request_interceptor(new Csiv2ServerInterceptor(codec, logger, loggerDetails));
00085 } catch (Exception e) {
00086 logger.log(BasicLevel.ERROR, "Unable to register CSIv2 server interceptor : '" + e.getMessage() + "'.");
00087 }
00088 try {
00089 info.add_client_request_interceptor(new Csiv2ClientInterceptor(codec, logger, loggerDetails));
00090 } catch (Exception e) {
00091 logger.log(BasicLevel.ERROR, "Unable to register CSIv2 client interceptor : '" + e.getMessage() + "'.");
00092 }
00093
00094 try {
00095 info.add_ior_interceptor(new Csiv2IorInterceptor(codec, logger, loggerDetails));
00096 } catch (Exception e) {
00097 logger.log(BasicLevel.ERROR, "Unable to register CSIv2 IOR interceptor : '" + e.getMessage() + "'.");
00098 }
00099
00100
00101 if (logger.isLoggable(BasicLevel.DEBUG)) {
00102 logger.log(BasicLevel.DEBUG, "Initializing SAS policy factory");
00103 }
00104 info.register_policy_factory(SasPolicy.POLICY_TYPE, new SasPolicyFactory());
00105
00106 }
00107
00116 public void pre_init(ORBInitInfo info) {
00117
00118
00119 }
00120 }