Github user paul-rogers commented on a diff in the pull request:
https://github.com/apache/drill/pull/983#discussion_r143910336
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java
---
@@ -75,6 +80,29 @@ public ClusterInfo getClusterInfoJSON() {
final DrillConfig config = dbContext.getConfig();
final boolean userEncryptionEnabled =
config.getBoolean(ExecConstants.USER_ENCRYPTION_SASL_ENABLED);
final boolean bitEncryptionEnabled =
config.getBoolean(ExecConstants.BIT_ENCRYPTION_SASL_ENABLED);
+ // If the user is logged in and is admin user then show the admin user
info
+ // For all other cases the user info need-not or should-not be
displayed
+ OptionManager optionManager = work.getContext().getOptionManager();
+ final boolean isUserLoggedIn = AuthDynamicFeature.isUserLoggedIn(sc);
+ String adminUsers = isUserLoggedIn ?
+
ExecConstants.ADMIN_USERS_VALIDATOR.getAdminUsers(optionManager) : null;
+ String adminUserGroups = isUserLoggedIn ?
+
ExecConstants.ADMIN_USER_GROUPS_VALIDATOR.getAdminUserGroups(optionManager) :
null;
+
+ // separate groups by comma + space
+ if (adminUsers != null) {
+ String[] groups = adminUsers.split(",");
+ adminUsers = DrillStringUtils.join(groups, ", ");
+ }
+
+ // separate groups by comma + space
+ if (adminUserGroups != null) {
+ String[] groups = adminUserGroups.split(",");
+ adminUserGroups = DrillStringUtils.join(groups, ", ");
--- End diff --
What if the user provided the list with spaces: "a, b, c"? Actually, in
the above, it is fine; HTML will compress the run of spaces to a single one for
display...
But, what about where we do the real check? Do the unit tests cover this
case?
---