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

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


The following commit(s) were added to refs/heads/master by this push:
     new d0ad8362f6 HDDS-11472. Avoid recreating external access authorizer on 
OM state reload (#7238)
d0ad8362f6 is described below

commit d0ad8362f690e0e13b39fbe94d9445e2f0549281
Author: Abhishek Pal <[email protected]>
AuthorDate: Mon Sep 30 21:23:16 2024 +0530

    HDDS-11472. Avoid recreating external access authorizer on OM state reload 
(#7238)
---
 .../apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java  | 9 +++++++--
 .../src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java   | 8 +++++++-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java
index 1f105a03ad..abd4cd6f6d 100644
--- 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java
@@ -1,4 +1,4 @@
-/**
+/*
  * 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
@@ -19,7 +19,7 @@ package org.apache.hadoop.ozone.security.acl;
 import org.apache.hadoop.ozone.om.exceptions.OMException;
 
 /**
- * Default implementation for {@link IAccessAuthorizer}.
+ * No-op implementation for {@link IAccessAuthorizer}, allows everything.
  * */
 public class OzoneAccessAuthorizer implements IAccessAuthorizer {
 
@@ -35,4 +35,9 @@ public class OzoneAccessAuthorizer implements 
IAccessAuthorizer {
       throws OMException {
     return true;
   }
+
+  @Override
+  public boolean isNative() {
+    return true;
+  }
 }
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index c432230917..e2acafdd24 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -866,7 +866,13 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
     prefixManager = new PrefixManagerImpl(this, metadataManager, 
isRatisEnabled);
     keyManager = new KeyManagerImpl(this, scmClient, configuration,
         perfMetrics);
-    accessAuthorizer = OzoneAuthorizerFactory.forOM(this);
+    // If authorizer is not initialized or the authorizer is Native
+    // re-initialize the authorizer, else for non-native authorizer
+    // like ranger we can reuse previous value if it is initialized
+    if (null == accessAuthorizer || accessAuthorizer.isNative()) {
+      accessAuthorizer = OzoneAuthorizerFactory.forOM(this);
+    }
+
     omMetadataReader = new OmMetadataReader(keyManager, prefixManager,
         this, LOG, AUDIT, metrics, accessAuthorizer);
     // Active DB's OmMetadataReader instance does not need to be reference


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to