diff --git a/uberfire-security/uberfire-security-management/uberfire-security-management-wildfly/uberfire-security-management-wildfly10/src/main/java/org/uberfire/ext/security/management/wildfly10/properties/Wildfly10GroupPropertiesManager.java b/uberfire-security/uberfire-security-management/uberfire-security-management-wildfly/uberfire-security-management-wildfly10/src/main/java/org/uberfire/ext/security/management/wildfly10/properties/Wildfly10GroupPropertiesManager.java index bd24f8e8..c9a3dddf 100644 --- a/uberfire-security/uberfire-security-management/uberfire-security-management-wildfly/uberfire-security-management-wildfly10/src/main/java/org/uberfire/ext/security/management/wildfly10/properties/Wildfly10GroupPropertiesManager.java +++ b/uberfire-security/uberfire-security-management/uberfire-security-management-wildfly/uberfire-security-management-wildfly10/src/main/java/org/uberfire/ext/security/management/wildfly10/properties/Wildfly10GroupPropertiesManager.java @@ -29,10 +29,15 @@ import org.uberfire.ext.security.management.search.IdentifierRuntimeSearchEngine import org.uberfire.ext.security.management.wildfly.properties.BaseWildflyGroupPropertiesManager; import org.uberfire.ext.security.management.wildfly.properties.WildflyPropertiesFileLoader; +import java.io.BufferedWriter; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStreamWriter; +import java.nio.charset.Charset; import java.security.NoSuchAlgorithmException; import java.util.*; +import java.util.regex.Matcher; /** *
Groups manager service provider implementation for Wildfly, when using default realm based on properties files.
@@ -57,10 +62,41 @@ public class Wildfly10GroupPropertiesManager extends BaseWildflyGroupPropertiesM protected WildflyPropertiesFileLoader getFileLoader(String filePath) { final File propertiesFile = new File(filePath); if (!propertiesFile.exists()) throw new RuntimeException("Cannot load roles/groups properties file from '" + filePath + "'."); + String path = null; + try { + path = propertiesFile.getCanonicalPath(); + } catch(Exception e) { + throw new RuntimeException(e); + } + - final PropertiesFileLoader propertiesFileLoader; + final PropertiesFileLoader propertiesFileLoader = new PropertiesFileLoader(path, null) { + public final Pattern PROPERTY_PATTERN_NO_EMPTY_VALUE = Pattern.compile("#?+((?:[,.\\-@/a-zA-Z0-9]++|(?:\\\\[=\\\\])++)++)=(.*)"); + + @Override + public synchronized void persistProperties() throws IOException { + beginPersistence(); + ListUsers manager service provider implementation for JBoss Wildfly, when using default realm based on properties files.
@@ -57,13 +58,15 @@ public class Wildfly10UserPropertiesManager extends BaseWildflyUserPropertiesMan File usersFile = new File(usersFilePath); if (!usersFile.exists()) throw new RuntimeException("Properties file for users not found at '" + usersFilePath + "'."); + final UserPropertiesFileLoader usersFileLoader = new UserPropertiesFileLoader(usersFile.getAbsolutePath(), null) { + public final Pattern PROPERTY_PATTERN_NO_EMPTY_VALUE = Pattern.compile("#?+((?:[,.\\-@/a-zA-Z0-9]++|(?:\\\\[=\\\\])++)++)=(.*)"); + // TODO Remove this when fixed in WF. Bug: Deleted properties are still persisted to properties file // as the line still present in the original property file is copied during persistProperties. @Override public synchronized void persistProperties() throws IOException { beginPersistence(); - List