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.

java_io_filepermission.htm
Advertisements