mirror of
https://github.com/bwssytems/ha-bridge.git
synced 2025-12-18 08:13:23 +00:00
Finished testing fixes and enhancements.
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -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>
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user