Tags:

FilePermission trong java

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/

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x