PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/0011-AS7-4536-add-user.sh-mangles-permissions-of-mgmt-use.patch

#
Patch | 99 lines | 89 code | 10 blank | 0 comment | 0 complexity | 3b9be9182f9b2170b4efa1a46b614edc MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1. From e4eb19be3408a137d08942feddd569f8cf70ce73 Mon Sep 17 00:00:00 2001
  2. From: Marek Goldmann <mgoldman@redhat.com>
  3. Date: Tue, 17 Apr 2012 13:56:43 +0200
  4. Subject: [PATCH 11/25] [AS7-4536] add-user.sh mangles permissions of
  5. mgmt-users.properties
  6. ---
  7. .../management/security/PropertiesFileLoader.java | 42 ++++++++++++--------
  8. 1 file changed, 25 insertions(+), 17 deletions(-)
  9. diff --git a/domain-management/src/main/java/org/jboss/as/domain/management/security/PropertiesFileLoader.java b/domain-management/src/main/java/org/jboss/as/domain/management/security/PropertiesFileLoader.java
  10. index 38737cb..9c4bad9 100644
  11. --- a/domain-management/src/main/java/org/jboss/as/domain/management/security/PropertiesFileLoader.java
  12. +++ b/domain-management/src/main/java/org/jboss/as/domain/management/security/PropertiesFileLoader.java
  13. @@ -38,7 +38,9 @@ import java.io.IOException;
  14. import java.io.InputStreamReader;
  15. import java.io.OutputStreamWriter;
  16. import java.nio.charset.Charset;
  17. +import java.util.ArrayList;
  18. import java.util.Arrays;
  19. +import java.util.List;
  20. import java.util.Properties;
  21. import static org.jboss.as.domain.management.DomainManagementLogger.ROOT_LOGGER;
  22. @@ -122,28 +124,36 @@ public abstract class PropertiesFileLoader {
  23. return properties;
  24. }
  25. + /**
  26. + * Saves changes in properties file. It reads the property file into memory,
  27. + * modifies it and saves it back to the file.
  28. + *
  29. + * @throws IOException
  30. + */
  31. public synchronized void persistProperties() throws IOException {
  32. Properties toSave = (Properties) properties.clone();
  33. - File backup = new File(propertiesFile.getCanonicalPath() + ".bak");
  34. - if (backup.exists()) {
  35. - if (backup.delete() == false) {
  36. - throw new IllegalStateException("Unable to delete backup properties file.");
  37. - }
  38. - }
  39. + List<String> content = new ArrayList<String>();
  40. + FileReader fileReader = new FileReader(propertiesFile);
  41. + BufferedReader bufferedFileReader = new BufferedReader(fileReader);
  42. - if (propertiesFile.renameTo(backup) == false) {
  43. - throw new IllegalStateException("Unable to backup properties file.");
  44. + // Read the properties file into memory
  45. + // Shouldn't be so bad - it's a small file
  46. + try {
  47. + String line = null;
  48. + int i = 0;
  49. + while ((line = bufferedFileReader.readLine()) != null) {
  50. + content.add(line);
  51. + }
  52. + } finally {
  53. + safeClose(bufferedFileReader);
  54. + safeClose(fileReader);
  55. }
  56. - FileReader fr = new FileReader(backup);
  57. - BufferedReader br = new BufferedReader(fr);
  58. -
  59. - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(propertiesFile),"UTF8"));
  60. + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(propertiesFile), "UTF8"));
  61. try {
  62. - String line;
  63. - while ((line = br.readLine()) != null) {
  64. + for (String line : content) {
  65. String trimmed = line.trim();
  66. if (trimmed.startsWith("#")) {
  67. bw.append(line);
  68. @@ -172,12 +182,9 @@ public abstract class PropertiesFileLoader {
  69. }
  70. } finally {
  71. safeClose(bw);
  72. - safeClose(br);
  73. - safeClose(fr);
  74. }
  75. }
  76. -
  77. public static String escapeString(String name, char[] escapeArray) {
  78. Arrays.sort(escapeArray);
  79. for(int i = 0; i < name.length(); ++i) {
  80. @@ -198,6 +205,7 @@ public abstract class PropertiesFileLoader {
  81. }
  82. return name;
  83. }
  84. +
  85. private void safeClose(final Closeable c) {
  86. try {
  87. c.close();
  88. --
  89. 1.7.10.4