This is an automated email from the ASF dual-hosted git repository.

nixonrodrigues pushed a commit to branch ATLAS-5409
in repository https://gitbox.apache.org/repos/asf/atlas.git

commit a292b6fd580e923e83bb01521183a82def281191
Author: Ramachandran Krishnan <[email protected]>
AuthorDate: Wed Aug 19 17:08:45 2026 +0530

    ATLAS-5385: Rename header auth property keys only
    
    Drop AtlasHeaderAuthConfiguration and keep the existing filter logic.
    Update atlas.authn.header.* properties to 
atlas.authentication.method.header.*.
---
 .../web/filters/AtlasHeaderAuthConfiguration.java  | 134 ---------------------
 .../web/filters/AtlasHeaderPreAuthFilter.java      |  44 ++++---
 .../filters/AtlasHeaderAuthConfigurationTest.java  | 128 --------------------
 .../web/filters/AtlasHeaderPreAuthFilterTest.java  |  89 +++++---------
 4 files changed, 61 insertions(+), 334 deletions(-)

diff --git 
a/webapp/src/main/java/org/apache/atlas/web/filters/AtlasHeaderAuthConfiguration.java
 
b/webapp/src/main/java/org/apache/atlas/web/filters/AtlasHeaderAuthConfiguration.java
deleted file mode 100644
index c551588b7..000000000
--- 
a/webapp/src/main/java/org/apache/atlas/web/filters/AtlasHeaderAuthConfiguration.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.atlas.web.filters;
-
-import org.apache.commons.configuration2.Configuration;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-public final class AtlasHeaderAuthConfiguration {
-    private static final Logger LOG = 
LoggerFactory.getLogger(AtlasHeaderAuthConfiguration.class);
-
-    public static final String PROP_HEADER_AUTH_ENABLED  = 
"atlas.authentication.header.enabled";
-    public static final String PROP_METHOD_HEADER_PREFIX = 
"atlas.authentication.method.header";
-
-    public static final String KEY_USERNAME   = "username";
-    public static final String KEY_ROLES      = "roles";
-    public static final String KEY_REQUEST_ID = "requestid";
-
-    private final boolean             enabled;
-    private final Map<String, String> headerNamesByKey;
-
-    private AtlasHeaderAuthConfiguration(boolean enabled, Map<String, String> 
headerNamesByKey) {
-        this.enabled          = enabled;
-        this.headerNamesByKey = headerNamesByKey;
-    }
-
-    public static AtlasHeaderAuthConfiguration load(Configuration 
configuration) {
-        if (configuration == null || 
!configuration.getBoolean(PROP_HEADER_AUTH_ENABLED, false)) {
-            return disabled();
-        }
-
-        Map<String, String> headerNamesByKey = new HashMap<>();
-
-        
applyMethodHeaderMappings(configuration.subset(PROP_METHOD_HEADER_PREFIX), 
headerNamesByKey);
-
-        return new AtlasHeaderAuthConfiguration(true, 
Collections.unmodifiableMap(headerNamesByKey));
-    }
-
-    public boolean isEnabled() {
-        return enabled;
-    }
-
-    public Set<String> getKeys() {
-        return headerNamesByKey.keySet();
-    }
-
-    public String getHeaderName(String key) {
-        return headerNamesByKey.get(key);
-    }
-
-    public String readHeaderValue(HttpServletRequest request, String key) {
-        String headerName = getHeaderName(key);
-
-        if (headerName == null || request == null) {
-            return null;
-        }
-
-        return StringUtils.trimToNull(request.getHeader(headerName));
-    }
-
-    private static AtlasHeaderAuthConfiguration disabled() {
-        return new AtlasHeaderAuthConfiguration(false, Collections.emptyMap());
-    }
-
-    private static void applyMethodHeaderMappings(Configuration methodHeaders, 
Map<String, String> headerNamesByKey) {
-        if (methodHeaders == null) {
-            return;
-        }
-
-        Iterator<String> keys = methodHeaders.getKeys();
-
-        while (keys.hasNext()) {
-            String propertyKey  = keys.next();
-            String logicalKey   = normalizeLogicalKey(propertyKey);
-            String httpHeaderName = 
StringUtils.trimToNull(methodHeaders.getString(propertyKey));
-
-            if (logicalKey == null) {
-                LOG.warn("Ignoring unrecognized header property key '{}'", 
propertyKey);
-                continue;
-            }
-
-            if (httpHeaderName == null) {
-                headerNamesByKey.remove(logicalKey);
-                continue;
-            }
-
-            headerNamesByKey.put(logicalKey, httpHeaderName);
-        }
-    }
-
-    private static String normalizeLogicalKey(String propertyKey) {
-        if (StringUtils.isBlank(propertyKey)) {
-            return null;
-        }
-
-        switch (propertyKey.trim()) {
-            case KEY_USERNAME:
-                return KEY_USERNAME;
-
-            case KEY_ROLES:
-                return KEY_ROLES;
-
-            case "request-id":
-                return KEY_REQUEST_ID;
-
-            default:
-                return null;
-        }
-    }
-}
diff --git 
a/webapp/src/main/java/org/apache/atlas/web/filters/AtlasHeaderPreAuthFilter.java
 
b/webapp/src/main/java/org/apache/atlas/web/filters/AtlasHeaderPreAuthFilter.java
index 32db1afa8..0add05e06 100644
--- 
a/webapp/src/main/java/org/apache/atlas/web/filters/AtlasHeaderPreAuthFilter.java
+++ 
b/webapp/src/main/java/org/apache/atlas/web/filters/AtlasHeaderPreAuthFilter.java
@@ -22,6 +22,7 @@ import org.apache.atlas.ApplicationProperties;
 import org.apache.atlas.server.common.filters.AtlasResponseRequestWrapper;
 import org.apache.atlas.server.common.filters.HeadersUtil;
 import org.apache.atlas.server.common.model.User;
+import org.apache.commons.configuration2.Configuration;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -51,9 +52,16 @@ import java.util.UUID;
 public class AtlasHeaderPreAuthFilter implements Filter {
     private static final Logger LOG = 
LoggerFactory.getLogger(AtlasHeaderPreAuthFilter.class);
 
-    private static final String REQUEST_ID_ATTRIBUTE = "atlas.request.id";
+    public static final String PROP_HEADER_AUTH_ENABLED = 
"atlas.authentication.header.enabled";
+    public static final String PROP_USERNAME_HEADER     = 
"atlas.authentication.method.header.username";
+    public static final String PROP_ROLES_HEADER        = 
"atlas.authentication.method.header.roles";
+    public static final String PROP_REQUEST_ID_HEADER   = 
"atlas.authentication.method.header.request-id";
+    public static final String REQUEST_ID_ATTRIBUTE     = "atlas.request.id";
 
-    private AtlasHeaderAuthConfiguration headerAuthConfiguration;
+    private Configuration configuration;
+    private boolean       headerAuthEnabled;
+    private String        userNameHeaderName;
+    private String        rolesHeaderName;
 
     @Inject
     public AtlasHeaderPreAuthFilter() {
@@ -62,23 +70,30 @@ public class AtlasHeaderPreAuthFilter implements Filter {
 
     private void loadConfiguration() {
         try {
-            headerAuthConfiguration = 
AtlasHeaderAuthConfiguration.load(ApplicationProperties.get());
+            configuration = ApplicationProperties.get();
         } catch (Exception e) {
             LOG.error("Error loading application properties for header 
pre-auth", e);
-            headerAuthConfiguration = AtlasHeaderAuthConfiguration.load(null);
+            configuration = null;
         }
+        if (configuration == null) {
+            headerAuthEnabled  = false;
+            userNameHeaderName = null;
+            rolesHeaderName    = null;
+            return;
+        }
+        headerAuthEnabled  = 
configuration.getBoolean(PROP_HEADER_AUTH_ENABLED, false);
+        userNameHeaderName = 
StringUtils.trimToNull(configuration.getString(PROP_USERNAME_HEADER, ""));
+        rolesHeaderName    = 
StringUtils.trimToNull(configuration.getString(PROP_ROLES_HEADER, ""));
     }
 
     private List<GrantedAuthority> getAuthoritiesFromRolesHeader(String 
rolesHeader) {
         List<GrantedAuthority> ret = new ArrayList<>();
-
         if (StringUtils.isBlank(rolesHeader)) {
             return ret;
         }
 
         for (String role : rolesHeader.split(",")) {
             String trimmed = StringUtils.trimToNull(role);
-
             if (trimmed != null) {
                 ret.add(new 
org.springframework.security.core.authority.SimpleGrantedAuthority(trimmed));
             }
@@ -102,15 +117,15 @@ public class AtlasHeaderPreAuthFilter implements Filter {
         HeadersUtil.setSecurityHeaders(responseWrapper);
 
         try {
-            if (headerAuthConfiguration.isEnabled()) {
+            if (headerAuthEnabled) {
                 Authentication pre = 
SecurityContextHolder.getContext().getAuthentication();
 
                 if (pre == null || !pre.isAuthenticated()) {
-                    String username = 
headerAuthConfiguration.readHeaderValue(httpRequest, 
AtlasHeaderAuthConfiguration.KEY_USERNAME);
+                    String username = 
StringUtils.trimToNull(httpRequest.getHeader(userNameHeaderName));
 
                     if (username != null) {
-                        String rolesHeaderValue = 
headerAuthConfiguration.readHeaderValue(httpRequest, 
AtlasHeaderAuthConfiguration.KEY_ROLES);
-                        List<GrantedAuthority> grantedAuths = 
getAuthoritiesFromRolesHeader(rolesHeaderValue);
+                        List<GrantedAuthority> grantedAuths =
+                                
getAuthoritiesFromRolesHeader(httpRequest.getHeader(rolesHeaderName));
 
                         UserDetails principal = new User(username, "", 
grantedAuths);
 
@@ -127,7 +142,6 @@ public class AtlasHeaderPreAuthFilter implements Filter {
 
             Authentication auth      = 
SecurityContextHolder.getContext().getAuthentication();
             String         requestId = getRequestId(auth, httpRequest);
-
             httpRequest.setAttribute(REQUEST_ID_ATTRIBUTE, requestId);
 
             chain.doFilter(servletRequest, responseWrapper);
@@ -139,10 +153,12 @@ public class AtlasHeaderPreAuthFilter implements Filter {
     }
 
     private String getRequestId(Authentication auth, HttpServletRequest 
request) {
-        if (auth instanceof AtlasAuthenticationToken &&
-                ((AtlasAuthenticationToken) auth).getAuthType() == 
AtlasAuthenticationToken.AUTH_TYPE_TRUSTED_PROXY) {
-            String requestId = 
headerAuthConfiguration.readHeaderValue(request, 
AtlasHeaderAuthConfiguration.KEY_REQUEST_ID);
+        String requestIdHeaderName = configuration != null ? 
configuration.getString(PROP_REQUEST_ID_HEADER) : null;
 
+        if (requestIdHeaderName != null &&
+                auth instanceof AtlasAuthenticationToken &&
+                ((AtlasAuthenticationToken) auth).getAuthType() == 
AtlasAuthenticationToken.AUTH_TYPE_TRUSTED_PROXY) {
+            String requestId = 
StringUtils.trimToNull(request.getHeader(requestIdHeaderName));
             if (requestId != null) {
                 return requestId;
             }
diff --git 
a/webapp/src/test/java/org/apache/atlas/web/filters/AtlasHeaderAuthConfigurationTest.java
 
b/webapp/src/test/java/org/apache/atlas/web/filters/AtlasHeaderAuthConfigurationTest.java
deleted file mode 100644
index 07d69b76d..000000000
--- 
a/webapp/src/test/java/org/apache/atlas/web/filters/AtlasHeaderAuthConfigurationTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.atlas.web.filters;
-
-import org.apache.commons.configuration2.MapConfiguration;
-import org.testng.annotations.Test;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-public class AtlasHeaderAuthConfigurationTest {
-    @Test
-    public void testDisabledWhenNotConfigured() {
-        AtlasHeaderAuthConfiguration config = 
AtlasHeaderAuthConfiguration.load(new MapConfiguration(new HashMap<>()));
-
-        assertFalse(config.isEnabled());
-        assertTrue(config.getKeys().isEmpty());
-    }
-
-    @Test
-    public void testEnabledWithoutMappingsHasNoHeaders() {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-
-        AtlasHeaderAuthConfiguration config = 
AtlasHeaderAuthConfiguration.load(new MapConfiguration(properties));
-
-        assertTrue(config.isEnabled());
-        assertTrue(config.getKeys().isEmpty());
-    }
-
-    @Test
-    public void testMethodHeaderMappings() {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "username");
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".roles", "roles");
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".request-id", "requestid");
-
-        AtlasHeaderAuthConfiguration config = 
AtlasHeaderAuthConfiguration.load(new MapConfiguration(properties));
-
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_USERNAME), 
"username");
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_ROLES), 
"roles");
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_REQUEST_ID), 
"requestid");
-    }
-
-    @Test
-    public void testCustomProxyHeaderNames() {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "X-Forwarded-User");
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".roles", "X-Forwarded-Groups");
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".request-id", "X-Request-Id");
-
-        AtlasHeaderAuthConfiguration config = 
AtlasHeaderAuthConfiguration.load(new MapConfiguration(properties));
-
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_USERNAME), 
"X-Forwarded-User");
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_ROLES), 
"X-Forwarded-Groups");
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_REQUEST_ID), 
"X-Request-Id");
-    }
-
-    @Test
-    public void testOnlyConfiguredHeadersAreMapped() {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "X-Forwarded-User");
-
-        AtlasHeaderAuthConfiguration config = 
AtlasHeaderAuthConfiguration.load(new MapConfiguration(properties));
-
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_USERNAME), 
"X-Forwarded-User");
-        
assertNull(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_ROLES));
-        
assertNull(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_REQUEST_ID));
-    }
-
-    @Test
-    public void testBlankPropertyRemovesMapping() {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "username");
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".roles", " ");
-
-        AtlasHeaderAuthConfiguration config = 
AtlasHeaderAuthConfiguration.load(new MapConfiguration(properties));
-
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_USERNAME), 
"username");
-        
assertNull(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_ROLES));
-    }
-
-    @Test
-    public void testUnrecognizedPropertyKeyIsIgnored() {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "username");
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".user", "ignored-user-header");
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".requestid", "ignored-requestid-header");
-
-        AtlasHeaderAuthConfiguration config = 
AtlasHeaderAuthConfiguration.load(new MapConfiguration(properties));
-
-        
assertEquals(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_USERNAME), 
"username");
-        
assertNull(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_ROLES));
-        
assertNull(config.getHeaderName(AtlasHeaderAuthConfiguration.KEY_REQUEST_ID));
-    }
-}
diff --git 
a/webapp/src/test/java/org/apache/atlas/web/filters/AtlasHeaderPreAuthFilterTest.java
 
b/webapp/src/test/java/org/apache/atlas/web/filters/AtlasHeaderPreAuthFilterTest.java
index 4c820f8e5..b74452e3a 100644
--- 
a/webapp/src/test/java/org/apache/atlas/web/filters/AtlasHeaderPreAuthFilterTest.java
+++ 
b/webapp/src/test/java/org/apache/atlas/web/filters/AtlasHeaderPreAuthFilterTest.java
@@ -20,7 +20,6 @@ package org.apache.atlas.web.filters;
 
 import org.apache.atlas.ApplicationProperties;
 import org.apache.commons.configuration2.Configuration;
-import org.apache.commons.configuration2.MapConfiguration;
 import org.mockito.Mock;
 import org.mockito.MockedStatic;
 import org.mockito.MockitoAnnotations;
@@ -37,8 +36,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
@@ -46,7 +43,6 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
 
@@ -60,6 +56,9 @@ public class AtlasHeaderPreAuthFilterTest {
     @Mock
     private FilterChain filterChain;
 
+    @Mock
+    private Configuration configuration;
+
     @BeforeMethod
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -73,16 +72,20 @@ public class AtlasHeaderPreAuthFilterTest {
 
     @Test
     public void testDoFilterEnabledWithUsernameAndRoles() throws Exception {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "X-Forwarded-User");
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".roles", "X-Forwarded-Groups");
-
+        
when(configuration.getBoolean(AtlasHeaderPreAuthFilter.PROP_HEADER_AUTH_ENABLED,
 false)).thenReturn(true);
+        
when(configuration.getString(AtlasHeaderPreAuthFilter.PROP_USERNAME_HEADER, ""))
+                .thenReturn("X-Forwarded-User");
+        
when(configuration.getString(AtlasHeaderPreAuthFilter.PROP_ROLES_HEADER, ""))
+                .thenReturn("X-Forwarded-Groups");
         when(request.getHeader("X-Forwarded-User")).thenReturn("alice");
         when(request.getHeader("X-Forwarded-Groups")).thenReturn("ROLE_ADMIN, 
ROLE_USER");
 
-        runFilter(new MapConfiguration(properties));
+        try (MockedStatic<ApplicationProperties> appProps = 
org.mockito.Mockito.mockStatic(ApplicationProperties.class)) {
+            
appProps.when(ApplicationProperties::get).thenReturn(configuration);
+
+            AtlasHeaderPreAuthFilter filter = new AtlasHeaderPreAuthFilter();
+            filter.doFilter(request, response, filterChain);
+        }
 
         Authentication auth = 
SecurityContextHolder.getContext().getAuthentication();
         assertNotNull(auth);
@@ -99,73 +102,43 @@ public class AtlasHeaderPreAuthFilterTest {
 
     @Test
     public void testDoFilterEnabledWithoutUsernameDoesNotAuthenticate() throws 
IOException, ServletException {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "X-Forwarded-User");
-
+        
when(configuration.getBoolean(AtlasHeaderPreAuthFilter.PROP_HEADER_AUTH_ENABLED,
 false)).thenReturn(true);
+        
when(configuration.getString(AtlasHeaderPreAuthFilter.PROP_USERNAME_HEADER, ""))
+                .thenReturn("X-Forwarded-User");
+        
when(configuration.getString(AtlasHeaderPreAuthFilter.PROP_ROLES_HEADER, ""))
+                .thenReturn("X-Forwarded-Groups");
         when(request.getHeader("X-Forwarded-User")).thenReturn("   ");
 
-        runFilter(new MapConfiguration(properties));
-
-        assertNull(SecurityContextHolder.getContext().getAuthentication());
-        verify(filterChain).doFilter(eq(request), 
any(HttpServletResponse.class));
-    }
-
-    @Test
-    public void testDoFilterEnabledWithoutAnyHeadersContinuesUnauthenticated() 
throws Exception {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
+        try (MockedStatic<ApplicationProperties> appProps = 
org.mockito.Mockito.mockStatic(ApplicationProperties.class)) {
+            
appProps.when(ApplicationProperties::get).thenReturn(configuration);
 
-        runFilter(new MapConfiguration(properties));
+            AtlasHeaderPreAuthFilter filter = new AtlasHeaderPreAuthFilter();
+            filter.doFilter(request, response, filterChain);
+        }
 
-        assertNull(SecurityContextHolder.getContext().getAuthentication());
+        assertEquals(SecurityContextHolder.getContext().getAuthentication(), 
null);
         verify(filterChain).doFilter(eq(request), 
any(HttpServletResponse.class));
     }
 
-    @Test
-    public void testDoFilterAuthenticatesWithUsernameOnly() throws Exception {
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "username");
-
-        when(request.getHeader("username")).thenReturn("alice");
-
-        runFilter(new MapConfiguration(properties));
-
-        Authentication auth = 
SecurityContextHolder.getContext().getAuthentication();
-        assertNotNull(auth);
-        assertEquals(((UserDetails) auth.getPrincipal()).getUsername(), 
"alice");
-        assertTrue(auth.getAuthorities().isEmpty());
-    }
-
     @Test
     public void testDoFilterEnabledKeepsExistingAuthentication() throws 
IOException, ServletException {
         Authentication existing = 
org.mockito.Mockito.mock(Authentication.class);
         when(existing.isAuthenticated()).thenReturn(true);
         SecurityContextHolder.getContext().setAuthentication(existing);
 
-        Map<String, Object> properties = new HashMap<>();
-
-        properties.put(AtlasHeaderAuthConfiguration.PROP_HEADER_AUTH_ENABLED, 
true);
-        properties.put(AtlasHeaderAuthConfiguration.PROP_METHOD_HEADER_PREFIX 
+ ".username", "X-Forwarded-User");
-
+        
when(configuration.getBoolean(AtlasHeaderPreAuthFilter.PROP_HEADER_AUTH_ENABLED,
 false)).thenReturn(true);
+        
when(configuration.getString(AtlasHeaderPreAuthFilter.PROP_USERNAME_HEADER, ""))
+                .thenReturn("X-Forwarded-User");
         when(request.getHeader("X-Forwarded-User")).thenReturn("alice");
 
-        runFilter(new MapConfiguration(properties));
-
-        assertSame(SecurityContextHolder.getContext().getAuthentication(), 
existing);
-        verify(filterChain).doFilter(eq(request), 
any(HttpServletResponse.class));
-    }
-
-    private void runFilter(Configuration configuration) throws Exception {
         try (MockedStatic<ApplicationProperties> appProps = 
org.mockito.Mockito.mockStatic(ApplicationProperties.class)) {
             
appProps.when(ApplicationProperties::get).thenReturn(configuration);
 
             AtlasHeaderPreAuthFilter filter = new AtlasHeaderPreAuthFilter();
             filter.doFilter(request, response, filterChain);
         }
+
+        assertSame(SecurityContextHolder.getContext().getAuthentication(), 
existing);
+        verify(filterChain).doFilter(eq(request), 
any(HttpServletResponse.class));
     }
 }

Reply via email to