Skip to content

Commit 7473d61

Browse files
committed
[security] Make sure the jmxservlet.token file is not world readable on Unix/Linux/macOS systems
1 parent 0d72669 commit 7473d61

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

exist-core/src/main/java/org/exist/management/client/JMXServlet.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@
5656
import java.nio.file.Files;
5757
import java.nio.file.Path;
5858
import java.nio.file.Paths;
59+
import java.nio.file.attribute.PosixFileAttributes;
60+
import java.nio.file.attribute.PosixFilePermission;
61+
import java.nio.file.attribute.PosixFilePermissions;
5962
import java.util.HashSet;
6063
import java.util.Properties;
6164
import java.util.Set;
@@ -338,6 +341,13 @@ private String getToken() {
338341
// Create and write when needed
339342
if (!Files.exists(tokenFile) || token == null) {
340343

344+
final Set<PosixFilePermission> permissions = PosixFilePermissions.fromString("rw-r-----");
345+
try {
346+
tokenFile = Files.createFile(tokenFile, PosixFilePermissions.asFileAttribute(permissions));
347+
} catch (final Throwable t) {
348+
LOG.warn("Unable to restrict permissions on: " + tokenFile);
349+
}
350+
341351
// Create random token
342352
token = UUIDGenerator.getUUIDversion4();
343353

0 commit comments

Comments
 (0)