This is an automated email from the ASF dual-hosted git repository.
ethanli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git
The following commit(s) were added to refs/heads/master by this push:
new c786116 [STORM-3629] Logviewer should always allow admins to access
logs
new 5d84e5e Merge pull request #3258 from Ethanlm/STORM-3629
c786116 is described below
commit c78611630233dfef5a14835be93e525b672a50da
Author: Meng Li (Ethan) <[email protected]>
AuthorDate: Wed Apr 29 17:43:00 2020 -0500
[STORM-3629] Logviewer should always allow admins to access logs
---
.../logviewer/handler/LogviewerLogPageHandler.java | 2 +-
.../daemon/logviewer/utils/ResourceAuthorizer.java | 30 ++++++++++++----------
2 files changed, 17 insertions(+), 15 deletions(-)
diff --git
a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
index a8882df..b8be6ad 100644
---
a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
+++
b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
@@ -266,7 +266,7 @@ public class LogviewerLogPageHandler {
return LogviewerResponseBuilder.buildResponsePageNotFound();
}
} else {
- if (resourceAuthorizer.getLogUserGroupWhitelist(fileName) != null)
{
+ if (resourceAuthorizer.getLogUserGroupWhitelist(fileName) == null)
{
return LogviewerResponseBuilder.buildResponsePageNotFound();
} else {
return
LogviewerResponseBuilder.buildResponseUnauthorizedUser(user);
diff --git
a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/ResourceAuthorizer.java
b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/ResourceAuthorizer.java
index 32f56d7..d62e721 100644
---
a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/ResourceAuthorizer.java
+++
b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/ResourceAuthorizer.java
@@ -84,25 +84,27 @@ public class ResourceAuthorizer {
return false;
}
LogUserGroupWhitelist whitelist = getLogUserGroupWhitelist(fileName);
- if (whitelist == null) {
- return false;
- } else {
- List<String> logsUsers = new ArrayList<>();
-
logsUsers.addAll(ObjectReader.getStrings(stormConf.get(DaemonConfig.LOGS_USERS)));
-
logsUsers.addAll(ObjectReader.getStrings(stormConf.get(Config.NIMBUS_ADMINS)));
+
+ List<String> logsUsers = new ArrayList<>();
+
logsUsers.addAll(ObjectReader.getStrings(stormConf.get(DaemonConfig.LOGS_USERS)));
+
logsUsers.addAll(ObjectReader.getStrings(stormConf.get(Config.NIMBUS_ADMINS)));
+ if (whitelist != null) {
logsUsers.addAll(whitelist.getUserWhitelist());
+ }
- List<String> logsGroups = new ArrayList<>();
-
logsGroups.addAll(ObjectReader.getStrings(stormConf.get(DaemonConfig.LOGS_GROUPS)));
-
logsGroups.addAll(ObjectReader.getStrings(stormConf.get(Config.NIMBUS_ADMINS_GROUPS)));
+ List<String> logsGroups = new ArrayList<>();
+
logsGroups.addAll(ObjectReader.getStrings(stormConf.get(DaemonConfig.LOGS_GROUPS)));
+
logsGroups.addAll(ObjectReader.getStrings(stormConf.get(Config.NIMBUS_ADMINS_GROUPS)));
+ if (whitelist != null) {
logsGroups.addAll(whitelist.getGroupWhitelist());
+ }
- String userName = principalToLocal.toLocal(user);
- Set<String> groups = getUserGroups(userName);
+ String userName = principalToLocal.toLocal(user);
+ Set<String> groups = getUserGroups(userName);
+
+ return logsUsers.stream().anyMatch(u -> u.equals(userName))
+ || Sets.intersection(groups, new HashSet<>(logsGroups)).size() > 0;
- return logsUsers.stream().anyMatch(u -> u.equals(userName))
- || Sets.intersection(groups, new
HashSet<>(logsGroups)).size() > 0;
- }
}
/**