Skip to content

Commit

Permalink
[94] Ensure the level is set in a privileged action if the security m…
Browse files Browse the repository at this point in the history
…anager is being used.

Signed-off-by: James R. Perkins <[email protected]>
  • Loading branch information
jamezp committed Aug 13, 2024
1 parent 0c14d61 commit 2169187
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/main/java/org/jboss/logmanager/log4j/JBossStatusListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ static void registerIfAbsent(final LogContext logContext) {
Logger logger = logContext.getLoggerIfExists(NAME);
if (logger == null) {
logger = logContext.getLogger(NAME);
logger.setLevel(levelTranslator.translateLevel(StatusLogger.getLogger().getFallbackListener().getStatusLevel()));
setLogLevel(logger,
levelTranslator.translateLevel(StatusLogger.getLogger().getFallbackListener().getStatusLevel()));
}
StatusListener listener = logger.getAttachment(STATUS_LISTENER_KEY);
if (listener == null) {
Expand Down Expand Up @@ -120,4 +121,15 @@ private static void detach(final Logger logger) {
}
}

}
private static void setLogLevel(final java.util.logging.Logger logger, final java.util.logging.Level level) {
if (System.getSecurityManager() == null) {
logger.setLevel(level);
} else {
AccessController.doPrivileged((PrivilegedAction<Object>) () -> {
logger.setLevel(level);
return null;
});
}
}

}

0 comments on commit 2169187

Please sign in to comment.