Commit d5ecfee5 by Graham Wallis
parents a7119179 b0223849
...@@ -19,6 +19,7 @@ package org.apache.atlas; ...@@ -19,6 +19,7 @@ package org.apache.atlas;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientHandlerException; import com.sun.jersey.api.client.ClientHandlerException;
...@@ -249,6 +250,7 @@ public abstract class AtlasBaseClient { ...@@ -249,6 +250,7 @@ public abstract class AtlasBaseClient {
DefaultClientConfig config = new DefaultClientConfig(); DefaultClientConfig config = new DefaultClientConfig();
// Enable POJO mapping feature // Enable POJO mapping feature
config.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE); config.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
config.getClasses().add(JacksonJaxbJsonProvider.class);
int readTimeout = configuration.getInt("atlas.client.readTimeoutMSecs", 60000); int readTimeout = configuration.getInt("atlas.client.readTimeoutMSecs", 60000);
int connectTimeout = configuration.getInt("atlas.client.connectTimeoutMSecs", 60000); int connectTimeout = configuration.getInt("atlas.client.connectTimeoutMSecs", 60000);
if (configuration.getBoolean(TLS_ENABLED, false)) { if (configuration.getBoolean(TLS_ENABLED, false)) {
...@@ -264,7 +266,9 @@ public abstract class AtlasBaseClient { ...@@ -264,7 +266,9 @@ public abstract class AtlasBaseClient {
final URLConnectionClientHandler handler; final URLConnectionClientHandler handler;
if ((AuthenticationUtil.isKerberosAuthenticationEnabled())) { boolean isKerberosEnabled = AuthenticationUtil.isKerberosAuthenticationEnabled(ugi);
if (isKerberosEnabled) {
handler = SecureClientUtils.getClientConnectionHandler(config, configuration, doAsUser, ugi); handler = SecureClientUtils.getClientConnectionHandler(config, configuration, doAsUser, ugi);
} else { } else {
if (configuration.getBoolean(TLS_ENABLED, false)) { if (configuration.getBoolean(TLS_ENABLED, false)) {
......
...@@ -20,6 +20,7 @@ package org.apache.atlas.utils; ...@@ -20,6 +20,7 @@ package org.apache.atlas.utils;
import org.apache.atlas.ApplicationProperties; import org.apache.atlas.ApplicationProperties;
import org.apache.atlas.AtlasException; import org.apache.atlas.AtlasException;
import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.Configuration;
import org.apache.hadoop.security.UserGroupInformation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.Console; import java.io.Console;
...@@ -34,17 +35,27 @@ public final class AuthenticationUtil { ...@@ -34,17 +35,27 @@ public final class AuthenticationUtil {
} }
public static boolean isKerberosAuthenticationEnabled() { public static boolean isKerberosAuthenticationEnabled() {
boolean isKerberosAuthenticationEnabled = false; return isKerberosAuthenticationEnabled((UserGroupInformation) null);
}
public static boolean isKerberosAuthenticationEnabled(UserGroupInformation ugi) {
boolean defaultValue = ugi != null && ugi.hasKerberosCredentials();
try { try {
isKerberosAuthenticationEnabled = isKerberosAuthenticationEnabled(ApplicationProperties.get()); return isKerberosAuthenticationEnabled(ApplicationProperties.get(), defaultValue);
} catch (AtlasException e) { } catch (AtlasException e) {
LOG.error("Error while isKerberosAuthenticationEnabled ", e); LOG.error("Error while isKerberosAuthenticationEnabled ", e);
} }
return isKerberosAuthenticationEnabled;
return defaultValue;
} }
public static boolean isKerberosAuthenticationEnabled(Configuration atlasConf) { public static boolean isKerberosAuthenticationEnabled(Configuration atlasConf) {
return atlasConf.getBoolean("atlas.authentication.method.kerberos", false); return isKerberosAuthenticationEnabled(atlasConf, false);
}
public static boolean isKerberosAuthenticationEnabled(Configuration atlasConf, boolean defaultValue) {
return atlasConf.getBoolean("atlas.authentication.method.kerberos", defaultValue);
} }
public static boolean includeHadoopGroups(){ public static boolean includeHadoopGroups(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment