Author: rwinston
Date: Tue Aug 29 13:47:29 2006
New Revision: 438203
URL: http://svn.apache.org/viewvc?rev=438203&view=rev
Log:
* Clean up FTPSClient.java slightly
* Refactor changeRegex() to setRegex() in RegexFTPFileEntryParserImpl.java
* Document some more changes
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java?rev=438203&r1=438202&r2=438203&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java
Tue Aug 29 13:47:29 2006
@@ -19,27 +19,15 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import java.net.InetAddress;
import java.net.Socket;
-import java.net.SocketException;
import java.security.KeyManagementException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.CertificateException;
-import java.util.Enumeration;
-import java.util.Vector;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
-import javax.net.ssl.TrustManagerFactory;
/**
* FTP over SSL processing.
@@ -68,10 +56,6 @@
private String protocol = DEFAULT_PROTOCOL;
/** The AUTH Command value */
private String auth = DEFAULT_PROTOCOL;
- /** The KeyManager object. */
- private KeyManager[] keyManager = null;
- /** The TrustManager object */
- private TrustManager[] trustManager = null;
/** The context object. */
private SSLContext context;
/** The socket object. */
@@ -138,116 +122,8 @@
context = SSLContext.getInstance(protocol);
}
- /**
- * Create KeyManager[] object.
- * @param ks The KeyStore objects.
- * @param storePass The Store password.
- * @throws NoSuchAlgorithmException A requested cryptographic
- * algorithm is not available in the environment.
- * @throws NoSuchProviderException A requested cryptographic provider
- * is not available in the environment.
- * @throws UnrecoverableKeyException This exception is thrown
- * if a key in the keystore cannot be recovered.
- * @throws KeyStoreException This is the generic KeyStore exception.
- * @throws KeyManagementException It is the generic KeyManager exception.
- */
- public void createKeyManager(KeyStore ks, String storePass)
- throws NoSuchAlgorithmException, NoSuchProviderException,
- KeyStoreException,UnrecoverableKeyException,KeyManagementException{
- if (ks == null) {
- keyManager = null;
- return;
- }
- if (KEYSTORE_ALGORITHM == null)
- KEYSTORE_ALGORITHM = KeyManagerFactory.getDefaultAlgorithm();
- KeyManagerFactory kmf;
- if (PROVIDER == null) {
- kmf = KeyManagerFactory.getInstance(KEYSTORE_ALGORITHM);
- } else {
- kmf = KeyManagerFactory.getInstance(KEYSTORE_ALGORITHM, PROVIDER);
- }
- if (kmf == null) {
- keyManager = null;
- return;
- }
- kmf.init(ks, storePass.toCharArray());
- keyManager = kmf.getKeyManagers();
- context.init(keyManager, trustManager, null);
- }
-
- /**
- * Create TrustManager[] object.
- * @param ks The KeyStore object.
- * @throws NoSuchAlgorithmException A requested cryptographic algorithm
- * is not available in the environment.
- * @throws NoSuchProviderException A requested cryptographic provider
- * is not available in the environment.
- * @throws KeyStoreException This is the generic KeyStore exception.
- * @throws KeyManagementException It is the generic KeyManager exception.
- */
- public void createTrustManager(KeyStore ks)
- throws NoSuchAlgorithmException, NoSuchProviderException,
- KeyStoreException, KeyManagementException {
- if (ks == null) trustManager = null;
- if (TRUSTSTORE_ALGORITHM == null)
- TRUSTSTORE_ALGORITHM = TrustManagerFactory.getDefaultAlgorithm();
- TrustManagerFactory tmf;
- if (PROVIDER == null) {
- tmf = TrustManagerFactory.getInstance(TRUSTSTORE_ALGORITHM);
- } else {
- tmf = TrustManagerFactory.getInstance(
- TRUSTSTORE_ALGORITHM, PROVIDER);
- }
- if (tmf == null) {
- trustManager = null;
- return;
- }
- tmf.init(ks);
- trustManager = tmf.getTrustManagers();
- context.init(keyManager, trustManager, null);
- }
-
- /**
- * Create TrustManager[] object.
- * @param _ks The KeyStore objects.
- * @throws KeyStoreException This is the generic KeyStore exception.
- * @throws CertificateException This exception indicates one of
- * a variety of certificate problems.
- * @throws NoSuchAlgorithmException A requested cryptographic algorithm
- * is not available in the environment.
- * @throws NoSuchProviderException A requested cryptographic provider
- * is not available in the environment.
- * @throws KeyManagementException It is the generic KeyManager exception.
- * @throws IOException
- */
- public void createTrustManager(Vector ks) throws KeyStoreException,
- NoSuchAlgorithmException, CertificateException,
- IOException, NoSuchProviderException, KeyManagementException {
- if (ks == null) {
- trustManager = null;
- return;
- }
- KeyStore _ks;
- if (STORE_TYPE == null) {
- _ks = KeyStore.getInstance(KeyStore.getDefaultType());
- } else {
- _ks = KeyStore.getInstance(STORE_TYPE);
- }
- _ks.load(null, null);
- int n = 0;
- // as for every keystore
- for (int i = 0; i < ks.size(); i++) {
- // as for every alias
- KeyStore wks = ((KeyStore) ks.get(i));
- for (Enumeration e = wks.aliases(); e.hasMoreElements();) {
- String alias = (String) e.nextElement();
- _ks.setCertificateEntry(String.valueOf(n),
- wks.getCertificate(alias));
- n++;
- }
- }
- createTrustManager(_ks);
- }
+
+
/**
* Set AUTH command use value.
@@ -266,82 +142,7 @@
return this.auth;
}
- /**
- * I work to be connected. Opens a Socket connected to a remote host
- * at the specified port and originating from the current host at
- * a system assigned port.
- * @param address The name of the remote host.
- * @param port The port to connect to on the remote host.
- * @throws SocketException If the socket timeout could not be set.
- * @throws IOException If the socket could not be opened.
- * In most cases you will only want to catch IOException since
- * SocketException is derived from it.
- * @see org.apache.commons.net.SocketClient#connect(java.lang.String, int)
- */
- public void connect(String address, int port)
- throws SocketException, IOException {
- super.connect(address, port);
- }
-
- /**
- * I work to be connected. Opens a Socket connected to a remote host
- * at the specified port and originating from the current host at
- * a system assigned port.
- * @param address The name of the remote host.
- * @param port The port to connect to on the remote host.
- * @throws SocketException If the socket timeout could not be set.
- * @throws IOException If the socket could not be opened.
- * In most cases you will only want to catch IOException since
- * SocketException is derived from it.
- * @see org.apache.commons.net.SocketClient
- * #connect(java.net.InetAddress, int)
- */
- public void connect(InetAddress address, int port)
- throws SocketException, IOException {
- super.connect(address, port);
- }
-
- /**
- * I work to be connected. Opens a Socket connected to a remote host
- * at the specified port and originating from the specified
- * local address and port.
- * @param address The name of the remote host.
- * @param port The port to connect to on the remote host.
- * @param localAddress The local address to use.
- * @param localPort The local port to use.
- * @throws SocketException If the socket timeout could not be set.
- * @throws IOException If the socket could not be opened.
- * In most cases you will only want to catch IOException since
- * SocketException is derived from it.
- * @see org.apache.commons.net.SocketClient
- * #connect(java.net.InetAddress, int, java.net.InetAddress, int)
- */
- public void connect(InetAddress address, int port,
- InetAddress localAddress, int localPort)
- throws SocketException, IOException {
- super.connect(address, port, localAddress, localPort);
- }
-
- /**
- * I work to be connected. Opens a Socket connected to a remote host
- * at the specified port and originating from the specified
- * local address and port.
- * @param address The name of the remote host.
- * @param port The port to connect to on the remote host.
- * @param localAddress The local address to use.
- * @param localPort The local port to use.
- * @throws SocketException If the socket timeout could not be set.
- * @throws IOException If the socket could not be opened.
- * In most cases you will only want to catch IOException since
- * SocketException is derived from it.
- * @see org.apache.commons.net.SocketClient
- * #connect(java.lang.String, int, java.net.InetAddress, int)
- */
- public void connect(String address, int port, InetAddress localAddress,
- int localPort) throws SocketException, IOException {
- super.connect(address, port, localAddress, localPort);
- }
-
+
/**
* Because there are so many connect() methods,
* the _connectAction_() method is provided as a means of performing
@@ -362,7 +163,7 @@
}
/**
- * I carry out an AUTH command.
+ * AUTH command.
* @throws SSLException If it server reply code not equal "234" and "334".
* @throws IOException If an I/O error occurs while either sending
* the command.
@@ -379,8 +180,8 @@
}
/**
- * SSL/TLS negotiation. I acquire an SSL socket of a control
- * connection and carry out handshake processing.
+ * SSL/TLS negotiation. Acquires an SSL socket of a control
+ * connection and carries out handshake processing.
* @throws IOException A handicap breaks out by sever negotiation.
*/
private void sslNegotiation() throws IOException {
@@ -390,7 +191,6 @@
try {
context.init(null, new TrustManager[] { new
FTPSTrustManager() } , null);
} catch (KeyManagementException e) {
- // TODO Auto-generated catch block
e.printStackTrace();
}
@@ -419,7 +219,7 @@
}
/**
- * Controls whether new SSL session may be established by this socket.
+ * Controls whether new a SSL session may be established by this socket.
* @param isCreation The established socket flag.
*/
public void setEnabledSessionCreation(boolean isCreation) {
@@ -546,7 +346,7 @@
}
/**
- * I carry out an PBSZ command. pbsz value: 0 to (2^32)-1 decimal integer.
+ * PBSZ command. pbsz value: 0 to (2^32)-1 decimal integer.
* @param pbsz Protection Buffer Size.
* @throws SSLException If it server reply code not equal "200".
* @throws IOException If an I/O error occurs while either sending
@@ -561,7 +361,7 @@
}
/**
- * I carry out an PROT command.</br>
+ * PROT command.</br>
* C - Clear</br>
* S - Safe(SSL protocol only)</br>
* E - Confidential(SSL protocol only)</br>
@@ -620,9 +420,8 @@
}
/**
- * I return a socket of the data connection that I acquired.
- * When I ssl it and communicate, I return the SSL socket which
- * carried out handshake processing.
+ * Returns a socket of the data connection.
+ * Wrapped as an [EMAIL PROTECTED] SSLSocket}, which carries out handshake
processing.
* @pram command The text representation of the FTP command to send.
* @param arg The arguments to the FTP command.
* If this parameter is set to null, then the command is sent with
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java?rev=438203&r1=438202&r2=438203&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java
Tue Aug 29 13:47:29 2006
@@ -67,7 +67,7 @@
public RegexFTPFileEntryParserImpl(String regex) {
super();
- changeRegex(regex);
+ setRegex(regex);
}
/**
@@ -139,7 +139,7 @@
* @param regex The new regular expression
* @return
*/
- public boolean changeRegex(String regex) {
+ public boolean setRegex(String regex) {
try {
pattern = Pattern.compile(regex);
} catch (PatternSyntaxException pse) {
Modified: jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml?rev=438203&r1=438202&r2=438203&view=diff
==============================================================================
--- jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml
(original)
+++ jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml Tue
Aug 29 13:47:29 2006
@@ -22,7 +22,7 @@
<body>
- <release version="2.0" date="" description="Java 5.0+ release">
+ <release version="2.0" date="" description="Java 5.0 release">
<action dev="rwinston" type="add">
FTPS (TLS and SSL) is now supported. Thanks to
Jose Juan Montiel, Paul Ferraro, and Satoshi Ishigami.
</action>
@@ -76,6 +76,13 @@
</action>
<action dev="rwinston" type="add">
Added WindowSizeOptionHandler (NET-136)
+ </action>
+ <action dev="rwinston" type="update">
+ Refactored *Client classes under net/ package
into separate subpackages
+ </action>
+ <action dev="rwinston" type="add">
+ Added an ant target to the Maven build to
generate an FTP-only jar file, for clients who
+ wish to use only FTP-based functionality.
</action>
</release>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]