From 26b29c60d007ab0ca67785032c8e21450793a70e Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Thu, 06 Feb 2025 14:11:28 +0000
Subject: [PATCH] [#477] Change permission config.ldif.startok to owner (#479)

---
 opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java
index ae4c812..de6d275 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2014-2016 ForgeRock AS.
+ * Portions Copyright 2025 3A Systems,LLC
  */
 package org.opends.server.config;
 
@@ -30,6 +31,8 @@
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.attribute.PosixFilePermissions;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -758,6 +761,7 @@
 
     // Copy the current config file to a temporary file.
     File tempFile = new File(tempFilePath);
+
     try (FileInputStream inputStream = new FileInputStream(configFile))
     {
       try (FileOutputStream outputStream = new FileOutputStream(tempFilePath, false))
@@ -775,6 +779,13 @@
 
             outputStream.write(buffer, 0, bytesRead);
           }
+          outputStream.close();
+          try {
+            Files.setPosixFilePermissions(tempFile.toPath(), PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rw-------")).value());
+          } catch (IOException e) {
+            logger.traceException(e);
+            logger.warn(ERR_STARTOK_CANNOT_WRITE, configFile, tempFilePath, getExceptionMessage(e));
+          } catch (UnsupportedOperationException e){}
         }
         catch (IOException e)
         {

--
Gitblit v1.10.0