From c579658890564f4f3739b0e63ff3e591024b2bee Mon Sep 17 00:00:00 2001
From: David Meng <xlmeng@amazon.com>
Date: Mon, 12 Sep 2022 21:15:04 +0000
Subject: [PATCH] Squashed commit of the following

commit 3b661d0e
Author: David Meng <xlmeng@amazon.com>
Date: Tue Aug 23 2022 11:24:37 GMT-0400 (Eastern Daylight Time)

    Refactor AuthorizationFilter::hasAnyPermission to avoid always returning true
---
 .../notification/auth/AuthorizationFilter.java   | 16 +++++++---------
 .../auth/AuthorizationFilterTest.java            |  2 +-
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java b/notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java
index 0d4693068..a69afee52 100644
--- a/notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java
+++ b/notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java
@@ -63,25 +63,23 @@ public class AuthorizationFilter {
         if (Arrays.asList(requiredRoles).contains(Config.CRON) && requestInfoExt.isCronRequest()) {
             dpsHeaders.put(DpsHeaders.USER_EMAIL, Config.CRON);
             requestInfoExt.setHeaders(dpsHeaders);
-            return true;
         } else if (Arrays.asList(requiredRoles).contains(Config.PUBSUB)) {
             String jwt = dpsHeaders.getAuthorization().substring(BEARER_PREFIX.length());
             if (!this.validator.isValidPublisherServiceAccount(jwt)) {
-                if (!this.authorizeWithEntitlements(requiredRoles)) {
-                    throw new AppException(401, "Invalid User Identity", "this user is not authorized for this operation");
-                }
+                this.authorizeWithEntitlements(requiredRoles);
+            } else {
+                return false;
             }
-            return true;
         } else {
-            return authorizeWithEntitlements(requiredRoles);
+            authorizeWithEntitlements(requiredRoles);
         }
+        return true;
     }
 
-    private boolean authorizeWithEntitlements(String... requiredRoles) {
-        AuthorizationResponse authorizationResponse = authService.authorizeAny(requestInfoExt.getHeaders(), requiredRoles);
+    private void authorizeWithEntitlements(String... requiredRoles) {
         DpsHeaders dpsHeaders = requestInfoExt.getHeaders();
+        AuthorizationResponse authorizationResponse = authService.authorizeAny(dpsHeaders, requiredRoles);
         dpsHeaders.put(DpsHeaders.USER_EMAIL, authorizationResponse.getUser());
         requestInfoExt.setHeaders(dpsHeaders);
-        return true;
     }
 }
diff --git a/notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java b/notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java
index 44cfac89b..5ae208b77 100644
--- a/notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java
+++ b/notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java
@@ -112,7 +112,7 @@ public class AuthorizationFilterTest {
         this.sut.hasAnyPermission(ROLE3);
     }
 
-    @Test
+    @Test(expected = Test.None.class)
     public void should_authenticateRequest_when_isFromPubsubAndUserIdentityIsCorrect() {
         when(headers.getAuthorization()).thenReturn(TEST_PUBSUB_JWT);
         when(this.validator.isValidServiceAccount(any(), any())).thenReturn(true);
-- 
GitLab