YARN-2117. Fixed the issue that secret file reader is potentially not closed in TimelineAuthenticationFilterInitializer. Contributed by Chen He.
svn merge --ignore-ancestry -c 1600994 ../../trunk/ git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1600995 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3ed429bb62
commit
683d4bdbd9
|
@ -183,6 +183,9 @@ Release 2.5.0 - UNRELEASED
|
||||||
YARN-2118. Fixed the type mismatch in Map#containsKey check of
|
YARN-2118. Fixed the type mismatch in Map#containsKey check of
|
||||||
TimelineWebServices#injectOwnerInfo. (Ted Yu via zjshen)
|
TimelineWebServices#injectOwnerInfo. (Ted Yu via zjshen)
|
||||||
|
|
||||||
|
YARN-2117. Fixed the issue that secret file reader is potentially not
|
||||||
|
closed in TimelineAuthenticationFilterInitializer. (Chen He via zjshen)
|
||||||
|
|
||||||
Release 2.4.1 - UNRELEASED
|
Release 2.4.1 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.http.FilterContainer;
|
import org.apache.hadoop.http.FilterContainer;
|
||||||
import org.apache.hadoop.http.FilterInitializer;
|
import org.apache.hadoop.http.FilterInitializer;
|
||||||
import org.apache.hadoop.http.HttpServer2;
|
import org.apache.hadoop.http.HttpServer2;
|
||||||
|
import org.apache.hadoop.io.IOUtils;
|
||||||
import org.apache.hadoop.security.SecurityUtil;
|
import org.apache.hadoop.security.SecurityUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -86,15 +87,15 @@ public class TimelineAuthenticationFilterInitializer extends FilterInitializer {
|
||||||
|
|
||||||
String signatureSecretFile = filterConfig.get(SIGNATURE_SECRET_FILE);
|
String signatureSecretFile = filterConfig.get(SIGNATURE_SECRET_FILE);
|
||||||
if (signatureSecretFile != null) {
|
if (signatureSecretFile != null) {
|
||||||
|
Reader reader = null;
|
||||||
try {
|
try {
|
||||||
StringBuilder secret = new StringBuilder();
|
StringBuilder secret = new StringBuilder();
|
||||||
Reader reader = new FileReader(signatureSecretFile);
|
reader = new FileReader(signatureSecretFile);
|
||||||
int c = reader.read();
|
int c = reader.read();
|
||||||
while (c > -1) {
|
while (c > -1) {
|
||||||
secret.append((char) c);
|
secret.append((char) c);
|
||||||
c = reader.read();
|
c = reader.read();
|
||||||
}
|
}
|
||||||
reader.close();
|
|
||||||
filterConfig
|
filterConfig
|
||||||
.put(TimelineAuthenticationFilter.SIGNATURE_SECRET,
|
.put(TimelineAuthenticationFilter.SIGNATURE_SECRET,
|
||||||
secret.toString());
|
secret.toString());
|
||||||
|
@ -102,6 +103,8 @@ public class TimelineAuthenticationFilterInitializer extends FilterInitializer {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Could not read HTTP signature secret file: "
|
"Could not read HTTP signature secret file: "
|
||||||
+ signatureSecretFile);
|
+ signatureSecretFile);
|
||||||
|
} finally {
|
||||||
|
IOUtils.closeStream(reader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue