Java - FilePermission implies(Permission p) method
Description
The Java FilePermission implies(Permission p) method is used to check whether a FilePermission object grants the specified permission.
The method returns true if −
- p is an instance of file permission.
- Actions of p are a proper subset of this object's action.
- Pathname of p is implied by this object's pathname.
Declaration
Following is the declaration for java.io.FilePermission.implies(Permission p) method −
public int implies(Permission p)
Parameters
p − permission to check against.
Return Value
This method returns true if the specified permission is not null and is implied by this object, else false.
Exception
NA
Example - Usage of FilePermission implies(Permission p) method
The following example shows the usage of Java FilePermission implies(Permission p) method.
FilePermissionDemo.java
package com.tutorialspoint;
import java.io.FilePermission;
import java.io.IOException;
public class FilePermissionDemo {
public static void main(String[] args) throws IOException {
FilePermission fp = null;
FilePermission fp1 = null;
FilePermission fp2 = null;
FilePermission fp3 = null;
boolean bool = false;
try {
// create new file permissions
fp = new FilePermission("test.txt", "read");
fp1 = new FilePermission("test.txt", "write");
fp2 = new FilePermission("test1.txt", "read");
fp3 = new FilePermission("test.txt", "read");
// tests if implied by this object
bool = fp.implies(fp1);
// print
System.out.println(bool);
bool = fp.implies(fp2);
System.out.println(bool);
bool = fp.implies(fp3);
System.out.print(bool);
} catch(Exception ex) {
// if an error occurs
ex.printStackTrace();
}
}
}
Output
Let us compile and run the above program, this will produce the following result−
false false true
Example - Checking if a Permission is Granted
The following example shows the usage of Java FilePermission implies(Permission p) method.
FilePermissionDemo.java
package com.tutorialspoint;
import java.io.FilePermission;
import java.security.Permission;
public class FilePermissionDemo {
public static void main(String[] args) {
// Granting "read" and "write" permissions to the file
FilePermission permission1 = new FilePermission("example.txt", "read,write");
// Checking if the "read" permission is implied
Permission permissionToCheck = new FilePermission("example.txt", "read");
boolean result = permission1.implies(permissionToCheck);
System.out.println("Does permission1 grant 'read'? " + result);
}
}
Output (varies at runtime)
Let us compile and run the above program, this will produce the following result−
Does permission1 grant 'read'? true
Explanation
permission1 has "read,write" permissions for "example.txt".
permissionToCheck requests only "read" permission.
Since "read" is included in "read,write", implies() returns true.
Example - Checking Permission on a Different Action
The following example shows the usage of Java FilePermission implies(Permission p) method.
FilePermissionDemo.java
package com.tutorialspoint;
import java.io.FilePermission;
import java.security.Permission;
public class FilePermissionDemo {
public static void main(String[] args) {
// Granting only "read" permission
FilePermission permission1 = new FilePermission("example.txt", "read");
// Checking if "write" permission is implied
Permission permissionToCheck = new FilePermission("example.txt", "write");
boolean result = permission1.implies(permissionToCheck);
System.out.println("Does permission1 grant 'write'? " + result);
}
}
Output (varies at runtime)
Let us compile and run the above program, this will produce the following result−
Does permission1 grant 'write'? false
Explanation
permission1 has only "read" permission.
permissionToCheck requests "write" permission.
Since "write" is not included in "read", implies() returns false.