Java - FilePermission newPermissionCollection() method



Description

The Java FilePermission newPermissionCollection() method is used to create a PermissionCollection that can store multiple FilePermission objects. PermissionCollection stores multiple FilePermission objects. It supports wildcard paths (*). Grants permissions for entire directories. Allows checking permissions using implies().Helps verify if specific permissions exist.

Declaration

Following is the declaration for java.io.FilePermission.newPermissionCollection() method −

public PermissionCollection newPermissionCollection()

Parameters

NA

Return Value

This method returns a new PermissionCollection object.

Exception

NA

Key Points

  • Creates a collection to store and manage multiple file permissions.

  • Allows checking whether a specific permission is implied by the collection.

  • Used in security policies for managing multiple permissions.

Example - Adding Multiple File Permissions to a Collection

The following example shows the usage of Java FilePermission newPermissionCollection() method.

FilePermissionDemo.java

package com.tutorialspoint;

import java.io.FilePermission;
import java.security.PermissionCollection;

public class FilePermissionDemo {
   public static void main(String[] args) {
      // Create a FilePermission object
      FilePermission readPermission = new FilePermission("file.txt", "read");
      FilePermission writePermission = new FilePermission("file.txt", "write");

      // Create a new PermissionCollection
      PermissionCollection permissionCollection = readPermission.newPermissionCollection();

      // Add permissions to the collection
      permissionCollection.add(readPermission);
      permissionCollection.add(writePermission);

      // Check if a specific permission is granted
      System.out.println("Has read permission? " 
         + permissionCollection.implies(new FilePermission("file.txt", "read")));
      System.out.println("Has write permission? " 
         + permissionCollection.implies(new FilePermission("file.txt", "write")));
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Has read permission? true
Has write permission? true

Explanation

  • Creates FilePermission objects for read and write permissions.

  • Calls newPermissionCollection() to create a PermissionCollection.

  • Adds the permissions to the collection.

  • Uses implies() to check if permissions exist.

Example - Checking Wildcard Permissions

The following example shows the usage of Java FilePermission newPermissionCollection() method.

FilePermissionDemo.java

package com.tutorialspoint;

import java.io.FilePermission;
import java.security.PermissionCollection;

public class FilePermissionDemo {
   public static void main(String[] args) {
      // Grant read permission for all files in the directory
      FilePermission directoryPermission = new FilePermission("C:\\Users\\Documents\\*", "read");

      // Create a PermissionCollection and add the wildcard permission
      PermissionCollection permissionCollection = directoryPermission.newPermissionCollection();
      permissionCollection.add(directoryPermission);

      // Check if a specific file within the directory has read permission
      System.out.println("Has read permission for file1.txt? " +
      permissionCollection.implies(new FilePermission("C:\\Users\\Documents\\file1.txt", "read")));

      System.out.println("Has read permission for file2.txt? " +
      permissionCollection.implies(new FilePermission("C:\\Users\\Documents\\file2.txt", "read")));
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Has read permission for file1.txt? true
Has read permission for file2.txt? true

Explanation

  • Grants read access to all files in C:\Users\Documents\*.

  • Uses newPermissionCollection() to create a collection.

  • Checks if specific files within the directory have read access using implies().

Example - Checking Permissions on a Different Actions

The following example shows the usage of Java FilePermission newPermissionCollection() method.

FilePermissionDemo.java

package com.tutorialspoint;

import java.io.FilePermission;
import java.security.PermissionCollection;

public class FilePermissionDemo {
   public static void main(String[] args) {
      // Create multiple file permissions with different actions
      FilePermission readPermission = new FilePermission("data.txt", "read");
      FilePermission executePermission = new FilePermission("data.txt", "execute");

      // Create a PermissionCollection
      PermissionCollection permissionCollection = readPermission.newPermissionCollection();
      permissionCollection.add(readPermission);
      permissionCollection.add(executePermission);

      // Check permissions
      System.out.println("Has read permission? " 
         + permissionCollection.implies(new FilePermission("data.txt", "read")));
      System.out.println("Has execute permission? " 
         + permissionCollection.implies(new FilePermission("data.txt", "execute")));
      System.out.println("Has write permission? " 
         + permissionCollection.implies(new FilePermission("data.txt", "write"))); // Expected false
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Has read permission? true
Has execute permission? true
Has write permission? false

(Write permission was not added, so it returns false.)

Explanation

  • Creates FilePermission objects for read and execute actions.

  • Adds them to a PermissionCollection.

  • Checks if read, execute, and write permissions exist using implies().

java_io_filepermission.htm
Advertisements