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

abhi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new a6c21a19a RANGER-5499: Refactor to use Filter and fix error in 
catalina.out
a6c21a19a is described below

commit a6c21a19aa2522f882301bccce03e6c28701522a
Author: Abhishek Kumar <[email protected]>
AuthorDate: Wed Mar 18 15:12:45 2026 -0700

    RANGER-5499: Refactor to use Filter and fix error in catalina.out
---
 .../web/filter/RangerHeaderPreAuthFilter.java      | 36 ++++++++++++++--------
 .../web/filter/TestRangerHeaderPreAuthFilter.java  |  8 ++---
 2 files changed, 27 insertions(+), 17 deletions(-)

diff --git 
a/security-admin/src/main/java/org/apache/ranger/security/web/filter/RangerHeaderPreAuthFilter.java
 
b/security-admin/src/main/java/org/apache/ranger/security/web/filter/RangerHeaderPreAuthFilter.java
index 89bb78750..6672e3c3c 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/security/web/filter/RangerHeaderPreAuthFilter.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/security/web/filter/RangerHeaderPreAuthFilter.java
@@ -32,9 +32,8 @@
 import org.springframework.security.core.userdetails.User;
 import org.springframework.security.core.userdetails.UserDetails;
 import 
org.springframework.security.web.authentication.WebAuthenticationDetails;
-import org.springframework.web.filter.GenericFilterBean;
 
-import javax.annotation.PostConstruct;
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
@@ -47,12 +46,12 @@
 import java.util.Collection;
 import java.util.List;
 
-public class RangerHeaderPreAuthFilter extends GenericFilterBean {
+public class RangerHeaderPreAuthFilter implements Filter {
     private static final Logger LOG = 
LoggerFactory.getLogger(RangerHeaderPreAuthFilter.class);
 
-    public static final String PROP_HEADER_AUTH_ENABLED        = 
"ranger.admin.authn.header.enabled";
-    public static final String PROP_USERNAME_HEADER_NAME       = 
"ranger.admin.authn.header.username";
-    public static final String PROP_REQUEST_ID_HEADER_NAME     = 
"ranger.admin.authn.header.requestid";
+    public static final String PROP_HEADER_AUTH_ENABLED    = 
"ranger.admin.authn.header.enabled";
+    public static final String PROP_USERNAME_HEADER_NAME   = 
"ranger.admin.authn.header.username";
+    public static final String PROP_REQUEST_ID_HEADER_NAME = 
"ranger.admin.authn.header.requestid";
 
     private boolean headerAuthEnabled;
     private String  userNameHeaderName;
@@ -60,21 +59,32 @@ public class RangerHeaderPreAuthFilter extends 
GenericFilterBean {
     @Autowired
     UserMgr userMgr;
 
-    @PostConstruct
-    public void initialize(FilterConfig filterConfig) throws ServletException {
+    public RangerHeaderPreAuthFilter() {
+        loadConfiguration();
+    }
+
+    @Override
+    public void init(FilterConfig config) throws ServletException {
+        loadConfiguration();
+    }
+
+    private void loadConfiguration() {
         headerAuthEnabled  = 
PropertiesUtil.getBooleanProperty(PROP_HEADER_AUTH_ENABLED, false);
         userNameHeaderName = 
PropertiesUtil.getProperty(PROP_USERNAME_HEADER_NAME);
     }
 
     @Override
-    public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException, ServletException {
-        HttpServletRequest  httpRequest  = (HttpServletRequest) request;
+    public void destroy() {
+    }
 
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException, ServletException {
         if (headerAuthEnabled) {
             Authentication existingAuthn = 
SecurityContextHolder.getContext().getAuthentication();
 
             if (existingAuthn == null || !existingAuthn.isAuthenticated()) {
-                String username = 
StringUtils.trimToNull(httpRequest.getHeader(userNameHeaderName));
+                HttpServletRequest  httpRequest = (HttpServletRequest) request;
+                String              username    = 
StringUtils.trimToNull(httpRequest.getHeader(userNameHeaderName));
 
                 if (StringUtils.isNotBlank(username)) {
                     List<GrantedAuthority>    grantedAuthorities = 
getAuthoritiesFromRanger(username);
@@ -101,8 +111,8 @@ public void doFilter(ServletRequest request, 
ServletResponse response, FilterCha
      * Loads authorities from Ranger DB
      */
     private List<GrantedAuthority> getAuthoritiesFromRanger(String username) {
-        List<GrantedAuthority> ret = new ArrayList<>();
-        Collection<String>    roleList = userMgr.getRolesByLoginId(username);
+        List<GrantedAuthority> ret      = new ArrayList<>();
+        Collection<String>     roleList = userMgr.getRolesByLoginId(username);
 
         if (roleList != null) {
             for (String role : roleList) {
diff --git 
a/security-admin/src/test/java/org/apache/ranger/security/web/filter/TestRangerHeaderPreAuthFilter.java
 
b/security-admin/src/test/java/org/apache/ranger/security/web/filter/TestRangerHeaderPreAuthFilter.java
index 2ed69a6fb..e90dd6fae 100644
--- 
a/security-admin/src/test/java/org/apache/ranger/security/web/filter/TestRangerHeaderPreAuthFilter.java
+++ 
b/security-admin/src/test/java/org/apache/ranger/security/web/filter/TestRangerHeaderPreAuthFilter.java
@@ -75,7 +75,7 @@ public void testDoFilter_disabled_passesThrough() throws 
Exception {
         UserMgr                   userMgr = mock(UserMgr.class);
 
         filter.userMgr = userMgr;
-        filter.initialize(null);
+        filter.init(null);
 
         HttpServletRequest  request  = mock(HttpServletRequest.class);
         HttpServletResponse response = mock(HttpServletResponse.class);
@@ -97,7 +97,7 @@ public void 
testDoFilter_enabled_missingUsername_passesThrough() throws Exceptio
         UserMgr                   userMgr = mock(UserMgr.class);
 
         filter.userMgr = userMgr;
-        filter.initialize(null);
+        filter.init(null);
 
         HttpServletRequest  request  = mock(HttpServletRequest.class);
         HttpServletResponse response = mock(HttpServletResponse.class);
@@ -121,7 +121,7 @@ public void 
testDoFilter_enabled_withUsername_setsAuthenticationFromRangerDbRole
         UserMgr                   userMgr = mock(UserMgr.class);
 
         filter.userMgr = userMgr;
-        filter.initialize(null);
+        filter.init(null);
 
         
when(userMgr.getRolesByLoginId("joeuser")).thenReturn(Arrays.asList("ROLE_SYS_ADMIN",
 "ROLE_USER"));
 
@@ -160,7 +160,7 @@ public void 
testDoFilter_enabled_existingAuthenticatedContext_doesNotOverrideAut
         UserMgr                   userMgr = mock(UserMgr.class);
 
         filter.userMgr = userMgr;
-        filter.initialize(null);
+        filter.init(null);
 
         UsernamePasswordAuthenticationToken existingAuth = new 
UsernamePasswordAuthenticationToken("existing-user", "pwd", 
Collections.singletonList(new SimpleGrantedAuthority("test-role")));
 

Reply via email to