From 49f5d20efe7af7cd7c45d93edad33997a695a746 Mon Sep 17 00:00:00 2001 From: Yongjun Zhang Date: Fri, 19 Jun 2015 14:06:17 -0700 Subject: [PATCH] HADOOP-12103. Small refactoring of DelegationTokenAuthenticationFilter to allow code sharing. Contributed by Yongjun Zhang. --- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../web/DelegationTokenAuthenticationFilter.java | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 2f5eda398d4..e1d9ca9ccb2 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -878,6 +878,9 @@ Release 2.7.1 - UNRELEASED IMPROVEMENTS + HADOOP-12103. Small refactoring of DelegationTokenAuthenticationFilter to + allow code sharing. (Yongjun Zhang) + OPTIMIZATIONS BUG FIXES diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/web/DelegationTokenAuthenticationFilter.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/web/DelegationTokenAuthenticationFilter.java index b6e1a766383..af66ee56776 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/web/DelegationTokenAuthenticationFilter.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/web/DelegationTokenAuthenticationFilter.java @@ -115,7 +115,22 @@ public class DelegationTokenAuthenticationFilter protected Properties getConfiguration(String configPrefix, FilterConfig filterConfig) throws ServletException { Properties props = super.getConfiguration(configPrefix, filterConfig); + setAuthHandlerClass(props); + return props; + } + + /** + * Set AUTH_TYPE property to the name of the corresponding authentication + * handler class based on the input properties. + * @param props input properties. + */ + protected void setAuthHandlerClass(Properties props) + throws ServletException { String authType = props.getProperty(AUTH_TYPE); + if (authType == null) { + throw new ServletException("Config property " + + AUTH_TYPE + " doesn't exist"); + } if (authType.equals(PseudoAuthenticationHandler.TYPE)) { props.setProperty(AUTH_TYPE, PseudoDelegationTokenAuthenticationHandler.class.getName()); @@ -123,7 +138,6 @@ public class DelegationTokenAuthenticationFilter props.setProperty(AUTH_TYPE, KerberosDelegationTokenAuthenticationHandler.class.getName()); } - return props; } /**