YARN-9385. Fixed ApiServiceClient to use current UGI.
Contributed by Eric Yang
This commit is contained in:
parent
5446e3cb8a
commit
19b22c4385
@ -151,7 +151,7 @@ List<String> getRMHAWebAddresses(Configuration conf) {
|
|||||||
* @return URI to API Service
|
* @return URI to API Service
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
private String getServicePath(String appName) throws IOException {
|
protected String getServicePath(String appName) throws IOException {
|
||||||
String url = getRMWebAddress();
|
String url = getRMWebAddress();
|
||||||
StringBuilder api = new StringBuilder();
|
StringBuilder api = new StringBuilder();
|
||||||
api.append(url)
|
api.append(url)
|
||||||
@ -203,12 +203,15 @@ private String getComponentsPath(String appName) throws IOException {
|
|||||||
return api.toString();
|
return api.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void appendUserNameIfRequired(StringBuilder builder) {
|
private void appendUserNameIfRequired(StringBuilder builder)
|
||||||
|
throws IOException {
|
||||||
Configuration conf = getConfig();
|
Configuration conf = getConfig();
|
||||||
if (conf.get("hadoop.http.authentication.type").equalsIgnoreCase(
|
if (conf.get("hadoop.http.authentication.type")
|
||||||
"simple")) {
|
.equalsIgnoreCase("simple")) {
|
||||||
|
String username = UserGroupInformation.getCurrentUser()
|
||||||
|
.getShortUserName();
|
||||||
builder.append("?user.name=").append(UrlEncoded
|
builder.append("?user.name=").append(UrlEncoded
|
||||||
.encodeString(System.getProperty("user.name")));
|
.encodeString(username));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.yarn.exceptions.YarnException;
|
import org.apache.hadoop.yarn.exceptions.YarnException;
|
||||||
import org.eclipse.jetty.server.Server;
|
import org.eclipse.jetty.server.Server;
|
||||||
@ -310,5 +311,13 @@ public void testComponentsUpgrade() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNoneSecureApiClient() throws IOException {
|
||||||
|
String url = asc.getServicePath("/foobar");
|
||||||
|
assertTrue("User.name flag is missing in service path.",
|
||||||
|
url.contains("user.name"));
|
||||||
|
assertTrue("User.name flag is not matching JVM user.",
|
||||||
|
url.contains(System.getProperty("user.name")));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user