From 092e30a552e8dc63fe3173233f680129306c7cff Mon Sep 17 00:00:00 2001 From: andrea Date: Tue, 26 May 2015 00:09:27 +0200 Subject: [PATCH] Minro change, added global to user specific cascading --- .../security/AuthorizationsCollector.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/broker/src/main/java/org/eclipse/moquette/spi/impl/security/AuthorizationsCollector.java b/broker/src/main/java/org/eclipse/moquette/spi/impl/security/AuthorizationsCollector.java index 18c6d2d9..10c8c548 100644 --- a/broker/src/main/java/org/eclipse/moquette/spi/impl/security/AuthorizationsCollector.java +++ b/broker/src/main/java/org/eclipse/moquette/spi/impl/security/AuthorizationsCollector.java @@ -112,19 +112,21 @@ class AuthorizationsCollector implements IAuthorizator { } private boolean canDoOperation(String topic, Authorization.Permission permission, String username) { - if (username == null || username.isEmpty()) { - for (Authorization auth : m_globalAuthorizations) { - if (auth.permission == permission || auth.permission == READWRITE) { - if (SubscriptionsStore.matchTopics(topic, auth.topic)) { - return true; - } + for (Authorization auth : m_globalAuthorizations) { + if (auth.permission == permission || auth.permission == READWRITE) { + if (SubscriptionsStore.matchTopics(topic, auth.topic)) { + return true; } } - } else if (m_userAuthorizations.containsKey(username)) { - for (Authorization auth : m_userAuthorizations.get(username)) { - if (auth.permission == permission || auth.permission == READWRITE) { - if (SubscriptionsStore.matchTopics(topic, auth.topic)) { - return true; + } + + if (username != null && !username.isEmpty()) { + if (m_userAuthorizations.containsKey(username)) { + for (Authorization auth : m_userAuthorizations.get(username)) { + if (auth.permission == permission || auth.permission == READWRITE) { + if (SubscriptionsStore.matchTopics(topic, auth.topic)) { + return true; + } } } }