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

mmoayyed pushed a commit to branch 3_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/3_0_X by this push:
     new dc160f4044 SYNCOPE-1867: Prevent NPE when fetching realm entitlements 
(#1016)
dc160f4044 is described below

commit dc160f4044d68076c7703ca21a8bb45be99b269d
Author: Misagh Moayyed <mm1...@gmail.com>
AuthorDate: Thu Mar 6 18:10:47 2025 +0400

    SYNCOPE-1867: Prevent NPE when fetching realm entitlements (#1016)
    
    # Conflicts:
    #       
core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
    #       
core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
---
 .../logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java | 2 +-
 .../logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java 
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
index 254f217444..70bf5f81a3 100644
--- 
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
+++ 
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
@@ -129,7 +129,7 @@ public class RealmLogic extends 
AbstractTransactionalLogic<RealmTO> {
                 count,
                 result.stream().map(realm -> binder.getRealmTO(
                 realm,
-                
AuthContextUtils.getAuthorizations().get(IdRepoEntitlement.REALM_SEARCH).stream().
+                
AuthContextUtils.getAuthorizations().getOrDefault(IdRepoEntitlement.REALM_SEARCH,
 Set.of()).stream().
                         anyMatch(auth -> 
realm.getFullPath().startsWith(auth)))).
                         sorted(Comparator.comparing(RealmTO::getFullPath)).
                         collect(Collectors.toList()));
diff --git 
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java 
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
index 4b28b4574d..f232357c2a 100644
--- 
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
+++ 
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
@@ -131,8 +131,8 @@ public class TaskLogic extends 
AbstractExecutableLogic<TaskTO> {
     }
 
     protected void securityChecks(final String entitlement, final String 
realm) {
-        Set<String> authRealms = 
AuthContextUtils.getAuthorizations().get(entitlement);
-        if (authRealms.stream().noneMatch(r -> realm.startsWith(r))) {
+        Set<String> authRealms = 
AuthContextUtils.getAuthorizations().getOrDefault(entitlement, Set.of());
+        if (authRealms.isEmpty() || 
authRealms.stream().noneMatch(realm::startsWith)) {
             throw new DelegatedAdministrationException(realm, 
MacroTask.class.getSimpleName(), null);
         }
     }

Reply via email to