Finished testing fixes and enhancements.

This commit is contained in:
Admin
2016-09-01 11:03:11 -05:00
parent 0e4319ea1d
commit 77cb064d60
2 changed files with 15 additions and 12 deletions

View File

@@ -5,7 +5,7 @@
<groupId>com.bwssystems.HABridge</groupId> <groupId>com.bwssystems.HABridge</groupId>
<artifactId>ha-bridge</artifactId> <artifactId>ha-bridge</artifactId>
<version>3.0.0a</version> <version>3.1.0</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>HA Bridge</name> <name>HA Bridge</name>

View File

@@ -13,11 +13,14 @@ import java.nio.file.attribute.AclEntry;
import java.nio.file.attribute.AclEntryPermission; import java.nio.file.attribute.AclEntryPermission;
import java.nio.file.attribute.AclEntryType; import java.nio.file.attribute.AclEntryType;
import java.nio.file.attribute.AclFileAttributeView; import java.nio.file.attribute.AclFileAttributeView;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.UserPrincipal; import java.nio.file.attribute.UserPrincipal;
import java.nio.file.attribute.UserPrincipalLookupService; import java.nio.file.attribute.UserPrincipalLookupService;
import java.util.Collections; import java.util.Collections;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
import org.apache.http.conn.util.InetAddressUtils; import org.apache.http.conn.util.InetAddressUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -230,17 +233,17 @@ public class BridgeSettings extends BackupHandler {
Files.write(filePath, content.getBytes(), StandardOpenOption.CREATE); Files.write(filePath, content.getBytes(), StandardOpenOption.CREATE);
// set attributes to be for user only // set attributes to be for user only
UserPrincipalLookupService upls = filePath.getFileSystem().getUserPrincipalLookupService(); // using PosixFilePermission to set file permissions
UserPrincipal user = upls.lookupPrincipalByName(System.getProperty("user.name")); Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
AclEntry.Builder builder = AclEntry.newBuilder(); // add owners permission
builder.setPermissions( EnumSet.of(AclEntryPermission.READ_DATA, AclEntryPermission.EXECUTE, perms.add(PosixFilePermission.OWNER_READ);
AclEntryPermission.READ_ACL, AclEntryPermission.READ_ATTRIBUTES, AclEntryPermission.READ_NAMED_ATTRS, perms.add(PosixFilePermission.OWNER_WRITE);
AclEntryPermission.WRITE_ACL, AclEntryPermission.DELETE
)); try {
builder.setPrincipal(user); Files.setPosixFilePermissions(filePath, perms);
builder.setType(AclEntryType.ALLOW); } catch(UnsupportedOperationException e) {
AclFileAttributeView aclAttr = Files.getFileAttributeView(filePath, AclFileAttributeView.class); log.info("Cannot set permissions for config file on this system as it is not supported. Continuing");
aclAttr.setAcl(Collections.singletonList(builder.build())); }
if(target != null) if(target != null)
Files.delete(target); Files.delete(target);
} catch (IOException e) { } catch (IOException e) {