You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by at...@apache.org on 2012/08/07 18:40:06 UTC
svn commit: r1370354 - in
/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop:
fs/FileSystem.java fs/FsServerDefaults.java fs/ftp/FtpConfigKeys.java
fs/local/LocalConfigKeys.java security/SaslInputStream.java
Author: atm
Date: Tue Aug 7 16:40:03 2012
New Revision: 1370354
URL: http://svn.apache.org/viewvc?rev=1370354&view=rev
Log:
HDFS-3637. Add support for encrypting the DataTransferProtocol. Contributed by Aaron T. Myers.
Modified:
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsServerDefaults.java
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FtpConfigKeys.java
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/local/LocalConfigKeys.java
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslInputStream.java
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java?rev=1370354&r1=1370353&r2=1370354&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java Tue Aug 7 16:40:03 2012
@@ -620,7 +620,8 @@ public abstract class FileSystem extends
conf.getInt("io.bytes.per.checksum", 512),
64 * 1024,
getDefaultReplication(),
- conf.getInt("io.file.buffer.size", 4096));
+ conf.getInt("io.file.buffer.size", 4096),
+ false);
}
/**
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsServerDefaults.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsServerDefaults.java?rev=1370354&r1=1370353&r2=1370354&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsServerDefaults.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsServerDefaults.java Tue Aug 7 16:40:03 2012
@@ -48,17 +48,20 @@ public class FsServerDefaults implements
private int writePacketSize;
private short replication;
private int fileBufferSize;
+ private boolean encryptDataTransfer;
public FsServerDefaults() {
}
public FsServerDefaults(long blockSize, int bytesPerChecksum,
- int writePacketSize, short replication, int fileBufferSize) {
+ int writePacketSize, short replication, int fileBufferSize,
+ boolean encryptDataTransfer) {
this.blockSize = blockSize;
this.bytesPerChecksum = bytesPerChecksum;
this.writePacketSize = writePacketSize;
this.replication = replication;
this.fileBufferSize = fileBufferSize;
+ this.encryptDataTransfer = encryptDataTransfer;
}
public long getBlockSize() {
@@ -80,6 +83,10 @@ public class FsServerDefaults implements
public int getFileBufferSize() {
return fileBufferSize;
}
+
+ public boolean getEncryptDataTransfer() {
+ return encryptDataTransfer;
+ }
// /////////////////////////////////////////
// Writable
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FtpConfigKeys.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FtpConfigKeys.java?rev=1370354&r1=1370353&r2=1370354&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FtpConfigKeys.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FtpConfigKeys.java Tue Aug 7 16:40:03 2012
@@ -44,6 +44,7 @@ public class FtpConfigKeys extends Commo
public static final String CLIENT_WRITE_PACKET_SIZE_KEY =
"ftp.client-write-packet-size";
public static final int CLIENT_WRITE_PACKET_SIZE_DEFAULT = 64*1024;
+ public static final boolean ENCRYPT_DATA_TRANSFER_DEFAULT = false;
protected static FsServerDefaults getServerDefaults() throws IOException {
return new FsServerDefaults(
@@ -51,7 +52,8 @@ public class FtpConfigKeys extends Commo
BYTES_PER_CHECKSUM_DEFAULT,
CLIENT_WRITE_PACKET_SIZE_DEFAULT,
REPLICATION_DEFAULT,
- STREAM_BUFFER_SIZE_DEFAULT);
+ STREAM_BUFFER_SIZE_DEFAULT,
+ ENCRYPT_DATA_TRANSFER_DEFAULT);
}
}
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/local/LocalConfigKeys.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/local/LocalConfigKeys.java?rev=1370354&r1=1370353&r2=1370354&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/local/LocalConfigKeys.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/local/LocalConfigKeys.java Tue Aug 7 16:40:03 2012
@@ -43,6 +43,7 @@ public class LocalConfigKeys extends Com
public static final String CLIENT_WRITE_PACKET_SIZE_KEY =
"file.client-write-packet-size";
public static final int CLIENT_WRITE_PACKET_SIZE_DEFAULT = 64*1024;
+ public static final boolean ENCRYPT_DATA_TRANSFER_DEFAULT = false;
public static FsServerDefaults getServerDefaults() throws IOException {
return new FsServerDefaults(
@@ -50,7 +51,8 @@ public class LocalConfigKeys extends Com
BYTES_PER_CHECKSUM_DEFAULT,
CLIENT_WRITE_PACKET_SIZE_DEFAULT,
REPLICATION_DEFAULT,
- STREAM_BUFFER_SIZE_DEFAULT);
+ STREAM_BUFFER_SIZE_DEFAULT,
+ ENCRYPT_DATA_TRANSFER_DEFAULT);
}
}
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslInputStream.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslInputStream.java?rev=1370354&r1=1370353&r2=1370354&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslInputStream.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslInputStream.java Tue Aug 7 16:40:03 2012
@@ -22,6 +22,8 @@ import java.io.DataInputStream;
import java.io.EOFException;
import java.io.InputStream;
import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.ReadableByteChannel;
import javax.security.sasl.Sasl;
import javax.security.sasl.SaslClient;
@@ -42,7 +44,7 @@ import org.apache.hadoop.classification.
*/
@InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"})
@InterfaceStability.Evolving
-public class SaslInputStream extends InputStream {
+public class SaslInputStream extends InputStream implements ReadableByteChannel {
public static final Log LOG = LogFactory.getLog(SaslInputStream.class);
private final DataInputStream inStream;
@@ -65,6 +67,8 @@ public class SaslInputStream extends Inp
private int ostart = 0;
// position of the last "new" byte
private int ofinish = 0;
+ // whether or not this stream is open
+ private boolean isOpen = true;
private static int unsignedBytesToInt(byte[] buf) {
if (buf.length != 4) {
@@ -330,6 +334,7 @@ public class SaslInputStream extends Inp
ostart = 0;
ofinish = 0;
inStream.close();
+ isOpen = false;
}
/**
@@ -342,4 +347,28 @@ public class SaslInputStream extends Inp
public boolean markSupported() {
return false;
}
+
+ @Override
+ public boolean isOpen() {
+ return isOpen;
+ }
+
+ @Override
+ public int read(ByteBuffer dst) throws IOException {
+ int bytesRead = 0;
+ if (dst.hasArray()) {
+ bytesRead = read(dst.array(), dst.arrayOffset() + dst.position(),
+ dst.remaining());
+ if (bytesRead > -1) {
+ dst.position(dst.position() + bytesRead);
+ }
+ } else {
+ byte[] buf = new byte[dst.remaining()];
+ bytesRead = read(buf);
+ if (bytesRead > -1) {
+ dst.put(buf, 0, bytesRead);
+ }
+ }
+ return bytesRead;
+ }
}
\ No newline at end of file