Repository: atlas Updated Branches: refs/heads/master c35f82ca1 -> 77dd50c64
ATLAS-2352: add configuration to specify validity for authentication token Signed-off-by: Madhan Neethiraj <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/77dd50c6 Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/77dd50c6 Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/77dd50c6 Branch: refs/heads/master Commit: 77dd50c6403cfbf197ee12aaf91e8419bfd528f3 Parents: c35f82c Author: nixonrodrigues <[email protected]> Authored: Thu Jan 11 18:56:33 2018 +0530 Committer: Madhan Neethiraj <[email protected]> Committed: Thu Jan 25 20:59:43 2018 -0800 ---------------------------------------------------------------------- .../site/twiki/Authentication-Authorization.twiki | 1 + .../web/filters/AtlasAuthenticationFilter.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/77dd50c6/docs/src/site/twiki/Authentication-Authorization.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/Authentication-Authorization.twiki b/docs/src/site/twiki/Authentication-Authorization.twiki index 1e35ceb..9832a92 100644 --- a/docs/src/site/twiki/Authentication-Authorization.twiki +++ b/docs/src/site/twiki/Authentication-Authorization.twiki @@ -65,6 +65,7 @@ Also following properties should be set. atlas.authentication.method.kerberos.principal=<principal>/<fqdn>@EXAMPLE.COM atlas.authentication.method.kerberos.keytab = /<key tab filepath>.keytab atlas.authentication.method.kerberos.name.rules = RULE:[2:$1@$0]([email protected])s/.*/atlas/ +atlas.authentication.method.kerberos.token.validity = 3600 [ in Seconds (optional)] </verbatim> http://git-wip-us.apache.org/repos/asf/atlas/blob/77dd50c6/webapp/src/main/java/org/apache/atlas/web/filters/AtlasAuthenticationFilter.java ---------------------------------------------------------------------- diff --git a/webapp/src/main/java/org/apache/atlas/web/filters/AtlasAuthenticationFilter.java b/webapp/src/main/java/org/apache/atlas/web/filters/AtlasAuthenticationFilter.java index 1d553e0..ddc2ff2 100644 --- a/webapp/src/main/java/org/apache/atlas/web/filters/AtlasAuthenticationFilter.java +++ b/webapp/src/main/java/org/apache/atlas/web/filters/AtlasAuthenticationFilter.java @@ -83,6 +83,7 @@ import java.util.regex.Pattern; public class AtlasAuthenticationFilter extends AuthenticationFilter { private static final Logger LOG = LoggerFactory.getLogger(AtlasAuthenticationFilter.class); + private static final String CONFIG_KERBEROS_TOKEN_VALIDITY = "atlas.authentication.method.kerberos.token.validity"; private static final String CONFIG_PROXY_USERS = "atlas.proxyusers"; private static final String PREFIX = "atlas.authentication.method"; private static final String[] DEFAULT_PROXY_USERS = new String[] { "knox" }; @@ -131,6 +132,22 @@ public class AtlasAuthenticationFilter extends AuthenticationFilter { headerProperties = ConfigurationConverter.getProperties(configuration.subset("atlas.headers")); } + String tokenValidityStr = configuration.getString(CONFIG_KERBEROS_TOKEN_VALIDITY); + + if (StringUtils.isNotBlank(tokenValidityStr)) { + try { + Long tokenValidity = Long.parseLong(tokenValidityStr); + + if (tokenValidity > 0) { + params.put(AuthenticationFilter.AUTH_TOKEN_VALIDITY, tokenValidity.toString()); + } else { + throw new ServletException(tokenValidity + ": invalid value for property '" + CONFIG_KERBEROS_TOKEN_VALIDITY + "'. Must be a positive integer"); + } + } catch (NumberFormatException e) { + throw new ServletException(tokenValidityStr + ": invalid value for property '" + CONFIG_KERBEROS_TOKEN_VALIDITY + "'. Must be a positive integer", e); + } + } + FilterConfig filterConfig1 = new FilterConfig() { @Override public ServletContext getServletContext() {
