[jboss-svn-commits] JBL Code SVN: r18549 - in labs/jbossesb/workspace/chharris/product: rosetta/src/org/jboss/internal/soa/esb/util and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Feb 21 09:47:51 EST 2008


Author: kevin.conner at jboss.com
Date: 2008-02-21 09:47:51 -0500 (Thu, 21 Feb 2008)
New Revision: 18549

Modified:
   labs/jbossesb/workspace/chharris/product/etc/schemas/xml/jbossesb-1.0.1.xsd
   labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/internal/soa/esb/util/EdtFtpsImpl.java
   labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPSEpr.java
   labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerUtil.java
   labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java
   labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java
Log:
Add certificate name for FTPS

Modified: labs/jbossesb/workspace/chharris/product/etc/schemas/xml/jbossesb-1.0.1.xsd
===================================================================
--- labs/jbossesb/workspace/chharris/product/etc/schemas/xml/jbossesb-1.0.1.xsd	2008-02-21 14:22:24 UTC (rev 18548)
+++ labs/jbossesb/workspace/chharris/product/etc/schemas/xml/jbossesb-1.0.1.xsd	2008-02-21 14:47:51 UTC (rev 18549)
@@ -1061,6 +1061,15 @@
 					</xsd:documentation>
 				</xsd:annotation>
 			</xsd:attribute>
+			<xsd:attribute name="certificate-name" type="xsd:string"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The common name of a certificate, which can be needed
+						for secure protocols (sftp and ftps).
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
 			<xsd:attribute default="false" name="read-only"
 				type="xsd:boolean" use="optional">
 				<xsd:annotation>

Modified: labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/internal/soa/esb/util/EdtFtpsImpl.java
===================================================================
--- labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/internal/soa/esb/util/EdtFtpsImpl.java	2008-02-21 14:22:24 UTC (rev 18548)
+++ labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/internal/soa/esb/util/EdtFtpsImpl.java	2008-02-21 14:47:51 UTC (rev 18549)
@@ -39,6 +39,7 @@
 import com.enterprisedt.net.ftp.FTPClient;
 import com.enterprisedt.net.ftp.FTPException;
 import com.enterprisedt.net.ftp.ssl.SSLFTPClient;
+import com.enterprisedt.net.ftp.ssl.SSLFTPStandardValidator;
 
 /**
  * Simplified FTP transfers
@@ -58,6 +59,7 @@
 	private static final Logger _logger = Logger.getLogger(EdtFtpsImpl.class);
 	
 	private URL m_oCertificate ;
+	private String m_oCertificateName ;
 
 	/**
 	 * Checks validity and completeness of parameters, and keeps the info
@@ -99,6 +101,7 @@
 		{
 			_logger.warn(urise);
 		}
+		m_oCertificateName = p_oP.getCertificateName() ;
 		
 		// TODO there is still a bit of space for improvements here.
 		configTreeFromEpr();
@@ -121,6 +124,10 @@
 			{
 				m_oParms.setAttribute(PARMS_CERTIFICATE, m_oCertificate.toString());
 			}
+			if (m_oCertificateName != null)
+			{
+				m_oParms.setAttribute(PARMS_CERTIFICATE_NAME, m_oCertificateName);
+			}
 		}
 		catch (Exception e)
 		{
@@ -145,6 +152,7 @@
 				throw new ConfigurationException("Failed to create certificate URL", ex) ;
 			}
 		}
+		m_oCertificateName = m_oParms.getAttribute(PARMS_CERTIFICATE_NAME) ;
 	}
 	
 	protected FTPClient instantiateClient()
@@ -167,6 +175,10 @@
 			{
 				is.close() ;
 			}
+			if (m_oCertificateName != null)
+			{
+				ftpsClient.setCustomValidator(new SSLFTPStandardValidator(m_oCertificateName)) ;
+			}
 		}
 		return ftpsClient ;
 	}

Modified: labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPSEpr.java
===================================================================
--- labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPSEpr.java	2008-02-21 14:22:24 UTC (rev 18548)
+++ labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPSEpr.java	2008-02-21 14:47:51 UTC (rev 18549)
@@ -46,13 +46,17 @@
 public class FTPSEpr extends FTPEpr
 {
 	public static final String CERTIFICATE_TAG = "certificate";
+	public static final String CERTIFICATE_NAME_TAG = "certificateName";
 
 	public FTPSEpr(EPR epr)
 	{
 		super(epr);
 		
 		if (epr instanceof FTPSEpr)
+		{
 		    certificateSet = ((FTPSEpr) epr).certificateSet;
+		    certificateNameSet = ((FTPSEpr) epr).certificateNameSet;
+		}
 	}
 	
 	public FTPSEpr (EPR epr, Element header)
@@ -75,6 +79,10 @@
 						getAddr().addExtension(CERTIFICATE_TAG, nl.item(i).getTextContent());
 						certificateSet = true;
 					}
+					else if ((tag != null) && (tag.equals(CERTIFICATE_NAME_TAG)))
+					{
+						setCertificateName(nl.item(i).getTextContent());
+					}
 				}
 			}
 			catch (Exception ex)
@@ -89,20 +97,48 @@
 		super(url);
 	}
 
-	public FTPSEpr(URL url, URL cert) throws URISyntaxException
+	public FTPSEpr(URL url, URL cert, final String name) throws URISyntaxException
 	{
 		super(url);
 		
-		setCertificateURL(cert);
+		if (cert != null)
+		{
+			setCertificateURL(cert);
+		}
+		if (name != null)
+		{
+			setCertificateName(name);
+		}
 	}
 
-	public FTPSEpr(String url, String cert) throws URISyntaxException, MalformedURLException
+	public FTPSEpr(URL url, String cert, final String name) throws URISyntaxException, MalformedURLException
 	{
 		super(url);	
 
-		setCertificateURL(new URL(cert));
+		if (cert != null)
+		{
+			setCertificateURL(new URL(cert));
+		}
+		if (name != null)
+		{
+			setCertificateName(name);
+		}
 	}
 
+	public FTPSEpr(String url, String cert, final String name) throws URISyntaxException, MalformedURLException
+	{
+		super(url);	
+
+		if(cert != null)
+		{
+			setCertificateURL(new URL(cert));
+		}
+		if (name != null)
+		{
+			setCertificateName(name);
+		}
+	}
+
 	/**
 	 * Set the Certificate URL for this endpoint.
 	 * 
@@ -141,6 +177,36 @@
 			return null;
 	}
 
+	/**
+	 * Set the Certificate Name for this endpoint.
+	 * 
+	 * @param name
+	 *            the certificate name.
+	 */
+
+	public final void setCertificateName(final String name)
+	{
+		if (name == null)
+			throw new IllegalArgumentException();
+
+		if (certificateNameSet)
+			throw new IllegalStateException("Certificate Name already set.");
+
+		getAddr().addExtension(CERTIFICATE_NAME_TAG, name);
+		certificateNameSet = true;
+	}
+
+	/**
+	 * @return the certificate Name for this EPR.
+	 * @throws URISyntaxException
+	 *             thrown if this EPR is malformed.
+	 */
+
+	public final String getCertificateName()
+	{
+		return getAddr().getExtensionValue(CERTIFICATE_NAME_TAG);
+	}
+
 	public EPR copy ()
 	{
 	    return new FTPSEpr(this);
@@ -157,6 +223,7 @@
 	}
 
 	private boolean certificateSet = false;
+	private boolean certificateNameSet ;
 
 	private static URI _type;
 

Modified: labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerUtil.java
===================================================================
--- labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerUtil.java	2008-02-21 14:22:24 UTC (rev 18548)
+++ labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerUtil.java	2008-02-21 14:47:51 UTC (rev 18549)
@@ -24,7 +24,6 @@
 
 import java.io.File;
 import java.net.MalformedURLException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Properties;
@@ -193,11 +192,8 @@
 			}
 			else if("ftps".equals(protocol)){
 			    String cert = tree.getAttribute(FTPSEpr.CERTIFICATE_TAG);
-			    if(cert == null){
-			        epr = new FTPSEpr(url);
-			    }else {
-			        epr = new FTPSEpr(url,new URL(cert));   
-			    }
+			    String name = tree.getAttribute(FTPSEpr.CERTIFICATE_NAME_TAG);
+			    epr = new FTPSEpr(url, cert, name);
 			}
 			else if("sftp".equals(protocol)){
 				String cert = tree.getAttribute(SFTPEpr.CERTIFICATE_TAG);

Modified: labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java	2008-02-21 14:22:24 UTC (rev 18548)
+++ labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java	2008-02-21 14:47:51 UTC (rev 18549)
@@ -136,6 +136,7 @@
 		}
 		if (Protocol.FTPS.equals(messageFilter.getProtocol())) {
 		    toElement.setAttribute(FTPSEpr.CERTIFICATE_TAG, messageFilter.getCertificateUrl());
+		    toElement.setAttribute(FTPSEpr.CERTIFICATE_NAME_TAG, messageFilter.getCertificateName());
 		}
 	}
 }

Modified: labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java
===================================================================
--- labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java	2008-02-21 14:22:24 UTC (rev 18548)
+++ labs/jbossesb/workspace/chharris/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java	2008-02-21 14:47:51 UTC (rev 18549)
@@ -53,6 +53,8 @@
 	public static final String PARMS_PASSIVE = "ftpPassive";
 
 	public static final String PARMS_CERTIFICATE = "certificate";
+	
+	public static final String PARMS_CERTIFICATE_NAME = "certificateName";
 
 	public String getRemoteDir ();
 




More information about the jboss-svn-commits mailing list