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

madhan pushed a commit to branch atlas-2.5
in repository https://gitbox.apache.org/repos/asf/atlas.git


The following commit(s) were added to refs/heads/atlas-2.5 by this push:
     new 97486c9e2 ATLAS-4961: checkstyle compliance updates - 
atlas-authorization module (#286)
97486c9e2 is described below

commit 97486c9e2a2928fa03ba8028c6d0a18f65160b27
Author: Madhan Neethiraj <mad...@apache.org>
AuthorDate: Wed Feb 12 18:49:04 2025 -0800

    ATLAS-4961: checkstyle compliance updates - atlas-authorization module 
(#286)
    
    (cherry picked from commit 7058cb9ef178197758d8178d27ceb59f37da564c)
---
 authorization/pom.xml                              |   5 +
 .../apache/atlas/authorize/AtlasAccessRequest.java |  45 ++--
 .../atlas/authorize/AtlasAdminAccessRequest.java   |  10 +-
 .../authorize/AtlasAuthorizationException.java     |   9 +-
 .../atlas/authorize/AtlasAuthorizationUtils.java   |  45 ++--
 .../apache/atlas/authorize/AtlasAuthorizer.java    |  29 +--
 .../atlas/authorize/AtlasAuthorizerFactory.java    |  25 +-
 .../atlas/authorize/AtlasEntityAccessRequest.java  |   9 +-
 .../atlas/authorize/AtlasNoneAuthorizer.java       |  13 +-
 .../org/apache/atlas/authorize/AtlasPrivilege.java |  66 ++---
 .../authorize/AtlasRelationshipAccessRequest.java  |  10 +-
 .../authorize/AtlasSearchResultScrubRequest.java   |  13 +-
 .../atlas/authorize/AtlasTypeAccessRequest.java    |   7 +-
 .../authorize/AtlasTypesDefFilterRequest.java      |   7 +-
 .../authorize/simple/AtlasSimpleAuthorizer.java    | 265 +++++++++------------
 .../authorize/simple/AtlasSimpleAuthzPolicy.java   |  53 ++---
 .../simple/AtlasSimpleAuthzUpdateTool.java         |  83 +++----
 .../simple/AtlasSimpleAuthorizerTest.java          | 141 ++++++-----
 18 files changed, 389 insertions(+), 446 deletions(-)

diff --git a/authorization/pom.xml b/authorization/pom.xml
index a067b3521..dd38b81bf 100644
--- a/authorization/pom.xml
+++ b/authorization/pom.xml
@@ -30,6 +30,11 @@
 
     <name>Apache Atlas Authorization</name>
 
+    <properties>
+        <checkstyle.failOnViolation>true</checkstyle.failOnViolation>
+        <checkstyle.skip>false</checkstyle.skip>
+    </properties>
+
     <dependencies>
 
         <dependency>
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAccessRequest.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAccessRequest.java
index c76a8715b..0f3f8d4dc 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAccessRequest.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAccessRequest.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -24,8 +24,6 @@ import org.apache.atlas.type.AtlasEntityType;
 import org.apache.atlas.type.AtlasStructType.AtlasAttribute;
 import org.apache.atlas.type.AtlasTypeRegistry;
 import org.apache.commons.collections.MapUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.util.Collections;
 import java.util.Date;
@@ -35,19 +33,16 @@ import java.util.Map;
 import java.util.Set;
 
 public class AtlasAccessRequest {
-    private static Logger LOG = 
LoggerFactory.getLogger(AtlasAccessRequest.class);
-
     private static final String DEFAULT_ENTITY_ID_ATTRIBUTE = "qualifiedName";
 
     private final AtlasPrivilege action;
     private final Date           accessTime;
-    private       String         user            = null;
-    private       Set<String>    userGroups      = null;
-    private       String         clientIPAddress = null;
+    private       String         user;
+    private       Set<String>    userGroups;
+    private       String         clientIPAddress;
     private       List<String>   forwardedAddresses;
     private       String         remoteIPAddress;
 
-
     protected AtlasAccessRequest(AtlasPrivilege action) {
         this(action, null, null, new Date(), null);
     }
@@ -56,11 +51,11 @@ public class AtlasAccessRequest {
         this(action, user, userGroups, new Date(), null, null, null);
     }
 
-    protected AtlasAccessRequest(AtlasPrivilege action, String user, 
Set<String> userGroups, Date accessTime,
-                                 String clientIPAddress, List<String> 
forwardedAddresses, String remoteIPAddress) {
+    protected AtlasAccessRequest(AtlasPrivilege action, String user, 
Set<String> userGroups, Date accessTime, String clientIPAddress, List<String> 
forwardedAddresses, String remoteIPAddress) {
         this(action, user, userGroups, accessTime, clientIPAddress);
-        this.forwardedAddresses  = forwardedAddresses;
-        this.remoteIPAddress     = remoteIPAddress;
+
+        this.forwardedAddresses = forwardedAddresses;
+        this.remoteIPAddress    = remoteIPAddress;
     }
 
     protected AtlasAccessRequest(AtlasPrivilege action, String user, 
Set<String> userGroups, Date accessTime, String clientIPAddress) {
@@ -96,22 +91,22 @@ public class AtlasAccessRequest {
         return forwardedAddresses;
     }
 
-    public String getRemoteIPAddress() {
-        return remoteIPAddress;
-    }
-
-    public String getClientIPAddress() {
-        return clientIPAddress;
-    }
-
     public void setForwardedAddresses(List<String> forwardedAddresses) {
         this.forwardedAddresses = forwardedAddresses;
     }
 
+    public String getRemoteIPAddress() {
+        return remoteIPAddress;
+    }
+
     public void setRemoteIPAddress(String remoteIPAddress) {
         this.remoteIPAddress = remoteIPAddress;
     }
 
+    public String getClientIPAddress() {
+        return clientIPAddress;
+    }
+
     public void setClientIPAddress(String clientIPAddress) {
         this.clientIPAddress = clientIPAddress;
     }
@@ -169,7 +164,6 @@ public class AtlasAccessRequest {
                         break;
                     }
                 }
-
             }
         }
 
@@ -194,10 +188,9 @@ public class AtlasAccessRequest {
 
     @Override
     public String toString() {
-        return "AtlasAccessRequest[" + "action=" + action + ", accessTime=" + 
accessTime +", user='" + user + '\'' +
+        return "AtlasAccessRequest[" + "action=" + action + ", accessTime=" + 
accessTime + ", user='" + user + '\'' +
                 ", userGroups=" + userGroups + ", clientIPAddress='" + 
clientIPAddress + '\'' +
                 ", forwardedAddresses=" + forwardedAddresses + ", 
remoteIPAddress='" + remoteIPAddress + '\'' +
                 ']';
-
     }
 }
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAdminAccessRequest.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAdminAccessRequest.java
index 5f571fb64..e6e34dbc7 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAdminAccessRequest.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAdminAccessRequest.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -17,11 +17,9 @@
  */
 package org.apache.atlas.authorize;
 
-
 import java.util.Set;
 
 public class AtlasAdminAccessRequest extends AtlasAccessRequest {
-
     public AtlasAdminAccessRequest(AtlasPrivilege action) {
         super(action);
     }
@@ -33,7 +31,7 @@ public class AtlasAdminAccessRequest extends 
AtlasAccessRequest {
     @Override
     public String toString() {
         return "AtlasAdminAccessRequest[action=" + getAction() + ", 
accessTime=" + getAccessTime() + ", user=" + getUser() +
-                                        ", userGroups=" + getUserGroups() + ", 
clientIPAddress=" + getClientIPAddress() +
+                ", userGroups=" + getUserGroups() + ", clientIPAddress=" + 
getClientIPAddress() +
                 ", forwardedAddresses=" + getForwardedAddresses() + ", 
remoteIPAddress=" + getRemoteIPAddress() + "]";
     }
 }
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizationException.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizationException.java
index ff35e7d09..c82776748 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizationException.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizationException.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -29,8 +29,7 @@ public class AtlasAuthorizationException extends Exception {
         super(message, exception);
     }
 
-    public AtlasAuthorizationException(String message, Throwable exception, 
boolean enableSuppression,
-        boolean writableStackTrace) {
+    public AtlasAuthorizationException(String message, Throwable exception, 
boolean enableSuppression, boolean writableStackTrace) {
         super(message, exception, enableSuppression, writableStackTrace);
     }
 
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizationUtils.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizationUtils.java
index b1a3eb5fb..581c6235f 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizationUtils.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizationUtils.java
@@ -1,5 +1,5 @@
 /**
-/**
+ * /**
  * 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
@@ -7,9 +7,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -31,18 +31,23 @@ import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.context.SecurityContextHolder;
 
 import javax.servlet.http.HttpServletRequest;
+
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.Arrays;
 import java.util.HashSet;
-import java.util.Set;
 import java.util.List;
-import java.util.Arrays;
+import java.util.Set;
 
 public class AtlasAuthorizationUtils {
     private static final Logger LOG = 
LoggerFactory.getLogger(AtlasAuthorizationUtils.class);
 
+    private AtlasAuthorizationUtils() {
+        // to block instantiation
+    }
+
     public static void verifyAccess(AtlasAdminAccessRequest request, Object... 
errorMsgParams) throws AtlasBaseException {
-        if (! isAccessAllowed(request)) {
+        if (!isAccessAllowed(request)) {
             String message = (errorMsgParams != null && errorMsgParams.length 
> 0) ? StringUtils.join(errorMsgParams) : "";
 
             throw new AtlasBaseException(AtlasErrorCode.UNAUTHORIZED_ACCESS, 
request.getUser(), message);
@@ -50,7 +55,7 @@ public class AtlasAuthorizationUtils {
     }
 
     public static void verifyAccess(AtlasTypeAccessRequest request, Object... 
errorMsgParams) throws AtlasBaseException {
-        if (! isAccessAllowed(request)) {
+        if (!isAccessAllowed(request)) {
             String message = (errorMsgParams != null && errorMsgParams.length 
> 0) ? StringUtils.join(errorMsgParams) : "";
 
             throw new AtlasBaseException(AtlasErrorCode.UNAUTHORIZED_ACCESS, 
request.getUser(), message);
@@ -58,7 +63,7 @@ public class AtlasAuthorizationUtils {
     }
 
     public static void verifyAccess(AtlasEntityAccessRequest request, 
Object... errorMsgParams) throws AtlasBaseException {
-        if (! isAccessAllowed(request)) {
+        if (!isAccessAllowed(request)) {
             String message = (errorMsgParams != null && errorMsgParams.length 
> 0) ? StringUtils.join(errorMsgParams) : "";
 
             throw new AtlasBaseException(AtlasErrorCode.UNAUTHORIZED_ACCESS, 
request.getUser(), message);
@@ -68,11 +73,12 @@ public class AtlasAuthorizationUtils {
     public static void verifyAccess(AtlasRelationshipAccessRequest request, 
Object... errorMsgParams) throws AtlasBaseException {
         if (!isAccessAllowed(request)) {
             String message = (errorMsgParams != null && errorMsgParams.length 
> 0) ? StringUtils.join(errorMsgParams) : "";
+
             throw new AtlasBaseException(AtlasErrorCode.UNAUTHORIZED_ACCESS, 
request.getUser(), message);
         }
     }
 
-    public static void scrubSearchResults(AtlasSearchResultScrubRequest 
request) throws AtlasBaseException {
+    public static void scrubSearchResults(AtlasSearchResultScrubRequest 
request) {
         String userName = getCurrentUserName();
 
         if (StringUtils.isNotEmpty(userName)) {
@@ -105,6 +111,7 @@ public class AtlasAuthorizationUtils {
                 
request.setClientIPAddress(RequestContext.get().getClientIPAddress());
                 
request.setForwardedAddresses(RequestContext.get().getForwardedAddresses());
                 
request.setRemoteIPAddress(RequestContext.get().getClientIPAddress());
+
                 ret = authorizer.isAccessAllowed(request);
             } catch (AtlasAuthorizationException e) {
                 LOG.error("Unable to obtain AtlasAuthorizer", e);
@@ -132,6 +139,7 @@ public class AtlasAuthorizationUtils {
                 
request.setClientIPAddress(RequestContext.get().getClientIPAddress());
                 
request.setForwardedAddresses(RequestContext.get().getForwardedAddresses());
                 
request.setRemoteIPAddress(RequestContext.get().getClientIPAddress());
+
                 ret = authorizer.isAccessAllowed(request);
             } catch (AtlasAuthorizationException e) {
                 LOG.error("Unable to obtain AtlasAuthorizer", e);
@@ -159,6 +167,7 @@ public class AtlasAuthorizationUtils {
                 
request.setClientIPAddress(RequestContext.get().getClientIPAddress());
                 
request.setForwardedAddresses(RequestContext.get().getForwardedAddresses());
                 
request.setRemoteIPAddress(RequestContext.get().getClientIPAddress());
+
                 ret = authorizer.isAccessAllowed(request);
             } catch (AtlasAuthorizationException e) {
                 LOG.error("Unable to obtain AtlasAuthorizer", e);
@@ -186,6 +195,7 @@ public class AtlasAuthorizationUtils {
                 
request.setClientIPAddress(RequestContext.get().getClientIPAddress());
                 
request.setForwardedAddresses(RequestContext.get().getForwardedAddresses());
                 
request.setRemoteIPAddress(RequestContext.get().getClientIPAddress());
+
                 ret = authorizer.isAccessAllowed(request);
             } catch (AtlasAuthorizationException e) {
                 LOG.error("Unable to obtain AtlasAuthorizer", e);
@@ -200,8 +210,8 @@ public class AtlasAuthorizationUtils {
     }
 
     public static void filterTypesDef(AtlasTypesDefFilterRequest request) {
-        MetricRecorder metric  = 
RequestContext.get().startMetricRecord("filterTypesDef");
-        String        userName = getCurrentUserName();
+        MetricRecorder metric   = 
RequestContext.get().startMetricRecord("filterTypesDef");
+        String         userName = getCurrentUserName();
 
         if (StringUtils.isNotEmpty(userName) && 
!RequestContext.get().isImportInProgress()) {
             try {
@@ -221,13 +231,14 @@ public class AtlasAuthorizationUtils {
         RequestContext.get().endMetricRecord(metric);
     }
 
-    public static List<String> 
getForwardedAddressesFromRequest(HttpServletRequest httpServletRequest){
-        String ipAddress = httpServletRequest.getHeader("X-FORWARDED-FOR");
-        String[] forwardedAddresses = null ;
+    public static List<String> 
getForwardedAddressesFromRequest(HttpServletRequest httpServletRequest) {
+        String   ipAddress          = 
httpServletRequest.getHeader("X-FORWARDED-FOR");
+        String[] forwardedAddresses = null;
 
-        if(!StringUtils.isEmpty(ipAddress)){
+        if (!StringUtils.isEmpty(ipAddress)) {
             forwardedAddresses = ipAddress.split(",");
         }
+
         return forwardedAddresses != null ? Arrays.asList(forwardedAddresses) 
: null;
     }
 
@@ -245,8 +256,6 @@ public class AtlasAuthorizationUtils {
         return ret;
     }
 
-
-
     public static String getCurrentUserName() {
         Authentication auth = 
SecurityContextHolder.getContext().getAuthentication();
 
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizer.java 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizer.java
index 21b8cf905..845b05f9a 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizer.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizer.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -18,7 +18,6 @@
 
 package org.apache.atlas.authorize;
 
-
 import org.apache.atlas.model.instance.AtlasEntityHeader;
 
 public interface AtlasAuthorizer {
@@ -62,8 +61,7 @@ public interface AtlasAuthorizer {
      * @return
      * @throws AtlasAuthorizationException
      */
-    default
-    boolean isAccessAllowed(AtlasRelationshipAccessRequest request) throws 
AtlasAuthorizationException {
+    default boolean isAccessAllowed(AtlasRelationshipAccessRequest request) 
throws AtlasAuthorizationException {
         return true;
     }
 
@@ -73,36 +71,33 @@ public interface AtlasAuthorizer {
      * @return
      * @throws AtlasAuthorizationException
      */
-    default
-    void scrubSearchResults(AtlasSearchResultScrubRequest request) throws 
AtlasAuthorizationException {
+    default void scrubSearchResults(AtlasSearchResultScrubRequest request) 
throws AtlasAuthorizationException {
     }
 
-    default
-    void scrubEntityHeader(AtlasEntityHeader entity) {
+    default void scrubEntityHeader(AtlasEntityHeader entity) {
         entity.setGuid("-1");
 
-        if(entity.getAttributes() != null) {
+        if (entity.getAttributes() != null) {
             entity.getAttributes().clear();
         }
 
-        if(entity.getClassifications() != null) {
+        if (entity.getClassifications() != null) {
             entity.getClassifications().clear();
         }
 
-        if(entity.getClassificationNames() != null) {
+        if (entity.getClassificationNames() != null) {
             entity.getClassificationNames().clear();
         }
 
-        if(entity.getMeanings() != null) {
+        if (entity.getMeanings() != null) {
             entity.getMeanings().clear();
         }
 
-        if(entity.getMeaningNames() != null) {
+        if (entity.getMeaningNames() != null) {
             entity.getMeaningNames().clear();
         }
     }
 
-    default
-    void filterTypesDef(AtlasTypesDefFilterRequest request) throws 
AtlasAuthorizationException {
+    default void filterTypesDef(AtlasTypesDefFilterRequest request) throws 
AtlasAuthorizationException {
     }
 }
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizerFactory.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizerFactory.java
index 72037eabb..d72fdda74 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizerFactory.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasAuthorizerFactory.java
@@ -26,7 +26,6 @@ import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 public class AtlasAuthorizerFactory {
     private static final Logger LOG = 
LoggerFactory.getLogger(AtlasAuthorizerFactory.class);
 
@@ -34,14 +33,20 @@ public class AtlasAuthorizerFactory {
     private static final String SIMPLE_AUTHORIZER = 
AtlasSimpleAuthorizer.class.getName();
     private static final String RANGER_AUTHORIZER = 
"org.apache.ranger.authorization.atlas.authorizer.RangerAtlasAuthorizer";
 
-    private static volatile AtlasAuthorizer INSTANCE = null;
+    private static volatile AtlasAuthorizer instance;
+
+    private AtlasAuthorizerFactory() {
+        // to block instantiation
+    }
 
     public static AtlasAuthorizer getAtlasAuthorizer() throws 
AtlasAuthorizationException {
-        AtlasAuthorizer ret = INSTANCE;
+        AtlasAuthorizer ret = AtlasAuthorizerFactory.instance;
 
         if (ret == null) {
             synchronized (AtlasAuthorizerFactory.class) {
-                if (INSTANCE == null) {
+                ret = AtlasAuthorizerFactory.instance;
+
+                if (ret == null) {
                     Configuration configuration = null;
 
                     try {
@@ -67,21 +72,19 @@ public class AtlasAuthorizerFactory {
                     LOG.info("Initializing Authorizer {}", authorizerClass);
 
                     try {
-                        Class authorizerMetaObject = 
Class.forName(authorizerClass);
+                        Class<?> authorizerMetaObject = 
Class.forName(authorizerClass);
 
-                        if (authorizerMetaObject != null) {
-                            INSTANCE = (AtlasAuthorizer) 
authorizerMetaObject.newInstance();
+                        ret = (AtlasAuthorizer) 
authorizerMetaObject.newInstance();
 
-                            INSTANCE.init();
-                        }
+                        ret.init();
+
+                        AtlasAuthorizerFactory.instance = ret;
                     } catch (Exception e) {
                         LOG.error("Error while creating authorizer of type 
{}", authorizerClass, e);
 
                         throw new AtlasAuthorizationException("Error while 
creating authorizer of type '" + authorizerClass + "'", e);
                     }
                 }
-
-                ret = INSTANCE;
             }
         }
 
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasEntityAccessRequest.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasEntityAccessRequest.java
index 6d49d54b1..10b8d4792 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasEntityAccessRequest.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasEntityAccessRequest.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -34,7 +34,6 @@ public class AtlasEntityAccessRequest extends 
AtlasAccessRequest {
     private final AtlasTypeRegistry   typeRegistry;
     private final Set<String>         entityClassifications;
 
-
     public AtlasEntityAccessRequest(AtlasTypeRegistry typeRegistry, 
AtlasPrivilege action) {
         this(typeRegistry, action, null, null, null, null, null, null, null);
     }
@@ -197,5 +196,3 @@ public class AtlasEntityAccessRequest extends 
AtlasAccessRequest {
         }
     }
 }
-
-
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasNoneAuthorizer.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasNoneAuthorizer.java
index a37104944..86909d924 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasNoneAuthorizer.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasNoneAuthorizer.java
@@ -21,7 +21,6 @@ package org.apache.atlas.authorize;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 public class AtlasNoneAuthorizer implements AtlasAuthorizer {
     private static final Logger LOG = 
LoggerFactory.getLogger(AtlasNoneAuthorizer.class);
 
@@ -33,24 +32,24 @@ public class AtlasNoneAuthorizer implements AtlasAuthorizer 
{
         LOG.info("AtlasNoneAuthorizer.cleanUp()");
     }
 
-    public boolean isAccessAllowed(AtlasAdminAccessRequest request) throws 
AtlasAuthorizationException {
+    public boolean isAccessAllowed(AtlasAdminAccessRequest request) {
         return true;
     }
 
-    public boolean isAccessAllowed(AtlasEntityAccessRequest request) throws 
AtlasAuthorizationException {
+    public boolean isAccessAllowed(AtlasEntityAccessRequest request) {
         return true;
     }
 
-    public boolean isAccessAllowed(AtlasTypeAccessRequest request) throws 
AtlasAuthorizationException {
+    public boolean isAccessAllowed(AtlasTypeAccessRequest request) {
         return true;
     }
 
     @Override
-    public boolean isAccessAllowed(AtlasRelationshipAccessRequest request) 
throws AtlasAuthorizationException {
+    public boolean isAccessAllowed(AtlasRelationshipAccessRequest request) {
         return true;
     }
 
-    public void scrubSearchResults(AtlasSearchResultScrubRequest request) 
throws AtlasAuthorizationException {
-
+    @Override
+    public void scrubSearchResults(AtlasSearchResultScrubRequest request) {
     }
 }
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasPrivilege.java 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasPrivilege.java
index f270844c5..68402fd50 100644
--- a/authorization/src/main/java/org/apache/atlas/authorize/AtlasPrivilege.java
+++ b/authorization/src/main/java/org/apache/atlas/authorize/AtlasPrivilege.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -18,45 +18,45 @@
 package org.apache.atlas.authorize;
 
 public enum AtlasPrivilege {
-     TYPE_CREATE("type-create"),
-     TYPE_UPDATE("type-update"),
-     TYPE_DELETE("type-delete"),
+    TYPE_CREATE("type-create"),
+    TYPE_UPDATE("type-update"),
+    TYPE_DELETE("type-delete"),
 
-     ENTITY_READ("entity-read"),
-     ENTITY_CREATE("entity-create"),
-     ENTITY_UPDATE("entity-update"),
-     ENTITY_DELETE("entity-delete"),
-     ENTITY_READ_CLASSIFICATION("entity-read-classification"),
-     ENTITY_ADD_CLASSIFICATION("entity-add-classification"),
-     ENTITY_UPDATE_CLASSIFICATION("entity-update-classification"),
-     ENTITY_REMOVE_CLASSIFICATION("entity-remove-classification"),
+    ENTITY_READ("entity-read"),
+    ENTITY_CREATE("entity-create"),
+    ENTITY_UPDATE("entity-update"),
+    ENTITY_DELETE("entity-delete"),
+    ENTITY_READ_CLASSIFICATION("entity-read-classification"),
+    ENTITY_ADD_CLASSIFICATION("entity-add-classification"),
+    ENTITY_UPDATE_CLASSIFICATION("entity-update-classification"),
+    ENTITY_REMOVE_CLASSIFICATION("entity-remove-classification"),
 
-     ADMIN_EXPORT("admin-export"),
-     ADMIN_IMPORT("admin-import"),
+    ADMIN_EXPORT("admin-export"),
+    ADMIN_IMPORT("admin-import"),
 
-     RELATIONSHIP_ADD("add-relationship"),
-     RELATIONSHIP_UPDATE("update-relationship"),
-     RELATIONSHIP_REMOVE("remove-relationship"),
+    RELATIONSHIP_ADD("add-relationship"),
+    RELATIONSHIP_UPDATE("update-relationship"),
+    RELATIONSHIP_REMOVE("remove-relationship"),
 
-     ADMIN_PURGE("admin-purge"),
+    ADMIN_PURGE("admin-purge"),
 
-     ENTITY_ADD_LABEL("entity-add-label"),
-     ENTITY_REMOVE_LABEL("entity-remove-label"),
-     ENTITY_UPDATE_BUSINESS_METADATA("entity-update-business-metadata"),
+    ENTITY_ADD_LABEL("entity-add-label"),
+    ENTITY_REMOVE_LABEL("entity-remove-label"),
+    ENTITY_UPDATE_BUSINESS_METADATA("entity-update-business-metadata"),
 
-     TYPE_READ("type-read"),
+    TYPE_READ("type-read"),
 
-     ADMIN_AUDITS("admin-audits"),
+    ADMIN_AUDITS("admin-audits"),
 
-     SERVICE_NOTIFICATION_POST("service-notification-post");
+    SERVICE_NOTIFICATION_POST("service-notification-post");
 
-     private final String type;
+    private final String type;
 
-     AtlasPrivilege(String actionType){
-           this.type = actionType;
-     }
+    AtlasPrivilege(String actionType) {
+        this.type = actionType;
+    }
 
-     public String getType() {
-          return type;
-     }
+    public String getType() {
+        return type;
+    }
 }
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasRelationshipAccessRequest.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasRelationshipAccessRequest.java
index b530c01dd..de4389797 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasRelationshipAccessRequest.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasRelationshipAccessRequest.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -25,11 +25,10 @@ import java.util.Set;
 
 public class AtlasRelationshipAccessRequest extends AtlasAccessRequest {
     private final AtlasTypeRegistry typeRegistry;
-    private final String            relationshipType ;
+    private final String            relationshipType;
     private final AtlasEntityHeader end1Entity;
     private final AtlasEntityHeader end2Entity;
 
-
     public AtlasRelationshipAccessRequest(AtlasTypeRegistry typeRegistry, 
AtlasPrivilege action, String relationshipType, AtlasEntityHeader end1Entity, 
AtlasEntityHeader end2Entity) {
         this(typeRegistry, action, relationshipType, end1Entity, end2Entity, 
null, null);
     }
@@ -55,7 +54,6 @@ public class AtlasRelationshipAccessRequest extends 
AtlasAccessRequest {
         return relationshipType;
     }
 
-
     public Set<String> getEnd1EntityTypeAndAllSuperTypes() {
         return super.getEntityTypeAndAllSuperTypes(end1Entity == null ? null : 
end1Entity.getTypeName(), typeRegistry);
     }
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasSearchResultScrubRequest.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasSearchResultScrubRequest.java
index 63468a7a3..52849dea4 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasSearchResultScrubRequest.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasSearchResultScrubRequest.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -26,7 +26,6 @@ public class AtlasSearchResultScrubRequest extends 
AtlasAccessRequest {
     private final AtlasTypeRegistry typeRegistry;
     private final AtlasSearchResult searchResult;
 
-
     public AtlasSearchResultScrubRequest(AtlasTypeRegistry typeRegistry, 
AtlasSearchResult searchResult) {
         this(typeRegistry, searchResult, null, null);
     }
@@ -38,7 +37,9 @@ public class AtlasSearchResultScrubRequest extends 
AtlasAccessRequest {
         this.searchResult = searchResult;
     }
 
-    public AtlasTypeRegistry getTypeRegistry() { return typeRegistry; }
+    public AtlasTypeRegistry getTypeRegistry() {
+        return typeRegistry;
+    }
 
     public AtlasSearchResult getSearchResult() {
         return searchResult;
@@ -51,5 +52,3 @@ public class AtlasSearchResultScrubRequest extends 
AtlasAccessRequest {
                 ", forwardedAddresses=" + getForwardedAddresses() + ", 
remoteIPAddress=" + getRemoteIPAddress() + "]";
     }
 }
-
-
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasTypeAccessRequest.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasTypeAccessRequest.java
index 510be3522..e645e3087 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasTypeAccessRequest.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasTypeAccessRequest.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -24,7 +24,6 @@ import java.util.Set;
 public class AtlasTypeAccessRequest extends AtlasAccessRequest {
     private final AtlasBaseTypeDef typeDef;
 
-
     public AtlasTypeAccessRequest(AtlasPrivilege action, AtlasBaseTypeDef 
typeDef) {
         super(action);
 
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasTypesDefFilterRequest.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasTypesDefFilterRequest.java
index a2dc11f8f..ed40a5c68 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/AtlasTypesDefFilterRequest.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/AtlasTypesDefFilterRequest.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -24,7 +24,6 @@ import java.util.Set;
 public class AtlasTypesDefFilterRequest extends AtlasAccessRequest {
     private final AtlasTypesDef typesDef;
 
-
     public AtlasTypesDefFilterRequest(AtlasTypesDef typesDef) {
         super(AtlasPrivilege.TYPE_READ);
 
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthorizer.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthorizer.java
index d80cab4bc..e5687249d 100755
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthorizer.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthorizer.java
@@ -6,9 +6,9 @@
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -18,18 +18,22 @@
 
 package org.apache.atlas.authorize.simple;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Set;
-
 import org.apache.atlas.ApplicationProperties;
 import org.apache.atlas.AtlasException;
-import org.apache.atlas.authorize.*;
-import org.apache.atlas.authorize.simple.AtlasSimpleAuthzPolicy.*;
+import org.apache.atlas.authorize.AtlasAccessRequest;
+import org.apache.atlas.authorize.AtlasAdminAccessRequest;
+import org.apache.atlas.authorize.AtlasAuthorizer;
+import org.apache.atlas.authorize.AtlasEntityAccessRequest;
+import org.apache.atlas.authorize.AtlasPrivilege;
+import org.apache.atlas.authorize.AtlasRelationshipAccessRequest;
+import org.apache.atlas.authorize.AtlasSearchResultScrubRequest;
+import org.apache.atlas.authorize.AtlasTypeAccessRequest;
+import org.apache.atlas.authorize.AtlasTypesDefFilterRequest;
+import 
org.apache.atlas.authorize.simple.AtlasSimpleAuthzPolicy.AtlasAdminPermission;
+import org.apache.atlas.authorize.simple.AtlasSimpleAuthzPolicy.AtlasAuthzRole;
+import 
org.apache.atlas.authorize.simple.AtlasSimpleAuthzPolicy.AtlasEntityPermission;
+import 
org.apache.atlas.authorize.simple.AtlasSimpleAuthzPolicy.AtlasRelationshipPermission;
+import 
org.apache.atlas.authorize.simple.AtlasSimpleAuthzPolicy.AtlasTypePermission;
 import org.apache.atlas.model.discovery.AtlasSearchResult;
 import org.apache.atlas.model.discovery.AtlasSearchResult.AtlasFullTextResult;
 import org.apache.atlas.model.instance.AtlasEntityHeader;
@@ -42,6 +46,13 @@ import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashSet;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Set;
+
 import static 
org.apache.atlas.authorize.AtlasPrivilege.ENTITY_ADD_CLASSIFICATION;
 import static 
org.apache.atlas.authorize.AtlasPrivilege.ENTITY_REMOVE_CLASSIFICATION;
 import static 
org.apache.atlas.authorize.AtlasPrivilege.ENTITY_UPDATE_CLASSIFICATION;
@@ -50,22 +61,15 @@ import static 
org.apache.atlas.authorize.AtlasPrivilege.TYPE_DELETE;
 import static org.apache.atlas.authorize.AtlasPrivilege.TYPE_READ;
 import static org.apache.atlas.authorize.AtlasPrivilege.TYPE_UPDATE;
 
-
 public final class AtlasSimpleAuthorizer implements AtlasAuthorizer {
     private static final Logger LOG = 
LoggerFactory.getLogger(AtlasSimpleAuthorizer.class);
 
-    private final static String WILDCARD_ASTERISK = "*";
-
-    private final static Set<AtlasPrivilege> CLASSIFICATION_PRIVILEGES = new 
HashSet<AtlasPrivilege>() {{
-                                                                               
 add(ENTITY_ADD_CLASSIFICATION);
-                                                                               
 add(ENTITY_REMOVE_CLASSIFICATION);
-                                                                               
 add(ENTITY_UPDATE_CLASSIFICATION);
-                                                                            }};
+    private static final Set<AtlasPrivilege> CLASSIFICATION_PRIVILEGES = new 
HashSet<>();
+    private static final String              REGEX_MATCHALL            = ".*";
+    private static final String              WILDCARD_ASTERISK         = "*";
 
     private AtlasSimpleAuthzPolicy authzPolicy;
 
-    private final static String REGEX_MATCHALL = ".*";
-
     public AtlasSimpleAuthorizer() {
     }
 
@@ -73,11 +77,7 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
     public void init() {
         LOG.info("==> SimpleAtlasAuthorizer.init()");
 
-        InputStream inputStream = null;
-
-        try {
-            inputStream = 
ApplicationProperties.getFileAsInputStream(ApplicationProperties.get(), 
"atlas.authorizer.simple.authz.policy.file", "atlas-simple-authz-policy.json");
-
+        try (InputStream inputStream = 
ApplicationProperties.getFileAsInputStream(ApplicationProperties.get(), 
"atlas.authorizer.simple.authz.policy.file", "atlas-simple-authz-policy.json")) 
{
             authzPolicy = AtlasJson.fromJson(inputStream, 
AtlasSimpleAuthzPolicy.class);
 
             addImpliedTypeReadPrivilege(authzPolicy);
@@ -85,14 +85,6 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
             LOG.error("SimpleAtlasAuthorizer.init(): initialization failed", 
e);
 
             throw new RuntimeException(e);
-        } finally {
-            if (inputStream != null) {
-                try {
-                    inputStream.close();
-                } catch (IOException excp) {
-                    // ignore
-                }
-            }
         }
 
         LOG.info("<== SimpleAtlasAuthorizer.init()");
@@ -108,13 +100,10 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
     }
 
     @Override
-    public boolean isAccessAllowed(AtlasAdminAccessRequest request) throws 
AtlasAuthorizationException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("==> SimpleAtlasAuthorizer.isAccessAllowed({})", 
request);
-        }
-
-        boolean ret = false;
+    public boolean isAccessAllowed(AtlasAdminAccessRequest request) {
+        LOG.debug("==> SimpleAtlasAuthorizer.isAccessAllowed({})", request);
 
+        boolean     ret   = false;
         Set<String> roles = getRoles(request.getUser(), 
request.getUserGroups());
 
         for (String role : roles) {
@@ -133,19 +122,60 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
             }
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("<== SimpleAtlasAuthorizer.isAccessAllowed({}): {}", 
request, ret);
-        }
+        LOG.debug("<== SimpleAtlasAuthorizer.isAccessAllowed({}): {}", 
request, ret);
 
         return ret;
     }
 
     @Override
-    public boolean isAccessAllowed(AtlasTypeAccessRequest request) throws 
AtlasAuthorizationException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("==> SimpleAtlasAuthorizer.isAccessAllowed({})", 
request);
+    public boolean isAccessAllowed(AtlasEntityAccessRequest request) {
+        LOG.debug("==> SimpleAtlasAuthorizer.isAccessAllowed({})", request);
+
+        boolean           ret           = false;
+        final String      action        = request.getAction() != null ? 
request.getAction().getType() : null;
+        final Set<String> entityTypes   = 
request.getEntityTypeAndAllSuperTypes();
+        final String      entityId      = request.getEntityId();
+        final String      attribute     = request.getAttributeName();
+        final Set<String> entClsToAuthz = new 
HashSet<>(request.getEntityClassifications());
+        final Set<String> roles         = getRoles(request.getUser(), 
request.getUserGroups());
+
+        for (String role : roles) {
+            List<AtlasEntityPermission> permissions = 
getEntityPermissionsForRole(role);
+
+            if (permissions != null) {
+                for (AtlasEntityPermission permission : permissions) {
+                    if (isMatch(action, permission.getPrivileges()) && 
isMatchAny(entityTypes, permission.getEntityTypes()) &&
+                            isMatch(entityId, permission.getEntityIds()) && 
isMatch(attribute, permission.getAttributes()) &&
+                            isLabelMatch(request, permission) && 
isBusinessMetadataMatch(request, permission) && isClassificationMatch(request, 
permission)) {
+                        // 1. entity could have multiple classifications
+                        // 2. access for these classifications could be 
granted by multiple AtlasEntityPermission entries
+                        // 3. classifications allowed by the current 
permission will be removed from entClsToAuthz
+                        // 4. request will be allowed once entClsToAuthz is 
empty i.e. user has permission for all classifications
+                        entClsToAuthz.removeIf(entityClassification -> 
isMatchAny(request.getClassificationTypeAndAllSuperTypes(entityClassification), 
permission.getEntityClassifications()));
+
+                        ret = CollectionUtils.isEmpty(entClsToAuthz);
+
+                        if (ret) {
+                            break;
+                        }
+                    }
+                }
+            }
         }
 
+        if (!ret) {
+            LOG.debug("isAccessAllowed={}; classificationsWithNoAccess={}", 
ret, entClsToAuthz);
+        }
+
+        LOG.debug("<== SimpleAtlasAuthorizer.isAccessAllowed({}): {}", 
request, ret);
+
+        return ret;
+    }
+
+    @Override
+    public boolean isAccessAllowed(AtlasTypeAccessRequest request) {
+        LOG.debug("==> SimpleAtlasAuthorizer.isAccessAllowed({})", request);
+
         boolean ret = false;
 
         Set<String> roles = getRoles(request.getUser(), 
request.getUserGroups());
@@ -160,8 +190,8 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
 
                 for (AtlasTypePermission permission : permissions) {
                     if (isMatch(action, permission.getPrivileges()) &&
-                        isMatch(typeCategory, permission.getTypeCategories()) 
&&
-                        isMatch(typeName, permission.getTypeNames())) {
+                            isMatch(typeCategory, 
permission.getTypeCategories()) &&
+                            isMatch(typeName, permission.getTypeNames())) {
                         ret = true;
 
                         break;
@@ -170,15 +200,13 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
             }
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("<== SimpleAtlasAuthorizer.isAccessAllowed({}): {}", 
request, ret);
-        }
+        LOG.debug("<== SimpleAtlasAuthorizer.isAccessAllowed({}): {}", 
request, ret);
 
         return ret;
     }
 
     @Override
-    public boolean isAccessAllowed(AtlasRelationshipAccessRequest request) 
throws AtlasAuthorizationException {
+    public boolean isAccessAllowed(AtlasRelationshipAccessRequest request) {
         final Set<String> roles                       = 
getRoles(request.getUser(), request.getUserGroups());
         final String      relationShipType            = 
request.getRelationshipType();
         final Set<String> end1EntityTypeAndSuperTypes = 
request.getEnd1EntityTypeAndAllSuperTypes();
@@ -203,29 +231,17 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
                 if (isMatch(relationShipType, 
permission.getRelationshipTypes()) && isMatch(action, 
permission.getPrivileges())) {
                     //End1 permission check
                     if (!hasEnd1EntityAccess) {
-                         if (isMatchAny(end1EntityTypeAndSuperTypes, 
permission.getEnd1EntityType()) && isMatch(end1EntityId, 
permission.getEnd1EntityId())) {
-                             for (Iterator<String> iter = 
end1Classifications.iterator(); iter.hasNext();) {
-                                 String entityClassification = iter.next();
+                        if (isMatchAny(end1EntityTypeAndSuperTypes, 
permission.getEnd1EntityType()) && isMatch(end1EntityId, 
permission.getEnd1EntityId())) {
+                            end1Classifications.removeIf(entityClassification 
-> 
isMatchAny(request.getClassificationTypeAndAllSuperTypes(entityClassification), 
permission.getEnd1EntityClassification()));
 
-                                 if 
(isMatchAny(request.getClassificationTypeAndAllSuperTypes(entityClassification),
 permission.getEnd1EntityClassification())) {
-                                     iter.remove();
-                                 }
-                             }
-
-                             hasEnd1EntityAccess = 
CollectionUtils.isEmpty(end1Classifications);
+                            hasEnd1EntityAccess = 
CollectionUtils.isEmpty(end1Classifications);
                         }
                     }
 
                     //End2 permission chech
                     if (!hasEnd2EntityAccess) {
                         if (isMatchAny(end2EntityTypeAndSuperTypes, 
permission.getEnd2EntityType()) && isMatch(end2EntityId, 
permission.getEnd2EntityId())) {
-                            for (Iterator<String> iter = 
end2Classifications.iterator(); iter.hasNext();) {
-                                String entityClassification = iter.next();
-
-                                if 
(isMatchAny(request.getClassificationTypeAndAllSuperTypes(entityClassification),
 permission.getEnd2EntityClassification())) {
-                                    iter.remove();
-                                }
-                            }
+                            end2Classifications.removeIf(entityClassification 
-> 
isMatchAny(request.getClassificationTypeAndAllSuperTypes(entityClassification), 
permission.getEnd2EntityClassification()));
 
                             hasEnd2EntityAccess = 
CollectionUtils.isEmpty(end2Classifications);
                         }
@@ -238,66 +254,8 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
     }
 
     @Override
-    public boolean isAccessAllowed(AtlasEntityAccessRequest request) throws 
AtlasAuthorizationException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("==> SimpleAtlasAuthorizer.isAccessAllowed({})", 
request);
-        }
-
-        boolean           ret            = false;
-        final String      action         = request.getAction() != null ? 
request.getAction().getType() : null;
-        final Set<String> entityTypes    = 
request.getEntityTypeAndAllSuperTypes();
-        final String      entityId       = request.getEntityId();
-        final String      attribute      = request.getAttributeName();
-        final Set<String> entClsToAuthz  = new 
HashSet<>(request.getEntityClassifications());
-        final Set<String> roles          = getRoles(request.getUser(), 
request.getUserGroups());
-
-        for (String role : roles) {
-            List<AtlasEntityPermission> permissions = 
getEntityPermissionsForRole(role);
-
-            if (permissions != null) {
-                for (AtlasEntityPermission permission : permissions) {
-                    if (isMatch(action, permission.getPrivileges()) && 
isMatchAny(entityTypes, permission.getEntityTypes()) &&
-                        isMatch(entityId, permission.getEntityIds()) && 
isMatch(attribute, permission.getAttributes()) &&
-                        isLabelMatch(request, permission) && 
isBusinessMetadataMatch(request, permission) && isClassificationMatch(request, 
permission)) {
-
-                        // 1. entity could have multiple classifications
-                        // 2. access for these classifications could be 
granted by multiple AtlasEntityPermission entries
-                        // 3. classifications allowed by the current 
permission will be removed from entClsToAuthz
-                        // 4. request will be allowed once entClsToAuthz is 
empty i.e. user has permission for all classifications
-                        for (Iterator<String> iter = entClsToAuthz.iterator(); 
iter.hasNext(); ) {
-                            String entityClassification = iter.next();
-
-                            if 
(isMatchAny(request.getClassificationTypeAndAllSuperTypes(entityClassification),
 permission.getEntityClassifications())) {
-                                iter.remove();
-                            }
-                        }
-
-                        ret = CollectionUtils.isEmpty(entClsToAuthz);
-
-                        if (ret) {
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-
-        if (LOG.isDebugEnabled()) {
-            if (!ret) {
-                LOG.debug("isAccessAllowed={}; 
classificationsWithNoAccess={}", ret, entClsToAuthz);
-            }
-
-            LOG.debug("<== SimpleAtlasAuthorizer.isAccessAllowed({}): {}", 
request, ret);
-        }
-
-        return ret;
-    }
-
-    @Override
-    public void scrubSearchResults(AtlasSearchResultScrubRequest request) 
throws AtlasAuthorizationException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("==> SimpleAtlasAuthorizer.scrubSearchResults({})", 
request);
-        }
+    public void scrubSearchResults(AtlasSearchResultScrubRequest request) {
+        LOG.debug("==> SimpleAtlasAuthorizer.scrubSearchResults({})", request);
 
         final AtlasSearchResult result = request.getSearchResult();
 
@@ -321,13 +279,11 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
             }
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("<== SimpleAtlasAuthorizer.scrubSearchResults({}): {}", 
request, result);
-        }
+        LOG.debug("<== SimpleAtlasAuthorizer.scrubSearchResults({}): {}", 
request, result);
     }
 
     @Override
-    public void filterTypesDef(AtlasTypesDefFilterRequest request) throws 
AtlasAuthorizationException {
+    public void filterTypesDef(AtlasTypesDefFilterRequest request) {
         AtlasTypesDef typesDef = request.getTypesDef();
 
         filterTypes(request, typesDef.getEnumDefs());
@@ -361,9 +317,7 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
             }
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("<== getRoles({}, {}): {}", userName, userGroups, ret);
-        }
+        LOG.debug("<== getRoles({}, {}): {}", userName, userGroups, ret);
 
         return ret;
     }
@@ -404,7 +358,6 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
         return ret;
     }
 
-
     private List<AtlasRelationshipPermission> 
getRelationshipPermissionsForRole(String roleName) {
         List<AtlasRelationshipPermission> ret = null;
 
@@ -418,11 +371,9 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
     }
 
     private boolean isMatch(String value, List<String> patterns) {
-        boolean ret = false;
+        boolean ret = value == null;
 
-        if (value == null) {
-            ret = true;
-        } if (CollectionUtils.isNotEmpty(patterns)) {
+        if (CollectionUtils.isNotEmpty(patterns)) {
             for (String pattern : patterns) {
                 if (isMatch(value, pattern)) {
                     ret = true;
@@ -432,7 +383,7 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
             }
         }
 
-        if (!ret && LOG.isDebugEnabled()) {
+        if (!ret) {
             LOG.debug("<== isMatch({}, {}): {}", value, patterns, ret);
         }
 
@@ -440,11 +391,9 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
     }
 
     private boolean isMatchAny(Set<String> values, List<String> patterns) {
-        boolean ret = false;
+        boolean ret = CollectionUtils.isEmpty(values);
 
-        if (CollectionUtils.isEmpty(values)) {
-            ret = true;
-        }if (CollectionUtils.isNotEmpty(patterns)) {
+        if (CollectionUtils.isNotEmpty(patterns)) {
             for (String value : values) {
                 if (isMatch(value, patterns)) {
                     ret = true;
@@ -454,7 +403,7 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
             }
         }
 
-        if (!ret && LOG.isDebugEnabled()) {
+        if (!ret) {
             LOG.debug("<== isMatchAny({}, {}): {}", values, patterns, ret);
         }
 
@@ -473,7 +422,7 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
         return ret;
     }
 
-    private void checkAccessAndScrub(AtlasEntityHeader entity, 
AtlasSearchResultScrubRequest request) throws AtlasAuthorizationException {
+    private void checkAccessAndScrub(AtlasEntityHeader entity, 
AtlasSearchResultScrubRequest request) {
         if (entity != null && request != null) {
             final AtlasEntityAccessRequest entityAccessRequest = new 
AtlasEntityAccessRequest(request.getTypeRegistry(), AtlasPrivilege.ENTITY_READ, 
entity, request.getUser(), request.getUserGroups());
 
@@ -486,20 +435,20 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
     }
 
     private boolean isLabelMatch(AtlasEntityAccessRequest request, 
AtlasEntityPermission permission) {
-        return (AtlasPrivilege.ENTITY_ADD_LABEL.equals(request.getAction()) || 
AtlasPrivilege.ENTITY_REMOVE_LABEL.equals(request.getAction())) ? 
isMatch(request.getLabel(), permission.getLabels()) : true;
+        return !AtlasPrivilege.ENTITY_ADD_LABEL.equals(request.getAction()) && 
!AtlasPrivilege.ENTITY_REMOVE_LABEL.equals(request.getAction()) || 
isMatch(request.getLabel(), permission.getLabels());
     }
 
     private boolean isBusinessMetadataMatch(AtlasEntityAccessRequest request, 
AtlasEntityPermission permission) {
-        return 
AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA.equals(request.getAction()) ? 
isMatch(request.getBusinessMetadata(), permission.getBusinessMetadata()) : true;
+        return 
!AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA.equals(request.getAction()) || 
isMatch(request.getBusinessMetadata(), permission.getBusinessMetadata());
     }
 
     private boolean isClassificationMatch(AtlasEntityAccessRequest request, 
AtlasEntityPermission permission) {
-        return (CLASSIFICATION_PRIVILEGES.contains(request.getAction()) && 
request.getClassification() != null) ? 
isMatch(request.getClassification().getTypeName(), 
permission.getClassifications()) : true;
+        return !CLASSIFICATION_PRIVILEGES.contains(request.getAction()) || 
request.getClassification() == null || 
isMatch(request.getClassification().getTypeName(), 
permission.getClassifications());
     }
 
-    private void filterTypes(AtlasAccessRequest request, List<? extends 
AtlasBaseTypeDef> typeDefs)throws AtlasAuthorizationException {
+    private void filterTypes(AtlasAccessRequest request, List<? extends 
AtlasBaseTypeDef> typeDefs) {
         if (typeDefs != null) {
-            for (ListIterator<? extends AtlasBaseTypeDef> iter = 
typeDefs.listIterator(); iter.hasNext();) {
+            for (ListIterator<? extends AtlasBaseTypeDef> iter = 
typeDefs.listIterator(); iter.hasNext(); ) {
                 AtlasBaseTypeDef       typeDef     = iter.next();
                 AtlasTypeAccessRequest typeRequest = new 
AtlasTypeAccessRequest(request.getAction(), typeDef, request.getUser(), 
request.getUserGroups());
 
@@ -536,6 +485,10 @@ public final class AtlasSimpleAuthorizer implements 
AtlasAuthorizer {
             }
         }
     }
-}
-
 
+    static {
+        CLASSIFICATION_PRIVILEGES.add(ENTITY_ADD_CLASSIFICATION);
+        CLASSIFICATION_PRIVILEGES.add(ENTITY_REMOVE_CLASSIFICATION);
+        CLASSIFICATION_PRIVILEGES.add(ENTITY_UPDATE_CLASSIFICATION);
+    }
+}
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthzPolicy.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthzPolicy.java
index ee13233ef..b4899a8bd 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthzPolicy.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthzPolicy.java
@@ -1,13 +1,14 @@
-/** Licensed to the Apache Software Foundation (ASF) under one
+/**
+ * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -18,11 +19,12 @@ package org.apache.atlas.authorize.simple;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonInclude;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
+
 import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
@@ -30,9 +32,9 @@ import java.util.Map;
 import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
 import static 
com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
 
-@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, 
fieldVisibility=NONE)
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-@JsonIgnoreProperties(ignoreUnknown=true)
+@JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = 
PUBLIC_ONLY, fieldVisibility = NONE)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.PROPERTY)
 public class AtlasSimpleAuthzPolicy implements Serializable {
@@ -42,7 +44,6 @@ public class AtlasSimpleAuthzPolicy implements Serializable {
     private Map<String, List<String>>   userRoles;
     private Map<String, List<String>>   groupRoles;
 
-
     public Map<String, AtlasAuthzRole> getRoles() {
         return roles;
     }
@@ -67,10 +68,9 @@ public class AtlasSimpleAuthzPolicy implements Serializable {
         this.groupRoles = groupRoles;
     }
 
-
-    @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, 
setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
-    @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-    @JsonIgnoreProperties(ignoreUnknown=true)
+    @JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = 
PUBLIC_ONLY, fieldVisibility = NONE)
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @JsonIgnoreProperties(ignoreUnknown = true)
     @XmlRootElement
     @XmlAccessorType(XmlAccessType.PROPERTY)
     public static class AtlasAuthzRole implements Serializable {
@@ -122,12 +122,11 @@ public class AtlasSimpleAuthzPolicy implements 
Serializable {
         public void 
setRelationshipPermissions(List<AtlasRelationshipPermission> 
relationshipPermissions) {
             this.relationshipPermissions = relationshipPermissions;
         }
-
     }
 
-    @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, 
setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
-    @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-    @JsonIgnoreProperties(ignoreUnknown=true)
+    @JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = 
PUBLIC_ONLY, fieldVisibility = NONE)
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @JsonIgnoreProperties(ignoreUnknown = true)
     @XmlRootElement
     @XmlAccessorType(XmlAccessType.PROPERTY)
     public static class AtlasAdminPermission implements Serializable {
@@ -151,9 +150,9 @@ public class AtlasSimpleAuthzPolicy implements Serializable 
{
         }
     }
 
-    @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, 
setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
-    @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-    @JsonIgnoreProperties(ignoreUnknown=true)
+    @JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = 
PUBLIC_ONLY, fieldVisibility = NONE)
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @JsonIgnoreProperties(ignoreUnknown = true)
     @XmlRootElement
     @XmlAccessorType(XmlAccessType.PROPERTY)
     public static class AtlasTypePermission implements Serializable {
@@ -197,9 +196,9 @@ public class AtlasSimpleAuthzPolicy implements Serializable 
{
         }
     }
 
-    @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, 
setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
-    @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-    @JsonIgnoreProperties(ignoreUnknown=true)
+    @JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = 
PUBLIC_ONLY, fieldVisibility = NONE)
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @JsonIgnoreProperties(ignoreUnknown = true)
     @XmlRootElement
     @XmlAccessorType(XmlAccessType.PROPERTY)
     public static class AtlasEntityPermission implements Serializable {
@@ -297,10 +296,9 @@ public class AtlasSimpleAuthzPolicy implements 
Serializable {
         }
     }
 
-
-    @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, 
setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
-    @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-    @JsonIgnoreProperties(ignoreUnknown=true)
+    @JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = 
PUBLIC_ONLY, fieldVisibility = NONE)
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @JsonIgnoreProperties(ignoreUnknown = true)
     @XmlRootElement
     @XmlAccessorType(XmlAccessType.PROPERTY)
     public static class AtlasRelationshipPermission implements Serializable {
@@ -315,7 +313,6 @@ public class AtlasSimpleAuthzPolicy implements Serializable 
{
         private List<String> end2EntityId;             // value of end2 
entity-unique attribute, wildcards supported
         private List<String> end2EntityClassification; // name of end2 
classification-type, wildcards supported
 
-
         public AtlasRelationshipPermission() {
         }
 
diff --git 
a/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthzUpdateTool.java
 
b/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthzUpdateTool.java
index fddde986b..83f3786a8 100644
--- 
a/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthzUpdateTool.java
+++ 
b/authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthzUpdateTool.java
@@ -1,13 +1,14 @@
-/** Licensed to the Apache Software Foundation (ASF) under one
+/**
+ * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
@@ -17,52 +18,46 @@
 
 package org.apache.atlas.authorize.simple;
 
-import java.io.IOException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import org.apache.atlas.authorize.simple.AtlasSimpleAuthzPolicy.AtlasAuthzRole;
+import 
org.apache.atlas.authorize.simple.AtlasSimpleAuthzPolicy.AtlasRelationshipPermission;
 
 import java.io.File;
+import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
-
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.*;
-import com.fasterxml.jackson.databind.SerializationFeature;
-
 public class AtlasSimpleAuthzUpdateTool {
-
+    private AtlasSimpleAuthzUpdateTool() {
+        // to block instantiation
+    }
 
     public static void main(String[] args) {
-
-        if (args != null & args.length > 0) {
+        if (args != null && args.length > 0) {
             updateSimpleAuthzJsonWithRelationshipPermissions(args[0]);
         } else {
             System.out.println("Provide Atlas conf path");
         }
-
     }
 
-
     public static void updateSimpleAuthzJsonWithRelationshipPermissions(String 
jsonConfPath) {
-
-        List<String> wildCard = new ArrayList<String>();
-        wildCard.add(".*");
+        List<String> wildCard = new 
ArrayList<>(Collections.singletonList(".*"));
 
         try {
-
-            ObjectMapper mapper = new ObjectMapper();
-            AtlasSimpleAuthzPolicy authzPolicy = mapper.readValue(new 
File(jsonConfPath + "/atlas-simple-authz-policy.json"), 
AtlasSimpleAuthzPolicy.class);
-
-
-            AtlasSimpleAuthzPolicy.AtlasAuthzRole dataAdmin = 
authzPolicy.getRoles().get("ROLE_ADMIN");
-            boolean permissionUpdated = false;
-
+            ObjectMapper           mapper            = new ObjectMapper();
+            AtlasSimpleAuthzPolicy authzPolicy       = mapper.readValue(new 
File(jsonConfPath + "/atlas-simple-authz-policy.json"), 
AtlasSimpleAuthzPolicy.class);
+            AtlasAuthzRole         dataAdmin         = 
authzPolicy.getRoles().get("ROLE_ADMIN");
+            boolean                permissionUpdated = false;
 
             if (dataAdmin != null && dataAdmin.getRelationshipPermissions() == 
null) {
-                AtlasSimpleAuthzPolicy.AtlasRelationshipPermission 
relationshipPermissions = new 
AtlasSimpleAuthzPolicy.AtlasRelationshipPermission();
-                relationshipPermissions.setPrivileges(wildCard);
+                AtlasRelationshipPermission relationshipPermissions = new 
AtlasRelationshipPermission();
 
+                relationshipPermissions.setPrivileges(wildCard);
                 relationshipPermissions.setRelationshipTypes(wildCard);
 
                 relationshipPermissions.setEnd1EntityClassification(wildCard);
@@ -73,25 +68,23 @@ public class AtlasSimpleAuthzUpdateTool {
                 relationshipPermissions.setEnd2EntityId(wildCard);
                 relationshipPermissions.setEnd2EntityType(wildCard);
 
-                List<AtlasSimpleAuthzPolicy.AtlasRelationshipPermission> 
relationshipPermissionsList = new 
ArrayList<AtlasSimpleAuthzPolicy.AtlasRelationshipPermission>();
-
-
-                relationshipPermissionsList.add(relationshipPermissions);
+                List<AtlasRelationshipPermission> relationshipPermissionsList 
= new ArrayList<>(Collections.singletonList(relationshipPermissions));
 
                 
dataAdmin.setRelationshipPermissions(relationshipPermissionsList);
+
                 permissionUpdated = true;
             }
 
-
-            AtlasSimpleAuthzPolicy.AtlasAuthzRole dataSteward = 
authzPolicy.getRoles().get("DATA_STEWARD");
-            List<String> permissiondataSteward = new ArrayList<String>();
+            AtlasAuthzRole dataSteward           = 
authzPolicy.getRoles().get("DATA_STEWARD");
+            List<String>   permissiondataSteward = new ArrayList<>();
 
             permissiondataSteward.add("add-relationship");
             permissiondataSteward.add("update-relationship");
             permissiondataSteward.add("remove-relationship");
 
             if (dataSteward != null && 
dataSteward.getRelationshipPermissions() == null) {
-                AtlasSimpleAuthzPolicy.AtlasRelationshipPermission 
relationshipPermissions = new 
AtlasSimpleAuthzPolicy.AtlasRelationshipPermission();
+                AtlasRelationshipPermission relationshipPermissions = new 
AtlasRelationshipPermission();
+
                 relationshipPermissions.setPrivileges(permissiondataSteward);
                 relationshipPermissions.setRelationshipTypes(wildCard);
 
@@ -103,29 +96,26 @@ public class AtlasSimpleAuthzUpdateTool {
                 relationshipPermissions.setEnd2EntityId(wildCard);
                 relationshipPermissions.setEnd2EntityType(wildCard);
 
+                List<AtlasRelationshipPermission> relationshipPermissionsList 
= new ArrayList<>(Collections.singletonList(relationshipPermissions));
 
-                List<AtlasSimpleAuthzPolicy.AtlasRelationshipPermission> 
relationshipPermissionsList = new 
ArrayList<AtlasSimpleAuthzPolicy.AtlasRelationshipPermission>();
-                relationshipPermissionsList.add(relationshipPermissions);
                 
dataSteward.setRelationshipPermissions(relationshipPermissionsList);
+
                 permissionUpdated = true;
             }
 
-            if(permissionUpdated) {
+            if (permissionUpdated) {
                 writeUsingFiles(jsonConfPath + 
"/atlas-simple-authz-policy.json", toJson(authzPolicy, mapper));
             }
-
-
         } catch (Exception e) {
             System.err.println(" Error while updating JSON " + e.getMessage());
         }
-
     }
 
-
     public static String toJson(Object obj, ObjectMapper mapper) {
         mapper.enable(SerializationFeature.INDENT_OUTPUT); // to beautify json
 
         String ret;
+
         try {
             if (obj instanceof JsonNode && ((JsonNode) obj).isTextual()) {
                 ret = ((JsonNode) obj).textValue();
@@ -133,18 +123,17 @@ public class AtlasSimpleAuthzUpdateTool {
                 ret = mapper.writeValueAsString(obj);
             }
         } catch (IOException e) {
-
             ret = null;
         }
+
         return ret;
     }
 
-
     private static void writeUsingFiles(String file, String data) {
         try {
-            Files.write(Paths.get( file ), data.getBytes());
+            Files.write(Paths.get(file), data.getBytes());
         } catch (IOException e) {
             System.err.println(" Error while writeUsingFiles JSON " + 
e.getMessage());
         }
     }
-}
\ No newline at end of file
+}
diff --git 
a/authorization/src/test/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthorizerTest.java
 
b/authorization/src/test/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthorizerTest.java
index 8d38ebe8c..406af0f7f 100644
--- 
a/authorization/src/test/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthorizerTest.java
+++ 
b/authorization/src/test/java/org/apache/atlas/authorize/simple/AtlasSimpleAuthorizerTest.java
@@ -16,16 +16,22 @@
  */
 package org.apache.atlas.authorize.simple;
 
-import org.apache.atlas.authorize.*;
+import org.apache.atlas.authorize.AtlasAccessRequest;
+import org.apache.atlas.authorize.AtlasAuthorizationException;
+import org.apache.atlas.authorize.AtlasAuthorizer;
+import org.apache.atlas.authorize.AtlasAuthorizerFactory;
+import org.apache.atlas.authorize.AtlasEntityAccessRequest;
+import org.apache.atlas.authorize.AtlasPrivilege;
 import org.apache.atlas.model.instance.AtlasClassification;
 import org.apache.atlas.model.instance.AtlasEntityHeader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.testng.AssertJUnit;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
-import org.testng.AssertJUnit;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
@@ -34,7 +40,7 @@ import java.util.Map;
 import java.util.Set;
 
 public class AtlasSimpleAuthorizerTest {
-    private static Logger LOG = 
LoggerFactory.getLogger(AtlasSimpleAuthorizerTest.class);
+    private static final Logger LOG = 
LoggerFactory.getLogger(AtlasSimpleAuthorizerTest.class);
 
     private static final String USER_ADMIN            = "admin";
     private static final String USER_DATA_SCIENTIST   = "dataScientist";
@@ -45,29 +51,9 @@ public class AtlasSimpleAuthorizerTest {
     private static final String USER_IN_ADMIN_GROUP   = "admin-group-user";
     private static final String USER_IN_UNKNOWN_GROUP = "unknown-group-user";
 
-    private static final Map<String, Set<String>> USER_GROUPS = new 
HashMap<String, Set<String>>() {{
-                                                                        
put(USER_ADMIN, Collections.singleton("ROLE_ADMIN"));
-                                                                        
put(USER_DATA_STEWARD, Collections.emptySet());
-                                                                        
put(USER_DATA_SCIENTIST, Collections.emptySet());
-                                                                        
put(USER_DATA_STEWARD_EX, Collections.singleton("DATA_STEWARD_EX"));
-                                                                        
put(USER_FINANCE, Collections.singleton("FINANCE"));
-                                                                        
put(USER_FINANCE_PII, Collections.singleton("FINANCE_PII"));
-                                                                        
put(USER_IN_ADMIN_GROUP, Collections.singleton("ROLE_ADMIN"));
-                                                                        
put(USER_IN_UNKNOWN_GROUP, Collections.singleton("UNKNOWN_GROUP"));
-                                                                    }};
-
-    private static final List<AtlasPrivilege> ENTITY_PRIVILEGES = 
Arrays.asList(AtlasPrivilege.ENTITY_CREATE,
-                                                                               
 AtlasPrivilege.ENTITY_UPDATE,
-                                                                               
 AtlasPrivilege.ENTITY_READ,
-                                                                               
 AtlasPrivilege.ENTITY_ADD_CLASSIFICATION,
-                                                                               
 AtlasPrivilege.ENTITY_UPDATE_CLASSIFICATION,
-                                                                               
 AtlasPrivilege.ENTITY_REMOVE_CLASSIFICATION,
-                                                                               
 AtlasPrivilege.ENTITY_READ_CLASSIFICATION,
-                                                                               
 AtlasPrivilege.ENTITY_ADD_LABEL,
-                                                                               
 AtlasPrivilege.ENTITY_REMOVE_LABEL,
-                                                                               
 AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA);
-
-    private static final List<AtlasPrivilege> LABEL_PRIVILEGES = 
Arrays.asList(AtlasPrivilege.ENTITY_ADD_LABEL, 
AtlasPrivilege.ENTITY_REMOVE_LABEL);
+    private static final Map<String, Set<String>> USER_GROUPS       = new 
HashMap<>();
+    private static final List<AtlasPrivilege>     ENTITY_PRIVILEGES = new 
ArrayList<>();
+    private static final List<AtlasPrivilege>     LABEL_PRIVILEGES  = new 
ArrayList<>();
 
     private String          originalConf;
     private AtlasAuthorizer authorizer;
@@ -94,7 +80,7 @@ public class AtlasSimpleAuthorizerTest {
         authorizer = null;
     }
 
-    @Test(enabled = true)
+    @Test
     public void testAllAllowedForAdminUser() {
         try {
             for (AtlasPrivilege privilege : AtlasPrivilege.values()) {
@@ -104,7 +90,7 @@ public class AtlasSimpleAuthorizerTest {
 
                 boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-                AssertJUnit.assertEquals(privilege.name() + " should have been 
allowed for user " + USER_DATA_SCIENTIST, true, isAccessAllowed);
+                AssertJUnit.assertTrue(privilege.name() + " should have been 
allowed for user " + USER_DATA_SCIENTIST, isAccessAllowed);
             }
         } catch (Exception e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
@@ -113,16 +99,16 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testAddPIIForStewardExUser() {
         try {
-            AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null , AtlasPrivilege.ENTITY_ADD_CLASSIFICATION, null, 
 new AtlasClassification("PII"));
+            AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, AtlasPrivilege.ENTITY_ADD_CLASSIFICATION, null, 
new AtlasClassification("PII"));
 
             setUser(request, USER_DATA_STEWARD_EX);
 
             boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-            AssertJUnit.assertEquals("user " + USER_DATA_STEWARD_EX + " should 
have been allowed to add PII", true, isAccessAllowed);
+            AssertJUnit.assertTrue("user " + USER_DATA_STEWARD_EX + " should 
have been allowed to add PII", isAccessAllowed);
         } catch (Exception e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
 
@@ -130,11 +116,11 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void 
testAddClassificationOnEntityWithClassificationForStewardExUser() {
         try {
-
             AtlasEntityHeader entityHeader = new AtlasEntityHeader();
+
             entityHeader.setClassifications(Arrays.asList(new 
AtlasClassification("PII_1"), new AtlasClassification("PII_2")));
 
             AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, AtlasPrivilege.ENTITY_ADD_CLASSIFICATION, 
entityHeader, new AtlasClassification("PII"));
@@ -143,7 +129,7 @@ public class AtlasSimpleAuthorizerTest {
 
             boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-            AssertJUnit.assertEquals("user " + USER_DATA_STEWARD_EX + " should 
have been allowed to add PII", true, isAccessAllowed);
+            AssertJUnit.assertTrue("user " + USER_DATA_STEWARD_EX + " should 
have been allowed to add PII", isAccessAllowed);
         } catch (Exception e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
 
@@ -151,11 +137,11 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void 
testAddClassificationOnEntityWithClassificationForStewardExUserShouldFail() {
         try {
-
             AtlasEntityHeader entityHeader = new AtlasEntityHeader();
+
             entityHeader.setClassifications(Arrays.asList(new 
AtlasClassification("TAG1"), new AtlasClassification("TAG2")));
 
             AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, AtlasPrivilege.ENTITY_ADD_CLASSIFICATION, 
entityHeader, new AtlasClassification("PII"));
@@ -164,7 +150,7 @@ public class AtlasSimpleAuthorizerTest {
 
             boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-            AssertJUnit.assertEquals("user " + USER_DATA_STEWARD_EX + " should 
have not been allowed to add PII on entity with TAG1,TAG2 classification ", 
false, isAccessAllowed);
+            AssertJUnit.assertFalse("user " + USER_DATA_STEWARD_EX + " should 
have not been allowed to add PII on entity with TAG1,TAG2 classification ", 
isAccessAllowed);
         } catch (Exception e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
 
@@ -172,16 +158,16 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testAddPIIForStewardUser() {
         try {
-            AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null , AtlasPrivilege.ENTITY_ADD_CLASSIFICATION, null, 
 new AtlasClassification("PII"));
+            AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, AtlasPrivilege.ENTITY_ADD_CLASSIFICATION, null, 
new AtlasClassification("PII"));
 
             setUser(request, USER_DATA_STEWARD);
 
             boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-            AssertJUnit.assertEquals("user " + USER_DATA_STEWARD + " should 
not have been allowed to add PII", false, isAccessAllowed);
+            AssertJUnit.assertFalse("user " + USER_DATA_STEWARD + " should not 
have been allowed to add PII", isAccessAllowed);
         } catch (Exception e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
 
@@ -189,12 +175,12 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testFinancePIIEntityAccessForFinancePIIUser() {
         try {
-            AtlasEntityHeader entity = new AtlasEntityHeader() {{
-                                                
setClassifications(Arrays.asList(new AtlasClassification("FINANCE"), new 
AtlasClassification("PII")));
-                                            }};
+            AtlasEntityHeader entity = new AtlasEntityHeader();
+
+            entity.setClassifications(Arrays.asList(new 
AtlasClassification("FINANCE"), new AtlasClassification("PII")));
 
             for (AtlasPrivilege privilege : ENTITY_PRIVILEGES) {
                 AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, privilege, entity, new 
AtlasClassification("PII"));
@@ -203,7 +189,7 @@ public class AtlasSimpleAuthorizerTest {
 
                 boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-                AssertJUnit.assertEquals("user " + USER_FINANCE_PII + " should 
have been allowed " + privilege + " on entity with FINANCE & PII", true, 
isAccessAllowed);
+                AssertJUnit.assertTrue("user " + USER_FINANCE_PII + " should 
have been allowed " + privilege + " on entity with FINANCE & PII", 
isAccessAllowed);
             }
         } catch (Exception e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
@@ -212,12 +198,12 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testFinancePIIEntityAccessForFinanceUser() {
         try {
-            AtlasEntityHeader entity = new AtlasEntityHeader() {{
-                                                
setClassifications(Arrays.asList(new AtlasClassification("FINANCE"), new 
AtlasClassification("PII")));
-                                            }};
+            AtlasEntityHeader entity = new AtlasEntityHeader();
+
+            entity.setClassifications(Arrays.asList(new 
AtlasClassification("FINANCE"), new AtlasClassification("PII")));
 
             for (AtlasPrivilege privilege : ENTITY_PRIVILEGES) {
                 AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, privilege, entity, new 
AtlasClassification("PII"));
@@ -226,7 +212,7 @@ public class AtlasSimpleAuthorizerTest {
 
                 boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-                AssertJUnit.assertEquals("user " + USER_FINANCE + " should not 
have been allowed " + privilege + " on entity with FINANCE & PII", false, 
isAccessAllowed);
+                AssertJUnit.assertFalse("user " + USER_FINANCE + " should not 
have been allowed " + privilege + " on entity with FINANCE & PII", 
isAccessAllowed);
             }
         } catch (Exception e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
@@ -235,12 +221,12 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testFinanceEntityAccess() {
         try {
-            AtlasEntityHeader entity = new AtlasEntityHeader() {{
-                setClassifications(Arrays.asList(new 
AtlasClassification("FINANCE")));
-            }};
+            AtlasEntityHeader entity = new AtlasEntityHeader();
+
+            entity.setClassifications(Collections.singletonList(new 
AtlasClassification("FINANCE")));
 
             for (String userName : Arrays.asList(USER_FINANCE_PII, 
USER_FINANCE)) {
                 for (AtlasPrivilege privilege : ENTITY_PRIVILEGES) {
@@ -250,7 +236,7 @@ public class AtlasSimpleAuthorizerTest {
 
                     boolean isAccessAllowed = 
authorizer.isAccessAllowed(request);
 
-                    AssertJUnit.assertEquals("user " + userName + " should 
have been allowed " + privilege + " on entity with FINANCE", true, 
isAccessAllowed);
+                    AssertJUnit.assertTrue("user " + userName + " should have 
been allowed " + privilege + " on entity with FINANCE", isAccessAllowed);
                 }
             }
         } catch (Exception e) {
@@ -260,7 +246,7 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testAccessForUserInAdminGroup() {
         try {
             AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, AtlasPrivilege.ENTITY_UPDATE);
@@ -269,7 +255,7 @@ public class AtlasSimpleAuthorizerTest {
 
             boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-            AssertJUnit.assertEquals("user " + USER_IN_ADMIN_GROUP + " should 
have been allowed " + AtlasPrivilege.ENTITY_UPDATE, true, isAccessAllowed);
+            AssertJUnit.assertTrue("user " + USER_IN_ADMIN_GROUP + " should 
have been allowed " + AtlasPrivilege.ENTITY_UPDATE, isAccessAllowed);
         } catch (AtlasAuthorizationException e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
 
@@ -277,7 +263,7 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testAccessForUserInUnknownGroup() {
         try {
             AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, AtlasPrivilege.ENTITY_UPDATE);
@@ -286,7 +272,7 @@ public class AtlasSimpleAuthorizerTest {
 
             boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-            AssertJUnit.assertEquals("user " + USER_IN_UNKNOWN_GROUP + " 
should not have been allowed " + AtlasPrivilege.ENTITY_UPDATE, false, 
isAccessAllowed);
+            AssertJUnit.assertFalse("user " + USER_IN_UNKNOWN_GROUP + " should 
not have been allowed " + AtlasPrivilege.ENTITY_UPDATE, isAccessAllowed);
         } catch (AtlasAuthorizationException e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
 
@@ -294,7 +280,7 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testLabels() {
         try {
             for (AtlasPrivilege privilege : LABEL_PRIVILEGES) {
@@ -305,7 +291,7 @@ public class AtlasSimpleAuthorizerTest {
 
                     boolean isAccessAllowed = 
authorizer.isAccessAllowed(request);
 
-                    AssertJUnit.assertEquals("user " + userName + " should not 
have been allowed " + privilege, false, isAccessAllowed);
+                    AssertJUnit.assertFalse("user " + userName + " should not 
have been allowed " + privilege, isAccessAllowed);
                 }
 
                 AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, privilege);
@@ -314,7 +300,7 @@ public class AtlasSimpleAuthorizerTest {
 
                 boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-                AssertJUnit.assertEquals("user " + USER_DATA_STEWARD_EX + " 
should have been allowed " + privilege, true, isAccessAllowed);
+                AssertJUnit.assertTrue("user " + USER_DATA_STEWARD_EX + " 
should have been allowed " + privilege, isAccessAllowed);
             }
         } catch (AtlasAuthorizationException e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
@@ -323,7 +309,7 @@ public class AtlasSimpleAuthorizerTest {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testBusinessMetadata() {
         try {
             for (String userName : Arrays.asList(USER_DATA_SCIENTIST, 
USER_DATA_STEWARD)) {
@@ -333,7 +319,7 @@ public class AtlasSimpleAuthorizerTest {
 
                 boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-                AssertJUnit.assertEquals("user " + userName + " should not 
have been allowed " + AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA, false, 
isAccessAllowed);
+                AssertJUnit.assertFalse("user " + userName + " should not have 
been allowed " + AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA, 
isAccessAllowed);
             }
 
             AtlasEntityAccessRequest request = new 
AtlasEntityAccessRequest(null, AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA);
@@ -342,7 +328,7 @@ public class AtlasSimpleAuthorizerTest {
 
             boolean isAccessAllowed = authorizer.isAccessAllowed(request);
 
-            AssertJUnit.assertEquals("user " + USER_DATA_STEWARD_EX + " should 
have been allowed " + AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA, true, 
isAccessAllowed);
+            AssertJUnit.assertTrue("user " + USER_DATA_STEWARD_EX + " should 
have been allowed " + AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA, 
isAccessAllowed);
         } catch (AtlasAuthorizationException e) {
             LOG.error("Exception in AtlasSimpleAuthorizerTest", e);
 
@@ -355,4 +341,29 @@ public class AtlasSimpleAuthorizerTest {
 
         request.setUser(userName, userGroups != null ? userGroups : 
Collections.emptySet());
     }
+
+    static {
+        USER_GROUPS.put(USER_ADMIN, Collections.singleton("ROLE_ADMIN"));
+        USER_GROUPS.put(USER_DATA_STEWARD, Collections.emptySet());
+        USER_GROUPS.put(USER_DATA_SCIENTIST, Collections.emptySet());
+        USER_GROUPS.put(USER_DATA_STEWARD_EX, 
Collections.singleton("DATA_STEWARD_EX"));
+        USER_GROUPS.put(USER_FINANCE, Collections.singleton("FINANCE"));
+        USER_GROUPS.put(USER_FINANCE_PII, 
Collections.singleton("FINANCE_PII"));
+        USER_GROUPS.put(USER_IN_ADMIN_GROUP, 
Collections.singleton("ROLE_ADMIN"));
+        USER_GROUPS.put(USER_IN_UNKNOWN_GROUP, 
Collections.singleton("UNKNOWN_GROUP"));
+
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_CREATE);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_UPDATE);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_READ);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_ADD_CLASSIFICATION);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_UPDATE_CLASSIFICATION);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_REMOVE_CLASSIFICATION);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_READ_CLASSIFICATION);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_ADD_LABEL);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_REMOVE_LABEL);
+        ENTITY_PRIVILEGES.add(AtlasPrivilege.ENTITY_UPDATE_BUSINESS_METADATA);
+
+        LABEL_PRIVILEGES.add(AtlasPrivilege.ENTITY_ADD_LABEL);
+        LABEL_PRIVILEGES.add(AtlasPrivilege.ENTITY_REMOVE_LABEL);
+    }
 }


Reply via email to