Mục lục
FilePermission trong java được sử dụng để cài đặt quyền truy cập cho một tập tin hoặc một thư mục. Một FilePermission đặc trưng bởi một đường dẫn chỉ định tập tin hoặc thư mục và các hành động có thể thực hiện được như đọc(read), ghi(write) etc.
Chúng ta có danh sách các hành động sau:
- read – Cho phép đọc dữ liệu
- write – Cho phép ghi dữ liệu
- delete – Cho phép xoá tập tin hoặc thư mục
- readlink – Cho phép đọc liên kết bên trong tập tin, thư mục
- execute – Cho phép thực thi tập tin, thư mục.
Đường dẫn:
- Nếu đường dẫn kết thúc bằng “/*” nghĩa là đại diện cho thư mục và tất cả các tập tin, thư mục bên trong. Ví dụ “C://data/*”.
- Nếu đường dẫn chỉ chứa duy nhất “*” nghĩa là chỉ định tất cả các tập tin, thư mục của thư mục hiện tại.
- Nếu đường dẫn kết thúc bằng “/” biểu thị đệ quy tất cả các thư mục tập tin bên trong.
Khai báo
public final class FilePermission extends Permission implements Serializable
Constructor
FilePermission(String p, String a)
Các method trong FilePermission
equals(Object p)
equals() dùng để so sánh hai FilePermission object với nhau, equals() trả về true nếu chúng giống nhau về đường dẫn và action.
public boolean equals(Object FP_obj) Parameters : FP_obj : the FilePermissio Returns : boolean Exception : ----------
import java.io.FilePermission; import java.io.IOException; class FilePermissionExample { public static void main(String[] args) throws IOException { boolean bool = false; // Creating new FilePermissions("Path", "action") FilePermission FP_obj1 = new FilePermission("TEST", "read"); FilePermission FP_obj2 = new FilePermission("ABC", "write"); FilePermission FP_obj3 = new FilePermission("TEST", "write"); FilePermission FP_obj4 = new FilePermission("TEST", "read"); // Use of equals method bool = FP_obj2.equals(FP_obj1); System.out.println("Whether FP_obj1 equals FP_obj2 : " + bool); bool = FP_obj2.equals(FP_obj3); System.out.println("Whether FP_obj2 equals FP_obj2 : " + bool); bool = FP_obj1.equals(FP_obj3); System.out.println("Whether FP_obj3 equals FP_obj1 : " + bool); bool = FP_obj1.equals(FP_obj4); System.out.println("Whether FP_obj1 equals FP_obj4 : " + bool); } }
Output:
Whether FP_obj1 equals FP_obj2 : false
Whether FP_obj2 equals FP_obj2 : false
Whether FP_obj3 equals FP_obj1 : false
Whether FP_obj1 equals FP_obj4 : true
getActions()
getActions() trả về các hành động mà chúng ta có thể thực hiện được với tập tin hoặc đường dẫn tương ứng.
public String getActions() Parameters : ---------- Returns : canonical string : Các hành động tương ứng Exception : ----------
import java.io.*; class FilePermissionExample { public static void main(String[] args) throws IOException { // Creating new FilePermissions FilePermission FP_obj1 = new FilePermission("TEST", "read, delete, write"); FilePermission FP_obj2 = new FilePermission("ABC", "write, read, execute"); FilePermission FP_obj3 = new FilePermission("TEST", "delete, readlink, read"); // Use of getActions() method String str = FP_obj1.getActions(); System.out.println("Actions with FP_obj1 : " + str); str = FP_obj2.getActions(); System.out.println("Actions with FP_obj2 : " + str); str = FP_obj3.getActions(); System.out.println("Actions with FP_obj3 : " + str); } }
Output:
Actions with FP_obj1 : read,write,delete
Actions with FP_obj2 : read,write,execute
Actions with FP_obj3 : read,delete,readlink
implies(Permission p)
Kiểm tra Permission p liệu có được phép hay không?
public boolean implies(Permission arg) Parameters : arg : Permission sẽ được chẹck Returns : boolean Exception : ----------
import java.io.*; class FilePermissionExample { public static void main(String[] args) throws IOException { // Creating new FilePermissions FilePermission FP_obj1 = new FilePermission("GEEKS", "read"); FilePermission FP_obj2 = new FilePermission("ABC", "write"); // Use of implies() method boolean check = FP_obj1.implies(FP_obj2); System.out.println("Using implies() for FP_obj1 : " + check); // Checked here with the same FilePermission object check = FP_obj2.implies(FP_obj2); System.out.println("Using implies() for FP_obj2 : " + check); } }
Output:
Using implies() for FP_obj1 : false
Using implies() for FP_obj2 : true
newPermissionCollection()
Khởi tạo PermissionCollection object chứa trong FilePermission object.
public PermissionCollection newPermissionCollection() Parameters : ---------- Returns : new PermissionCollection object. Exception : ----------
import java.io.*; import java.security.PermissionCollection; class FilePermissionExample { public static void main(String[] args) throws IOException { // Creating new FilePermissions FilePermission FP_obj1 = new FilePermission("TEST.txt", "read"); // Creating new PermissionCollection // Use of newPermissionCollection() PermissionCollection FP = FP_obj1.newPermissionCollection(); // Collecting the Permissions of FP_obj1 for FP FP.add(FP_obj1); boolean check = FP.implies(new FilePermission("TEST.txt", "read")); System.out.println("Is newPermissionCollection() working : " + check); } }
Output: Is newPermissionCollection() working : true
Nguồn tham khảo
https://www.geeksforgeeks.org/java-io-filepermission-class-java/