Package org.jboss.remoting.transport.coyote.ssl

Source Code of org.jboss.remoting.transport.coyote.ssl.RemotingServerSocketFactory

/*     */ package org.jboss.remoting.transport.coyote.ssl;
/*     */
/*     */ import java.io.IOException;
/*     */ import java.net.InetAddress;
/*     */ import java.net.ServerSocket;
/*     */ import java.net.Socket;
/*     */ import java.util.HashMap;
/*     */ import java.util.Hashtable;
/*     */ import java.util.Map;
/*     */ import javax.management.MBeanServer;
/*     */ import javax.management.MBeanServerInvocationHandler;
/*     */ import javax.management.ObjectName;
/*     */ import javax.net.ssl.SSLSocket;
/*     */ import org.jboss.logging.Logger;
/*     */ import org.jboss.remoting.security.ServerSocketFactoryMBean;
/*     */ import org.jboss.remoting.security.ServerSocketFactoryWrapper;
/*     */
/*     */ public class RemotingServerSocketFactory extends org.apache.tomcat.util.net.ServerSocketFactory
/*     */ {
/*  46 */   private Map mbeanServerMap = null;
/*  47 */   private javax.net.ServerSocketFactory serverSocketFactory = null;
/*     */
/*  49 */   private static Map serverSocketFactories = new HashMap();
/*     */
/*  51 */   protected final Logger log = Logger.getLogger(getClass());
/*     */
/*  53 */   private boolean performHandshake = false;
/*     */
/*     */   public RemotingServerSocketFactory()
/*     */   {
/*     */   }
/*     */
/*     */   public RemotingServerSocketFactory(Map mbeanServerMap)
/*     */   {
/*  67 */     this.mbeanServerMap = mbeanServerMap;
/*     */   }
/*     */
/*     */   private void init()
/*     */     throws InstantiationException
/*     */   {
/*  73 */     String locator = (String)this.attributes.get("locator");
/*     */
/*  76 */     this.serverSocketFactory = ((javax.net.ServerSocketFactory)serverSocketFactories.get(locator));
/*  77 */     if (this.serverSocketFactory == null)
/*     */     {
/*  81 */       MBeanServer mbeanserver = (MBeanServer)this.mbeanServerMap.get(locator);
/*  82 */       String serverSocketObjName = (String)this.attributes.get("serverSocketFactory");
/*     */
/*  84 */       if ((locator == null) || (mbeanserver == null) || (serverSocketObjName == null))
/*     */       {
/*  86 */         throw new InstantiationException("Can not create ServerSocketFactory with SSL support due to one of the following being null.\nlocator = " + locator + "\nmbeanserver = " + mbeanserver + "\nserverSocketObjName = " + serverSocketObjName);
/*     */       }
/*     */
/*     */       try
/*     */       {
/*  94 */         ServerSocketFactoryMBean serverSocketFactoryMBean = (ServerSocketFactoryMBean)MBeanServerInvocationHandler.newProxyInstance(mbeanserver, new ObjectName(serverSocketObjName), ServerSocketFactoryMBean.class, false);
/*     */
/*  99 */         this.serverSocketFactory = new ServerSocketFactoryWrapper(serverSocketFactoryMBean);
/* 100 */         this.performHandshake = true;
/*     */       }
/*     */       catch (Exception e)
/*     */       {
/* 104 */         InstantiationException iex = new InstantiationException("Error creating ServerSocketFactory proxy via MBeanServer");
/* 105 */         iex.setStackTrace(e.getStackTrace());
/* 106 */         throw iex;
/*     */       }
/*     */     }
/*     */   }
/*     */
/*     */   public ServerSocket createSocket(int port)
/*     */     throws IOException, InstantiationException
/*     */   {
/* 125 */     if (this.serverSocketFactory == null)
/*     */     {
/* 127 */       init();
/*     */     }
/* 129 */     return this.serverSocketFactory.createServerSocket(port);
/*     */   }
/*     */
/*     */   public ServerSocket createSocket(int port, int backlog)
/*     */     throws IOException, InstantiationException
/*     */   {
/* 146 */     if (this.serverSocketFactory == null)
/*     */     {
/* 148 */       init();
/*     */     }
/* 150 */     return this.serverSocketFactory.createServerSocket(port, backlog);
/*     */   }
/*     */
/*     */   public ServerSocket createSocket(int port, int backlog, InetAddress ifAddress)
/*     */     throws IOException, InstantiationException
/*     */   {
/* 168 */     if (this.serverSocketFactory == null)
/*     */     {
/* 170 */       init();
/*     */     }
/*     */
/* 173 */     ServerSocket svrSocket = this.serverSocketFactory.createServerSocket(port, backlog, ifAddress);
/* 174 */     return svrSocket;
/*     */   }
/*     */
/*     */   public Socket acceptSocket(ServerSocket socket)
/*     */     throws IOException
/*     */   {
/* 185 */     return socket.accept();
/*     */   }
/*     */
/*     */   public void handshake(Socket sock)
/*     */     throws IOException
/*     */   {
/* 196 */     if (this.performHandshake)
/*     */     {
/* 198 */       ((SSLSocket)sock).startHandshake();
/*     */     }
/*     */   }
/*     */
/*     */   public static void setServerSocketFactory(String locatorURI, javax.net.ServerSocketFactory svrSocketFactory)
/*     */   {
/* 204 */     serverSocketFactories.put(locatorURI, svrSocketFactory);
/*     */   }
/*     */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.remoting.transport.coyote.ssl.RemotingServerSocketFactory
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.remoting.transport.coyote.ssl.RemotingServerSocketFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.