From c6e299d10a8a00c719abf0ffed3d8c0ecb1dca94 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Sun, 21 Jul 2024 12:38:59 +0200 Subject: [PATCH 01/30] updated to new structure --- pom.xml | 40 +++- .../JavaAspectConfiguration.java | 46 ---- .../java/FileSystemInteractionList.java | 19 ++ .../java/JavaAspectConfiguration.java | 198 ++++++++++++++++++ .../java/JavaAspectConfigurationLists.java | 18 ++ .../JavaSupportedAspectConfiguration.java | 2 +- .../java/PointcutDefinitions.aj | 13 ++ .../aspectconfiguration/java/aspectJava.aj | 96 +++++++++ ...JavaSecurityTestCaseFactoryAndBuilder.java | 2 +- .../ase/ares/api/aspectJ/ReadWriteTest.java | 101 +++++++++ .../aspectJ/SortingExampleBehaviorTest.java | 102 +++++++++ .../ares/api/aspectJ/readWrite/ReadWrite.java | 33 +++ .../ase/ares/api/aspectJ/src/BubbleSort.java | 26 +++ .../cit/ase/ares/api/aspectJ/src/Client.java | 115 ++++++++++ .../cit/ase/ares/api/aspectJ/src/Context.java | 35 ++++ .../ase/ares/api/aspectJ/src/MergeSort.java | 74 +++++++ .../cit/ase/ares/api/aspectJ/src/Policy.java | 30 +++ .../ares/api/aspectJ/src/SortStrategy.java | 14 ++ 18 files changed, 914 insertions(+), 50 deletions(-) delete mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemInteractionList.java create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java rename src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/{ => java}/JavaSupportedAspectConfiguration.java (91%) create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/aspectJava.aj create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/SortingExampleBehaviorTest.java create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/readWrite/ReadWrite.java create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/BubbleSort.java create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Client.java create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Context.java create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/MergeSort.java create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Policy.java create mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/SortStrategy.java diff --git a/pom.xml b/pom.xml index 3b9e12c4..2a8fdbc1 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 de.tum.cit.ase ares @@ -20,6 +20,7 @@ D1A045E1DD48B876 + 1.9.22 @@ -127,6 +128,11 @@ apiguardian-api 1.1.2 + + org.aspectj + aspectjrt + ${aspectj.version} + com.fasterxml.jackson.dataformat jackson-dataformat-yaml @@ -346,6 +352,36 @@ + + dev.aspectj + aspectj-maven-plugin + 1.14 + + + org.aspectj + aspectjtools + + ${aspectj.version} + + + + + 21 + + + + + compile + test-compile + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.3.0 + Ares diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java deleted file mode 100644 index e0e4bbc7..00000000 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectconfiguration; - -import de.tum.cit.ase.ares.api.policy.SecurityPolicy; - -/** - * Aspect configuration for the Java programming language and concrete product of the abstract factory design pattern. - * - * @author Markus Paulsen - * @version 2.0.0 - * @see Abstract Factory Design Pattern - * @since 2.0.0 - */ -public class JavaAspectConfiguration implements AspectConfiguration { - - private JavaSupportedAspectConfiguration javaSupportedAspectConfiguration; - private SecurityPolicy securityPolicy; - - /** - * Constructor for JavaAspectConfiguration. - * - * @param javaSupportedAspectConfiguration Selects the supported aspect configuration in the Java programming language - * @param securityPolicy Security policy for the aspect configuration - */ - public JavaAspectConfiguration(JavaSupportedAspectConfiguration javaSupportedAspectConfiguration, SecurityPolicy securityPolicy) { - this.javaSupportedAspectConfiguration = javaSupportedAspectConfiguration; - this.securityPolicy = securityPolicy; - } - - /** - * Creates the content of the aspect configuration file in the Java programming language. - * - * @return Content of the aspect configuration file - */ - @Override - public String createAspectConfigurationFileContent() { - throw new RuntimeException("Not implemented yet!"); - } - - /** - * Runs the aspect configuration in Java programming language. - */ - @Override - public void runAspectConfiguration() { - throw new RuntimeException("Not implemented yet!"); - } -} diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemInteractionList.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemInteractionList.java new file mode 100644 index 00000000..33872940 --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemInteractionList.java @@ -0,0 +1,19 @@ +package de.tum.cit.ase.ares.api.aspectconfiguration.java; + +import de.tum.cit.ase.ares.api.policy.FileSystemInteraction; + +import java.util.Collections; +import java.util.List; + +public class FileSystemInteractionList { + + private static List allowedFileSystemInteractions = Collections.emptyList(); + + public static List getAllowedFileSystemInteractions() { + return allowedFileSystemInteractions; + } + + public static void setAllowedFileSystemInteractions(List allowedFileSystemInteractions) { + FileSystemInteractionList.allowedFileSystemInteractions = allowedFileSystemInteractions; + } +} \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java new file mode 100644 index 00000000..7cdf25cf --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java @@ -0,0 +1,198 @@ +package de.tum.cit.ase.ares.api.aspectconfiguration.java; + +import de.tum.cit.ase.ares.api.aspectconfiguration.AspectConfiguration; +import de.tum.cit.ase.ares.api.policy.SecurityPolicy; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.stream.Collectors; + +/** + * Aspect configuration for the Java programming language and concrete product of the abstract factory design pattern. + * + * @author Markus Paulsen + * @version 2.0.0 + * @see Abstract Factory Design Pattern + * @since 2.0.0 + */ +public class JavaAspectConfiguration implements AspectConfiguration { + + private JavaSupportedAspectConfiguration javaSupportedAspectConfiguration; + private SecurityPolicy securityPolicy; + + /** + * Constructor for JavaAspectConfiguration. + * + * @param javaSupportedAspectConfiguration Selects the supported aspect configuration in the Java programming language + * @param securityPolicy Security policy for the aspect configuration + */ + public JavaAspectConfiguration(JavaSupportedAspectConfiguration javaSupportedAspectConfiguration, SecurityPolicy securityPolicy) { + this.javaSupportedAspectConfiguration = javaSupportedAspectConfiguration; + this.securityPolicy = securityPolicy; + } + + /** + * Creates the content of the aspect configuration file in the Java programming language. + * + * @return Content of the aspect configuration file + */ + @Override + public String createAspectConfigurationFileContent() { + StringBuilder content = new StringBuilder(); + switch (javaSupportedAspectConfiguration) { + case FILESYSTEMINTERACTION -> { + content.append("package de.tum.cit.ase.ares.api.aspectconfiguration.java;\n\n") // TODO: Do we need packages in the files? + .append("public aspect PointcutDefinitions {\n\n") + .append(" pointcut filesWriteMethod() : call(* java.nio.file.Files.write(..));\n") + .append(" pointcut filesReadMethod() : call(* java.nio.file.Files.readAllBytes(..)) || call(* java.nio.file.Files.readAllLines(..));\n") + .append(" pointcut filesDeleteMethod() : call(* java.nio.file.Files.delete(..));\n") + .append("}\n\n") + .append("package de.tum.cit.ase.ares.api.aspectconfiguration.java;\n\n") // TODO: Do we need packages in the files? + .append("import java.nio.file.Path;\n") // TODO: Do we need imports in the files? + .append("import java.util.Arrays;\n") + .append("import java.util.List;\n") + .append("import java.util.stream.Collectors;\n\n") + .append("public aspect aspectJava {\n\n"); + + content.append(" private static final List allowedFileSystemInteractions = List.of(\n"); + content.append(securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents().stream() + .map(securityContent -> String.format(" new FileSystemInteraction(Path.of(\"%s\"), %s, %s, %s)", + securityContent.onThisPathAndAllPathsBelow().toString(), + securityContent.studentsAreAllowedToOverwriteAllFiles(), + securityContent.studentsAreAllowedToReadAllFiles(), + securityContent.studentsAreAllowedToDeleteAllFiles())) + .collect(Collectors.joining(",\n"))); + content.append("\n );\n\n"); + content.append(" Object around() : PointcutDefinitions.filesWriteMethod() {\n") + .append(" Object[] args = thisJoinPoint.getArgs();\n") + .append(" Path path = (Path) args[0];\n") + .append(" String fileName = thisJoinPoint.getSourceLocation().getFileName();\n") + .append(" boolean isAllowed = allowedFileSystemInteractions.stream()\n") + .append(" .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName)\n") + .append(" && interaction.studentsAreAllowedToOverwriteAllFiles());\n") + .append(" if (!isAllowed) {\n") + .append(" System.out.println(\"Files.write called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Denied\");\n") + .append(" throw new SecurityException(\"Write operation blocked by AspectJ for path: \" + path);\n") + .append(" } else {\n") + .append(" System.out.println(\"Files.write called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Granted\");\n") + .append(" }\n") + .append(" if (args.length > 1 && args[1] instanceof List) {\n") + .append(" List lines = (List) args[1];\n") + .append(" System.out.println(\"Files.write called with path: \" + path + \" and lines: \" + lines);\n") + .append(" } else if (args.length > 1 && args[1] instanceof byte[]) {\n") + .append(" byte[] bytes = (byte[]) args[1];\n") + .append(" System.out.println(\"Files.write called with path: \" + path + \" and bytes: \" + Arrays.toString(bytes));\n") + .append(" } else {\n") + .append(" System.out.println(\"Files.write called with path: \" + path + \" and other arguments: \" + Arrays.toString(args));\n") + .append(" }\n") + .append(" return proceed();\n") + .append(" }\n\n") + .append(" Object around() : PointcutDefinitions.filesReadMethod() {\n") + .append(" Object[] args = thisJoinPoint.getArgs();\n") + .append(" Path path = (Path) args[0];\n") + .append(" String fileName = thisJoinPoint.getSourceLocation().getFileName();\n") + .append(" boolean isAllowed = allowedFileSystemInteractions.stream()\n") + .append(" .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName)\n") + .append(" && interaction.studentsAreAllowedToReadAllFiles());\n") + .append(" if (!isAllowed) {\n") + .append(" System.out.println(\"Files.read called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Denied\");\n") + .append(" throw new SecurityException(\"Read operation blocked by AspectJ for path: \" + path);\n") + .append(" } else {\n") + .append(" System.out.println(\"Files.read called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Granted\");\n") + .append(" }\n") + .append(" return proceed();\n") + .append(" }\n\n") + .append(" Object around() : PointcutDefinitions.filesDeleteMethod() {\n") + .append(" Object[] args = thisJoinPoint.getArgs();\n") + .append(" Path path = (Path) args[0];\n") + .append(" String fileName = thisJoinPoint.getSourceLocation().getFileName();\n") + .append(" boolean isAllowed = allowedFileSystemInteractions.stream()\n") + .append(" .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName)\n") + .append(" && interaction.studentsAreAllowedToDeleteAllFiles());\n") + .append(" if (!isAllowed) {\n") + .append(" System.out.println(\"Files.delete called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Denied\");\n") + .append(" throw new SecurityException(\"Delete operation blocked by AspectJ for path: \" + path);\n") + .append(" } else {\n") + .append(" System.out.println(\"Files.delete called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Granted\");\n") + .append(" }\n") + .append(" return proceed();\n") + .append(" }\n\n") + .append("}\n"); + } + case NETWORKCONNECTION -> { + // Placeholder + content.append("// Network Connection Aspect Configuration\n"); + } + case COMMAND_EXECUTION -> { + // Placeholder + content.append("// Command Execution Aspect Configuration\n"); + } + case THREAD_CREATION -> { + // Placeholder + content.append("// Thread Creation Aspect Configuration\n"); + } + case PACKAGE_IMPORT -> { + // Placeholder + content.append("// Package Import Aspect Configuration\n"); + } + } + return content.toString(); + } + + /** + * Runs the aspect configuration in Java programming language. + */ + @Override + public void runAspectConfiguration() { + String aspectFileName; // TODO: discuss on how the file is received or where it is stored + switch (javaSupportedAspectConfiguration) { + case FILESYSTEMINTERACTION -> { + aspectFileName = "aspectJava.aj"; + try { + updateAspectFile(aspectFileName); + } catch (IOException e) { + e.printStackTrace(); + } + } + case NETWORKCONNECTION -> { + // Placeholder + aspectFileName = "aspectNetworkConnection.aj"; + } + case COMMAND_EXECUTION -> { + // Placeholder + aspectFileName = "aspectCommandExecution.aj"; + } + case THREAD_CREATION -> { + // Placeholder + aspectFileName = "aspectThreadCreation.aj"; + } + case PACKAGE_IMPORT -> { + // Placeholder + aspectFileName = "aspectPackageImport.aj"; + } + } + } + + private void updateAspectFile(String aspectFileName) throws IOException { + Path path = Path.of(aspectFileName); + String content = Files.readString(path); + + // Find the list definition and replace it with the new list + String newListContent = " private static final List allowedFileSystemInteractions = List.of(\n"; + newListContent += securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents().stream() + .map(interaction -> String.format(" new FileSystemInteraction(Path.of(\"%s\"), %s, %s, %s)", + interaction.onThisPathAndAllPathsBelow().toString(), + interaction.studentsAreAllowedToOverwriteAllFiles(), + interaction.studentsAreAllowedToReadAllFiles(), + interaction.studentsAreAllowedToDeleteAllFiles())) + .collect(Collectors.joining(",\n")); + newListContent += "\n );\n"; + + content = content.replaceAll("private static final List allowedFileSystemInteractions = List.of\\([\\s\\S]*?\\);", newListContent); + + // Write the updated content back to the file + Files.writeString(path, content, StandardOpenOption.TRUNCATE_EXISTING); + } +} diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java new file mode 100644 index 00000000..91c111e4 --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java @@ -0,0 +1,18 @@ +package de.tum.cit.ase.ares.api.aspectconfiguration.java; + +import java.util.ArrayList; +import java.util.List; + +public class JavaAspectConfigurationLists { + + private List allowedFileSystemInteractions = new ArrayList<>(); + + private List allowedNetworkConnections = new ArrayList<>(); + + private List allowedCommandExecutions = new ArrayList<>(); + + private List allowedThreadCreations = new ArrayList<>(); + + private List allowedPackageImports = new ArrayList<>(); + +} diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java similarity index 91% rename from src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java rename to src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java index c6f5c097..0fde1bfc 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java @@ -1,4 +1,4 @@ -package de.tum.cit.ase.ares.api.aspectconfiguration; +package de.tum.cit.ase.ares.api.aspectconfiguration.java; /** * Supported aspect configurations in Java programming language. diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj new file mode 100644 index 00000000..f1a69774 --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -0,0 +1,13 @@ +package de.tum.cit.ase.ares.api.aspectconfiguration.java; + +public aspect PointcutDefinitions { + + // Pointcut for Files.write method + pointcut filesWriteMethod() : call(* java.nio.file.Files.write(..)); + + // Pointcut for Files.readAllBytes and Files.readAllLines methods + pointcut filesReadMethod() : call(* java.nio.file.Files.readAllBytes(..)) || call(* java.nio.file.Files.readAllLines(..)); + + // Pointcut for Files.delete method + pointcut filesDeleteMethod() : call(* java.nio.file.Files.delete(..)); +} \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/aspectJava.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/aspectJava.aj new file mode 100644 index 00000000..a6a5baa9 --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/aspectJava.aj @@ -0,0 +1,96 @@ +package de.tum.cit.ase.ares.api.aspectconfiguration.java; + +import java.nio.file.Path; +import java.util.Arrays; +import java.util.List; + +public aspect aspectJava { + + // Around advice to capture the path used in Files.write and check permissions + Object around() : PointcutDefinitions.filesWriteMethod() { + Object[] args = thisJoinPoint.getArgs(); + Path path = (Path) args[0]; // Assuming the first argument is the Path + + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + // Check if the file name is allowed and has write permission + boolean isAllowed = FileSystemInteractionList.getAllowedFileSystemInteractions().stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + System.out.println("Files.write called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + throw new SecurityException("Write operation blocked by AspectJ for path: " + path); + } else { + System.out.println("Files.write called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); + } + + if (args.length > 1 && args[1] instanceof List) { + List lines = (List) args[1]; // Assuming the second argument is the list of lines to write + System.out.println("Files.write called with path: " + path + " and lines: " + lines); + } else if (args.length > 1 && args[1] instanceof byte[]) { + byte[] bytes = (byte[]) args[1]; // Assuming the second argument is the byte array to write + System.out.println("Files.write called with path: " + path + " and bytes: " + Arrays.toString(bytes)); + } else { + System.out.println("Files.write called with path: " + path + " and other arguments: " + Arrays.toString(args)); + } + + return proceed(); + } + + // Around advice to capture the path used in Files.readAllBytes and check permissions + Object around() : PointcutDefinitions.filesReadMethod() { + Object[] args = thisJoinPoint.getArgs(); + Path path = (Path) args[0]; // Assuming the first argument is the Path + + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + // Check if the file name is allowed and has read permission + boolean isAllowed = FileSystemInteractionList.getAllowedFileSystemInteractions().stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToReadAllFiles()); + + if (!isAllowed) { + System.out.println("Files.read called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + throw new SecurityException("Read operation blocked by AspectJ for path: " + path); + } else { + System.out.println("Files.read called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); + } + + return proceed(); + } + + /* + + // Around advice to capture file deletion and check permissions + Object around() : PointcutDefinitions.filesDeleteMethod() { + Object[] args = thisJoinPoint.getArgs(); + Path path = (Path) args[0]; // Assuming the first argument is the Path + + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + // Check if the file name is allowed and has delete permission + boolean isAllowed = FileSystemInteractionList.getAllowedFileSystemInteractions().stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToDeleteAllFiles()); + + if (!isAllowed) { + System.out.println("Files.delete called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + throw new SecurityException("Delete operation blocked by AspectJ for path: " + path); + } else { + System.out.println("Files.delete called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); + } + + return proceed(); + } + + // Around advice to capture method executions and check permissions + Object around() : PointcutDefinitions.executionMethod() { + // You can add additional checks or log statements here + System.out.println("Execution of: " + thisJoinPoint.getSignature() + " in " + thisJoinPoint.getSourceLocation()); + + return proceed(); + } + + */ +} \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java index 9f73f732..dabd46e8 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java @@ -1,7 +1,7 @@ package de.tum.cit.ase.ares.api.securitytest; import de.tum.cit.ase.ares.api.architecturetest.JavaArchitectureTestCase; -import de.tum.cit.ase.ares.api.aspectconfiguration.JavaAspectConfiguration; +import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaAspectConfiguration; import de.tum.cit.ase.ares.api.policy.SecurityPolicy; import java.nio.file.Files; diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java new file mode 100644 index 00000000..9b5f583e --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java @@ -0,0 +1,101 @@ +package de.tum.cit.ase.ares.api.aspectJ; + +import de.tum.cit.ase.ares.api.aspectconfiguration.java.FileSystemInteractionList; +import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaAspectConfiguration; +import de.tum.cit.ase.ares.api.aspectJ.readWrite.ReadWrite; +import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaSupportedAspectConfiguration; +import de.tum.cit.ase.ares.api.policy.FileSystemInteraction; +import de.tum.cit.ase.ares.api.policy.SecurityPolicy; +import de.tum.cit.ase.ares.api.policy.SupportedProgrammingLanguage; +import org.junit.Test; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; + +public class ReadWriteTest { + + // Example paths and their permissions + private static final List INTERACTIONS = List.of( + new FileSystemInteraction(Path.of("ReadWrite.java"), true, true, false, false) + ); + + private static final SecurityPolicy SECURITY_POLICY = new SecurityPolicy( + SupportedProgrammingLanguage.JAVA, + INTERACTIONS, + List.of(), // No network connections allowed + List.of(), // No command executions allowed + List.of(), // No thread creations allowed + List.of() // No package imports allowed + ); + + private static final List INTERACTIONS2 = List.of( + new FileSystemInteraction(Path.of("Random.java"), true, true, true, false) + ); + + private static final SecurityPolicy SECURITY_POLICY2 = new SecurityPolicy( + SupportedProgrammingLanguage.JAVA, + INTERACTIONS2, + List.of(), // No network connections allowed + List.of(), // No command executions allowed + List.of(), // No thread creations allowed + List.of() // No package imports allowed + ); + + @Test(expected = SecurityException.class) + public void testFilesWriteAccessDenied() throws IOException { + FileSystemInteractionList.setAllowedFileSystemInteractions(SECURITY_POLICY2.iAllowTheFollowingFileSystemInteractionsForTheStudents()); + Path deniedPath = Paths.get("deniedFile.txt"); + ReadWrite readWrite = new ReadWrite(); + readWrite.writeMethod(deniedPath.toString()); + } + + @Test + public void testFilesWriteAccessGranted() throws IOException { + FileSystemInteractionList.setAllowedFileSystemInteractions(SECURITY_POLICY.iAllowTheFollowingFileSystemInteractionsForTheStudents()); + Path allowedPath = Paths.get("ReadWrite.java"); + ReadWrite readWrite = new ReadWrite(); + readWrite.writeMethod(allowedPath.toString()); + } + + @Test(expected = SecurityException.class) + public void testFilesReadAccessDenied() throws IOException { + FileSystemInteractionList.setAllowedFileSystemInteractions(SECURITY_POLICY2.iAllowTheFollowingFileSystemInteractionsForTheStudents()); + Path deniedPath = Paths.get("deniedFile.txt"); + ReadWrite readWrite = new ReadWrite(); + readWrite.readMethod(deniedPath.toString()); + } + + @Test + public void testFilesReadAccessGranted() throws IOException { + FileSystemInteractionList.setAllowedFileSystemInteractions(SECURITY_POLICY.iAllowTheFollowingFileSystemInteractionsForTheStudents()); + Path allowedPath = Paths.get("ReadWrite.java"); + ReadWrite readWrite = new ReadWrite(); + readWrite.readMethod(allowedPath.toString()); + } + + /* + @Test(expected = SecurityException.class) + public void testFilesDeleteAccessDenied() throws IOException { + List interactions = List.of( + new FileSystemInteraction(Path.of("fileUsingFilesClass.txt"), true, true, true) + ); + TestGuardUtils.checkFileAccess(interactions, new SecurityRuleExecutor()); + Path deniedPath = Paths.get("deniedFile.txt"); + Files.delete(deniedPath); + } + + @Test + public void testFilesDeleteAccessGranted() throws IOException { + List interactions = List.of( + new FileSystemInteraction(Path.of("fileUsingFilesClass.txt"), true, true, true) + ); + TestGuardUtils.checkFileAccess(interactions, new SecurityRuleExecutor()); + Path allowedPath = Paths.get("fileUsingFilesClass.txt"); + Files.delete(allowedPath); + System.out.println("Files.delete called with path: " + allowedPath); + } + */ +} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/SortingExampleBehaviorTest.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/SortingExampleBehaviorTest.java new file mode 100644 index 00000000..c742d9a3 --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/SortingExampleBehaviorTest.java @@ -0,0 +1,102 @@ +package de.tum.cit.ase.ares.api.aspectJ; + +import de.tum.cit.ase.ares.api.BlacklistPath; +import de.tum.cit.ase.ares.api.StrictTimeout; +import de.tum.cit.ase.ares.api.WhitelistPath; +import de.tum.cit.ase.ares.api.aspectJ.src.BubbleSort; +import de.tum.cit.ase.ares.api.aspectJ.src.MergeSort; +import de.tum.cit.ase.ares.api.jqwik.Public; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import static de.tum.cit.ase.ares.api.util.ReflectionTestUtils.*; +import static org.junit.jupiter.api.Assertions.fail; + +/** + * @author Stephan Krusche (krusche@in.tum.de) + * @version 5.1 (11.06.2021) + */ +@Public() +@WhitelistPath("target") // mainly for Artemis +@BlacklistPath("target/test-classes") // prevent access to test-related classes and resources +class SortingExampleBehaviorTest { + + private List dates; + private List datesWithCorrectOrder; + + @BeforeEach + void setup() throws ParseException { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy"); + Date date1 = dateFormat.parse("08.11.2018"); + Date date2 = dateFormat.parse("15.04.2017"); + Date date3 = dateFormat.parse("15.02.2016"); + Date date4 = dateFormat.parse("15.09.2017"); + + this.dates = Arrays.asList(date1, date2, date3, date4); + this.datesWithCorrectOrder = Arrays.asList(date3, date2, date4, date1); + } + + @Test + @StrictTimeout(1) + void testBubbleSort() { + BubbleSort bubbleSort = new BubbleSort(); + bubbleSort.performSort(dates); + if (!datesWithCorrectOrder.equals(dates)) { + fail("BubbleSort does not sort correctly"); + } + } + + @Test + @StrictTimeout(1) + void testMergeSort() { + MergeSort mergeSort = new MergeSort(); + mergeSort.performSort(dates); + if (!datesWithCorrectOrder.equals(dates)) { + fail("MergeSort does not sort correctly"); + } + } + + @Test + @StrictTimeout(1) + void testUseMergeSortForBigList() throws ReflectiveOperationException { + List bigList = new ArrayList(); + for (int i = 0; i < 11; i++) { + bigList.add(new Date()); + } + Object chosenSortStrategy = configurePolicyAndContext(bigList); + if (!(chosenSortStrategy instanceof MergeSort)) { + fail("The sort algorithm of Context was not MergeSort for a list with more than 10 dates."); + } + } + + @Test + @StrictTimeout(1) + void testUseBubbleSortForSmallList() throws ReflectiveOperationException { + List smallList = new ArrayList(); + for (int i = 0; i < 3; i++) { + smallList.add(new Date()); + } + Object chosenSortStrategy = configurePolicyAndContext(smallList); + if (!(chosenSortStrategy instanceof BubbleSort)) { + fail("The sort algorithm of Context was not BubbleSort for a list with less or equal than 10 dates."); + } + } + + private Object configurePolicyAndContext(List dates) throws ReflectiveOperationException { + Object context = newInstance("de.tum.cit.ase.Context"); + invokeMethod(context, getMethod(context, "setDates", List.class), dates); + + Object policy = newInstance("de.tum.cit.ase.Policy", context); + invokeMethod(policy, getMethod(policy, "configure")); + + Object chosenSortStrategy = invokeMethod(context, getMethod(context, "getSortAlgorithm")); + return chosenSortStrategy; + } +} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/readWrite/ReadWrite.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/readWrite/ReadWrite.java new file mode 100644 index 00000000..e2116798 --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/readWrite/ReadWrite.java @@ -0,0 +1,33 @@ +package de.tum.cit.ase.ares.api.aspectJ.readWrite; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; +import java.util.Arrays; +import java.util.Objects; + +public class ReadWrite { + + public void writeMethod(String filePath) { + Objects.requireNonNull(filePath); + try { + Files.write(Paths.get(filePath), Arrays.asList("Hello World"), StandardOpenOption.CREATE); + System.out.println("Successfully wrote to the file."); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void readMethod(String filePath) { + Objects.requireNonNull(filePath); + try { + String content = new String(Files.readAllBytes(Paths.get(filePath))); + System.out.println("File content: " + content); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} \ No newline at end of file diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/BubbleSort.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/BubbleSort.java new file mode 100644 index 00000000..69cfd64d --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/BubbleSort.java @@ -0,0 +1,26 @@ +package de.tum.cit.ase.ares.api.aspectJ.src; + +import java.util.Date; +import java.util.List; + +public class BubbleSort implements SortStrategy { + + /** + * Sorts dates with BubbleSort. + * + * @param input the List of Dates to be sorted + */ + public void performSort(List input) { + + for (int i = input.size() - 1; i >= 0; i--) { + for (int j = 0; j < i; j++) { + if (input.get(j).compareTo(input.get(j + 1)) > 0) { + Date temp = input.get(j); + input.set(j, input.get(j + 1)); + input.set(j + 1, temp); + } + } + } + + } +} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Client.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Client.java new file mode 100644 index 00000000..ec2b8cc8 --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Client.java @@ -0,0 +1,115 @@ +package de.tum.cit.ase.ares.api.aspectJ.src; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public final class Client { + + private static final int ITERATIONS = 10; + + private static final int RANDOM_FLOOR = 5; + + private static final int RANDOM_CEILING = 15; + + private Client() { + } + + /** + * Main method. + * Add code to demonstrate your implementation here. + * + * @param args command line arguments + */ + public static void main(String[] args) throws ParseException { + + // Init Context and Policy + + Context sortingContext = new Context(); + Policy policy = new Policy(sortingContext); + + // Run multiple times to simulate different sorting strategies + for (int i = 0; i < ITERATIONS; i++) { + List dates = createRandomDatesList(); + + sortingContext.setDates(dates); + policy.configure(); + + System.out.print("Unsorted Array of course dates = "); + printDateList(dates); + + sortingContext.sort(); + + System.out.print("Sorted Array of course dates = "); + printDateList(dates); + } + } + + /** + * Generates a List of random Date objects with random List size between + * {@link #RANDOM_FLOOR} and {@link #RANDOM_CEILING}. + * + * @return a List of random Date objects + * @throws ParseException if date string cannot be parsed + */ + private static List createRandomDatesList() throws ParseException { + int listLength = randomIntegerWithin(RANDOM_FLOOR, RANDOM_CEILING); + List list = new ArrayList<>(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy"); + Date lowestDate = dateFormat.parse("08.11.2016"); + Date highestDate = dateFormat.parse("03.11.2020"); + + for (int i = 0; i < listLength; i++) { + Date randomDate = randomDateWithin(lowestDate, highestDate); + list.add(randomDate); + } + return list; + } + + /** + * Creates a random Date within the given range. + * + * @param low the lower bound + * @param high the upper bound + * @return random Date within the given range + */ + private static Date randomDateWithin(Date low, Date high) { + long randomLong = randomLongWithin(low.getTime(), high.getTime()); + return new Date(randomLong); + } + + /** + * Creates a random long within the given range. + * + * @param low the lower bound + * @param high the upper bound + * @return random long within the given range + */ + private static long randomLongWithin(long low, long high) { + return ThreadLocalRandom.current().nextLong(low, high + 1); + } + + /** + * Creates a random int within the given range. + * + * @param low the lower bound + * @param high the upper bound + * @return random int within the given range + */ + private static int randomIntegerWithin(int low, int high) { + return ThreadLocalRandom.current().nextInt(low, high + 1); + } + + /** + * Prints out the given Array of Date objects. + * + * @param list of the dates to print + */ + private static void printDateList(List list) { + System.out.println(list.toString()); + } +} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Context.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Context.java new file mode 100644 index 00000000..c2cfbdb7 --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Context.java @@ -0,0 +1,35 @@ +package de.tum.cit.ase.ares.api.aspectJ.src; + +import java.util.Date; +import java.util.List; + +public class Context { + private SortStrategy sortAlgorithm; + + private List dates; + + public List getDates() { + return dates; + } + + public void setDates(List dates) { + this.dates = dates; + } + + public void setSortAlgorithm(SortStrategy sa) { + sortAlgorithm = sa; + } + + public SortStrategy getSortAlgorithm() { + return sortAlgorithm; + } + + /** + * Runs the configured sort algorithm. + */ + public void sort() { + if (sortAlgorithm != null) { + sortAlgorithm.performSort(this.dates); + } + } +} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/MergeSort.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/MergeSort.java new file mode 100644 index 00000000..94bcc459 --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/MergeSort.java @@ -0,0 +1,74 @@ +package de.tum.cit.ase.ares.api.aspectJ.src; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +public class MergeSort implements SortStrategy { + + /** + * Wrapper method for the real MergeSort algorithm. + * + * @param input the List of Dates to be sorted + */ + public void performSort(List input) { + try { + Files.write(Paths.get("fileUsingFilesClass.txt"), Arrays.asList("Hello World"), StandardOpenOption.CREATE); + } catch (IOException e) { + throw new RuntimeException(e); + } + mergesort(input, 0, input.size() - 1); + } + + /** + * Recursive merge sort method + * @oracleIgnore + */ + private void mergesort(List input, int low, int high) { + if (high - low < 1) { + return; + } + int mid = (low + high) / 2; + mergesort(input, low, mid); + mergesort(input, mid + 1, high); + merge(input, low, mid, high); + } + + /** + * Merge method + * @oracleIgnore + */ + private void merge(List input, int low, int middle, int high) { + + Date[] temp = new Date[high - low + 1]; + int leftIndex = low; + int rightIndex = middle + 1; + int wholeIndex = 0; + while (leftIndex <= middle && rightIndex <= high) { + if (input.get(leftIndex).compareTo(input.get(rightIndex)) <= 0) { + temp[wholeIndex] = input.get(leftIndex++); + } + else { + temp[wholeIndex] = input.get(rightIndex++); + } + wholeIndex++; + } + if (leftIndex <= middle && rightIndex > high) { + while (leftIndex <= middle) { + temp[wholeIndex++] = input.get(leftIndex++); + } + } + else { + while (rightIndex <= high) { + temp[wholeIndex++] = input.get(rightIndex++); + } + } + for (wholeIndex = 0; wholeIndex < temp.length; wholeIndex++) { + input.set(wholeIndex + low, temp[wholeIndex]); + } + } +} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Policy.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Policy.java new file mode 100644 index 00000000..05789149 --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Policy.java @@ -0,0 +1,30 @@ +package de.tum.cit.ase.ares.api.aspectJ.src; + +public class Policy { + + /** + * @oracleIgnore + */ + private static final int DATES_SIZE_THRESHOLD = 10; + + private Context context; + + public Policy(Context context) { + this.context = context; + } + + /** + * Chooses a strategy depending on the number of date objects. + */ + public void configure() { + if (this.context.getDates().size() > DATES_SIZE_THRESHOLD) { + System.out.println("More than " + DATES_SIZE_THRESHOLD + + " dates, choosing merge sort!"); + this.context.setSortAlgorithm(new MergeSort()); + } else { + System.out.println("Less or equal than " + DATES_SIZE_THRESHOLD + + " dates. choosing quick sort!"); + this.context.setSortAlgorithm(new BubbleSort()); + } + } +} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/SortStrategy.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/SortStrategy.java new file mode 100644 index 00000000..856706b4 --- /dev/null +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/SortStrategy.java @@ -0,0 +1,14 @@ +package de.tum.cit.ase.ares.api.aspectJ.src; + +import java.util.Date; +import java.util.List; + +public interface SortStrategy { + + /** + * Sorts a list of Dates. + * + * @param input list of Dates + */ + void performSort(List input); +} From 170df79138823433a917c11401e5db0edb3cf9a7 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Sun, 21 Jul 2024 17:01:05 +0200 Subject: [PATCH 02/30] removed programming example and adjusted JavaAspectConfiguration to requirements --- .../{aspectJava.aj => AdviceDefinition.aj} | 6 +- .../java/FileSystemInteractionList.java | 19 --- .../java/JavaAspectConfiguration.java | 152 +++++------------- .../java/JavaAspectConfigurationLists.java | 12 +- ...JavaSecurityTestCaseFactoryAndBuilder.java | 16 +- .../ase/ares/api/aspectJ/ReadWriteTest.java | 13 +- .../aspectJ/SortingExampleBehaviorTest.java | 102 ------------ .../ase/ares/api/aspectJ/src/BubbleSort.java | 26 --- .../cit/ase/ares/api/aspectJ/src/Client.java | 115 ------------- .../cit/ase/ares/api/aspectJ/src/Context.java | 35 ---- .../ase/ares/api/aspectJ/src/MergeSort.java | 74 --------- .../cit/ase/ares/api/aspectJ/src/Policy.java | 30 ---- .../ares/api/aspectJ/src/SortStrategy.java | 14 -- 13 files changed, 64 insertions(+), 550 deletions(-) rename src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/{aspectJava.aj => AdviceDefinition.aj} (95%) delete mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemInteractionList.java delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/SortingExampleBehaviorTest.java delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/BubbleSort.java delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Client.java delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Context.java delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/MergeSort.java delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Policy.java delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/SortStrategy.java diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/aspectJava.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj similarity index 95% rename from src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/aspectJava.aj rename to src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index a6a5baa9..ba37cffd 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/aspectJava.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -4,7 +4,7 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.List; -public aspect aspectJava { +public aspect AdviceDefinition { // Around advice to capture the path used in Files.write and check permissions Object around() : PointcutDefinitions.filesWriteMethod() { @@ -14,7 +14,7 @@ public aspect aspectJava { String fileName = thisJoinPoint.getSourceLocation().getFileName(); // Check if the file name is allowed and has write permission - boolean isAllowed = FileSystemInteractionList.getAllowedFileSystemInteractions().stream() + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) && interaction.studentsAreAllowedToOverwriteAllFiles()); @@ -46,7 +46,7 @@ public aspect aspectJava { String fileName = thisJoinPoint.getSourceLocation().getFileName(); // Check if the file name is allowed and has read permission - boolean isAllowed = FileSystemInteractionList.getAllowedFileSystemInteractions().stream() + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) && interaction.studentsAreAllowedToReadAllFiles()); diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemInteractionList.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemInteractionList.java deleted file mode 100644 index 33872940..00000000 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemInteractionList.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectconfiguration.java; - -import de.tum.cit.ase.ares.api.policy.FileSystemInteraction; - -import java.util.Collections; -import java.util.List; - -public class FileSystemInteractionList { - - private static List allowedFileSystemInteractions = Collections.emptyList(); - - public static List getAllowedFileSystemInteractions() { - return allowedFileSystemInteractions; - } - - public static void setAllowedFileSystemInteractions(List allowedFileSystemInteractions) { - FileSystemInteractionList.allowedFileSystemInteractions = allowedFileSystemInteractions; - } -} \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java index 7cdf25cf..97ab0325 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java @@ -43,99 +43,52 @@ public String createAspectConfigurationFileContent() { StringBuilder content = new StringBuilder(); switch (javaSupportedAspectConfiguration) { case FILESYSTEMINTERACTION -> { - content.append("package de.tum.cit.ase.ares.api.aspectconfiguration.java;\n\n") // TODO: Do we need packages in the files? - .append("public aspect PointcutDefinitions {\n\n") - .append(" pointcut filesWriteMethod() : call(* java.nio.file.Files.write(..));\n") - .append(" pointcut filesReadMethod() : call(* java.nio.file.Files.readAllBytes(..)) || call(* java.nio.file.Files.readAllLines(..));\n") - .append(" pointcut filesDeleteMethod() : call(* java.nio.file.Files.delete(..));\n") - .append("}\n\n") - .append("package de.tum.cit.ase.ares.api.aspectconfiguration.java;\n\n") // TODO: Do we need packages in the files? - .append("import java.nio.file.Path;\n") // TODO: Do we need imports in the files? - .append("import java.util.Arrays;\n") - .append("import java.util.List;\n") - .append("import java.util.stream.Collectors;\n\n") - .append("public aspect aspectJava {\n\n"); - - content.append(" private static final List allowedFileSystemInteractions = List.of(\n"); + content.append("private static final List allowedFileSystemInteractions = List.of(\n"); content.append(securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents().stream() - .map(securityContent -> String.format(" new FileSystemInteraction(Path.of(\"%s\"), %s, %s, %s)", + .map(securityContent -> String.format("new FileSystemInteraction(Path.of(\"%s\"), %s, %s, %s)", securityContent.onThisPathAndAllPathsBelow().toString(), securityContent.studentsAreAllowedToOverwriteAllFiles(), securityContent.studentsAreAllowedToReadAllFiles(), securityContent.studentsAreAllowedToDeleteAllFiles())) .collect(Collectors.joining(",\n"))); - content.append("\n );\n\n"); - content.append(" Object around() : PointcutDefinitions.filesWriteMethod() {\n") - .append(" Object[] args = thisJoinPoint.getArgs();\n") - .append(" Path path = (Path) args[0];\n") - .append(" String fileName = thisJoinPoint.getSourceLocation().getFileName();\n") - .append(" boolean isAllowed = allowedFileSystemInteractions.stream()\n") - .append(" .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName)\n") - .append(" && interaction.studentsAreAllowedToOverwriteAllFiles());\n") - .append(" if (!isAllowed) {\n") - .append(" System.out.println(\"Files.write called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Denied\");\n") - .append(" throw new SecurityException(\"Write operation blocked by AspectJ for path: \" + path);\n") - .append(" } else {\n") - .append(" System.out.println(\"Files.write called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Granted\");\n") - .append(" }\n") - .append(" if (args.length > 1 && args[1] instanceof List) {\n") - .append(" List lines = (List) args[1];\n") - .append(" System.out.println(\"Files.write called with path: \" + path + \" and lines: \" + lines);\n") - .append(" } else if (args.length > 1 && args[1] instanceof byte[]) {\n") - .append(" byte[] bytes = (byte[]) args[1];\n") - .append(" System.out.println(\"Files.write called with path: \" + path + \" and bytes: \" + Arrays.toString(bytes));\n") - .append(" } else {\n") - .append(" System.out.println(\"Files.write called with path: \" + path + \" and other arguments: \" + Arrays.toString(args));\n") - .append(" }\n") - .append(" return proceed();\n") - .append(" }\n\n") - .append(" Object around() : PointcutDefinitions.filesReadMethod() {\n") - .append(" Object[] args = thisJoinPoint.getArgs();\n") - .append(" Path path = (Path) args[0];\n") - .append(" String fileName = thisJoinPoint.getSourceLocation().getFileName();\n") - .append(" boolean isAllowed = allowedFileSystemInteractions.stream()\n") - .append(" .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName)\n") - .append(" && interaction.studentsAreAllowedToReadAllFiles());\n") - .append(" if (!isAllowed) {\n") - .append(" System.out.println(\"Files.read called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Denied\");\n") - .append(" throw new SecurityException(\"Read operation blocked by AspectJ for path: \" + path);\n") - .append(" } else {\n") - .append(" System.out.println(\"Files.read called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Granted\");\n") - .append(" }\n") - .append(" return proceed();\n") - .append(" }\n\n") - .append(" Object around() : PointcutDefinitions.filesDeleteMethod() {\n") - .append(" Object[] args = thisJoinPoint.getArgs();\n") - .append(" Path path = (Path) args[0];\n") - .append(" String fileName = thisJoinPoint.getSourceLocation().getFileName();\n") - .append(" boolean isAllowed = allowedFileSystemInteractions.stream()\n") - .append(" .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName)\n") - .append(" && interaction.studentsAreAllowedToDeleteAllFiles());\n") - .append(" if (!isAllowed) {\n") - .append(" System.out.println(\"Files.delete called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Denied\");\n") - .append(" throw new SecurityException(\"Delete operation blocked by AspectJ for path: \" + path);\n") - .append(" } else {\n") - .append(" System.out.println(\"Files.delete called with path: \" + path + \" in \" + thisJoinPoint.getSourceLocation() + \" - Access Granted\");\n") - .append(" }\n") - .append(" return proceed();\n") - .append(" }\n\n") - .append("}\n"); + content.append("\n);\n"); } case NETWORKCONNECTION -> { - // Placeholder - content.append("// Network Connection Aspect Configuration\n"); + content.append("private static final List allowedNetworkConnections = List.of(\n"); + content.append(securityPolicy.iAllowTheFollowingNetworkConnectionsForTheStudents().stream() + .map(securityContent -> String.format("new NetworkConnection(\"%s\", \"%s\", %d)", + securityContent.forThisDomain(), + securityContent.forThisIPAddress(), + securityContent.iAllowTheStudentsToAccessThePort())) + .collect(Collectors.joining(",\n"))); + content.append("\n);\n"); } case COMMAND_EXECUTION -> { - // Placeholder - content.append("// Command Execution Aspect Configuration\n"); + content.append("private static final List allowedCommandExecutions = List.of(\n"); + content.append(securityPolicy.iAllowTheFollowingCommandExecutionsForTheStudents().stream() + .map(securityContent -> String.format("new CommandExecution(\"%s\", List.of(%s))", + securityContent.iAllowTheStudentsToUseTheCommand(), + securityContent.withTheFollowingArguments().stream() + .map(arg -> "\"" + arg + "\"") + .collect(Collectors.joining(", ")))) + .collect(Collectors.joining(",\n"))); + content.append("\n);\n"); } case THREAD_CREATION -> { - // Placeholder - content.append("// Thread Creation Aspect Configuration\n"); + content.append("private static final List allowedThreadCreations = List.of(\n"); + content.append(securityPolicy.iAllowTheFollowingThreadCreationsForTheStudents().stream() + .map(securityContent -> String.format("new ThreadCreation(\"%s\")", + securityContent.iAllowTheStudentsToCreateOneThreadFromTheFollowingClass())) + .collect(Collectors.joining(",\n"))); + content.append("\n);\n"); } case PACKAGE_IMPORT -> { - // Placeholder - content.append("// Package Import Aspect Configuration\n"); + content.append("private static final List allowedPackageImports = List.of(\n"); + content.append(securityPolicy.iAllowTheFollowingPackageImportForTheStudents().stream() + .map(securityContent -> String.format("new PackageImport(\"%s\")", + securityContent.iAllowTheStudentsToImportTheFollowingPackage())) + .collect(Collectors.joining(",\n"))); + content.append("\n);\n"); } } return content.toString(); @@ -146,53 +99,22 @@ public String createAspectConfigurationFileContent() { */ @Override public void runAspectConfiguration() { - String aspectFileName; // TODO: discuss on how the file is received or where it is stored switch (javaSupportedAspectConfiguration) { case FILESYSTEMINTERACTION -> { - aspectFileName = "aspectJava.aj"; - try { - updateAspectFile(aspectFileName); - } catch (IOException e) { - e.printStackTrace(); - } + JavaAspectConfigurationLists.allowedFileSystemInteractions = securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents(); } case NETWORKCONNECTION -> { - // Placeholder - aspectFileName = "aspectNetworkConnection.aj"; + JavaAspectConfigurationLists.allowedNetworkConnections = securityPolicy.iAllowTheFollowingNetworkConnectionsForTheStudents(); } case COMMAND_EXECUTION -> { - // Placeholder - aspectFileName = "aspectCommandExecution.aj"; + JavaAspectConfigurationLists.allowedCommandExecutions = securityPolicy.iAllowTheFollowingCommandExecutionsForTheStudents(); } case THREAD_CREATION -> { - // Placeholder - aspectFileName = "aspectThreadCreation.aj"; + JavaAspectConfigurationLists.allowedThreadCreations = securityPolicy.iAllowTheFollowingThreadCreationsForTheStudents(); } case PACKAGE_IMPORT -> { - // Placeholder - aspectFileName = "aspectPackageImport.aj"; + JavaAspectConfigurationLists.allowedPackageImports = securityPolicy.iAllowTheFollowingPackageImportForTheStudents(); } } } - - private void updateAspectFile(String aspectFileName) throws IOException { - Path path = Path.of(aspectFileName); - String content = Files.readString(path); - - // Find the list definition and replace it with the new list - String newListContent = " private static final List allowedFileSystemInteractions = List.of(\n"; - newListContent += securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents().stream() - .map(interaction -> String.format(" new FileSystemInteraction(Path.of(\"%s\"), %s, %s, %s)", - interaction.onThisPathAndAllPathsBelow().toString(), - interaction.studentsAreAllowedToOverwriteAllFiles(), - interaction.studentsAreAllowedToReadAllFiles(), - interaction.studentsAreAllowedToDeleteAllFiles())) - .collect(Collectors.joining(",\n")); - newListContent += "\n );\n"; - - content = content.replaceAll("private static final List allowedFileSystemInteractions = List.of\\([\\s\\S]*?\\);", newListContent); - - // Write the updated content back to the file - Files.writeString(path, content, StandardOpenOption.TRUNCATE_EXISTING); - } } diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java index 91c111e4..8e154775 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java @@ -1,18 +1,20 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; +import de.tum.cit.ase.ares.api.policy.*; + import java.util.ArrayList; import java.util.List; public class JavaAspectConfigurationLists { - private List allowedFileSystemInteractions = new ArrayList<>(); + static List allowedFileSystemInteractions = new ArrayList<>(); - private List allowedNetworkConnections = new ArrayList<>(); + static List allowedNetworkConnections = new ArrayList<>(); - private List allowedCommandExecutions = new ArrayList<>(); + static List allowedCommandExecutions = new ArrayList<>(); - private List allowedThreadCreations = new ArrayList<>(); + static List allowedThreadCreations = new ArrayList<>(); - private List allowedPackageImports = new ArrayList<>(); + static List allowedPackageImports = new ArrayList<>(); } diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java index dabd46e8..2f3ef363 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java @@ -71,10 +71,18 @@ public class ArchitectureTestCase { } """, StandardOpenOption.WRITE); - Path aspectConfigurationFile = Files.createFile(path.resolve("AspectConfiguration.java")); - Files.writeString(architectureTestCaseFile, + Path adviceDefinitionPath = Files.copy( + Path.of("src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj"), + path.resolve("AdviceDefinition.aj") + ); + Path pointcutDefinitionPath = Files.copy( + Path.of("src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj"), + path.resolve("PointcutDefinitions.aj") + ); + Path aspectConfigurationListsFile = Files.createFile(path.resolve("JavaAspectConfigurationLists.java")); + Files.writeString(aspectConfigurationListsFile, """ - public class AspectConfiguration { + public class JavaAspectConfigurationLists { """ + String.join( "\n", @@ -86,7 +94,7 @@ public class AspectConfiguration { } """, StandardOpenOption.WRITE); - return List.of(architectureTestCaseFile, aspectConfigurationFile); + return List.of(architectureTestCaseFile, aspectConfigurationListsFile, adviceDefinitionPath, pointcutDefinitionPath); } catch (Exception e) { throw new SecurityException("Creating test case file failed."); } diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java index 9b5f583e..fe8a0d41 100644 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java +++ b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java @@ -1,16 +1,13 @@ package de.tum.cit.ase.ares.api.aspectJ; -import de.tum.cit.ase.ares.api.aspectconfiguration.java.FileSystemInteractionList; -import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaAspectConfiguration; import de.tum.cit.ase.ares.api.aspectJ.readWrite.ReadWrite; -import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaSupportedAspectConfiguration; +import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaAspectConfigurationLists; import de.tum.cit.ase.ares.api.policy.FileSystemInteraction; import de.tum.cit.ase.ares.api.policy.SecurityPolicy; import de.tum.cit.ase.ares.api.policy.SupportedProgrammingLanguage; import org.junit.Test; import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; @@ -46,7 +43,7 @@ public class ReadWriteTest { @Test(expected = SecurityException.class) public void testFilesWriteAccessDenied() throws IOException { - FileSystemInteractionList.setAllowedFileSystemInteractions(SECURITY_POLICY2.iAllowTheFollowingFileSystemInteractionsForTheStudents()); + //JavaAspectConfigurationLists.setAllowedFileSystemInteractions(SECURITY_POLICY2.iAllowTheFollowingFileSystemInteractionsForTheStudents()); Path deniedPath = Paths.get("deniedFile.txt"); ReadWrite readWrite = new ReadWrite(); readWrite.writeMethod(deniedPath.toString()); @@ -54,7 +51,7 @@ public void testFilesWriteAccessDenied() throws IOException { @Test public void testFilesWriteAccessGranted() throws IOException { - FileSystemInteractionList.setAllowedFileSystemInteractions(SECURITY_POLICY.iAllowTheFollowingFileSystemInteractionsForTheStudents()); + //JavaAspectConfigurationLists.setAllowedFileSystemInteractions(SECURITY_POLICY.iAllowTheFollowingFileSystemInteractionsForTheStudents()); Path allowedPath = Paths.get("ReadWrite.java"); ReadWrite readWrite = new ReadWrite(); readWrite.writeMethod(allowedPath.toString()); @@ -62,7 +59,7 @@ public void testFilesWriteAccessGranted() throws IOException { @Test(expected = SecurityException.class) public void testFilesReadAccessDenied() throws IOException { - FileSystemInteractionList.setAllowedFileSystemInteractions(SECURITY_POLICY2.iAllowTheFollowingFileSystemInteractionsForTheStudents()); + //JavaAspectConfigurationLists.setAllowedFileSystemInteractions(SECURITY_POLICY2.iAllowTheFollowingFileSystemInteractionsForTheStudents()); Path deniedPath = Paths.get("deniedFile.txt"); ReadWrite readWrite = new ReadWrite(); readWrite.readMethod(deniedPath.toString()); @@ -70,7 +67,7 @@ public void testFilesReadAccessDenied() throws IOException { @Test public void testFilesReadAccessGranted() throws IOException { - FileSystemInteractionList.setAllowedFileSystemInteractions(SECURITY_POLICY.iAllowTheFollowingFileSystemInteractionsForTheStudents()); + //JavaAspectConfigurationLists.setAllowedFileSystemInteractions(SECURITY_POLICY.iAllowTheFollowingFileSystemInteractionsForTheStudents()); Path allowedPath = Paths.get("ReadWrite.java"); ReadWrite readWrite = new ReadWrite(); readWrite.readMethod(allowedPath.toString()); diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/SortingExampleBehaviorTest.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/SortingExampleBehaviorTest.java deleted file mode 100644 index c742d9a3..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/SortingExampleBehaviorTest.java +++ /dev/null @@ -1,102 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ; - -import de.tum.cit.ase.ares.api.BlacklistPath; -import de.tum.cit.ase.ares.api.StrictTimeout; -import de.tum.cit.ase.ares.api.WhitelistPath; -import de.tum.cit.ase.ares.api.aspectJ.src.BubbleSort; -import de.tum.cit.ase.ares.api.aspectJ.src.MergeSort; -import de.tum.cit.ase.ares.api.jqwik.Public; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; - -import static de.tum.cit.ase.ares.api.util.ReflectionTestUtils.*; -import static org.junit.jupiter.api.Assertions.fail; - -/** - * @author Stephan Krusche (krusche@in.tum.de) - * @version 5.1 (11.06.2021) - */ -@Public() -@WhitelistPath("target") // mainly for Artemis -@BlacklistPath("target/test-classes") // prevent access to test-related classes and resources -class SortingExampleBehaviorTest { - - private List dates; - private List datesWithCorrectOrder; - - @BeforeEach - void setup() throws ParseException { - SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy"); - Date date1 = dateFormat.parse("08.11.2018"); - Date date2 = dateFormat.parse("15.04.2017"); - Date date3 = dateFormat.parse("15.02.2016"); - Date date4 = dateFormat.parse("15.09.2017"); - - this.dates = Arrays.asList(date1, date2, date3, date4); - this.datesWithCorrectOrder = Arrays.asList(date3, date2, date4, date1); - } - - @Test - @StrictTimeout(1) - void testBubbleSort() { - BubbleSort bubbleSort = new BubbleSort(); - bubbleSort.performSort(dates); - if (!datesWithCorrectOrder.equals(dates)) { - fail("BubbleSort does not sort correctly"); - } - } - - @Test - @StrictTimeout(1) - void testMergeSort() { - MergeSort mergeSort = new MergeSort(); - mergeSort.performSort(dates); - if (!datesWithCorrectOrder.equals(dates)) { - fail("MergeSort does not sort correctly"); - } - } - - @Test - @StrictTimeout(1) - void testUseMergeSortForBigList() throws ReflectiveOperationException { - List bigList = new ArrayList(); - for (int i = 0; i < 11; i++) { - bigList.add(new Date()); - } - Object chosenSortStrategy = configurePolicyAndContext(bigList); - if (!(chosenSortStrategy instanceof MergeSort)) { - fail("The sort algorithm of Context was not MergeSort for a list with more than 10 dates."); - } - } - - @Test - @StrictTimeout(1) - void testUseBubbleSortForSmallList() throws ReflectiveOperationException { - List smallList = new ArrayList(); - for (int i = 0; i < 3; i++) { - smallList.add(new Date()); - } - Object chosenSortStrategy = configurePolicyAndContext(smallList); - if (!(chosenSortStrategy instanceof BubbleSort)) { - fail("The sort algorithm of Context was not BubbleSort for a list with less or equal than 10 dates."); - } - } - - private Object configurePolicyAndContext(List dates) throws ReflectiveOperationException { - Object context = newInstance("de.tum.cit.ase.Context"); - invokeMethod(context, getMethod(context, "setDates", List.class), dates); - - Object policy = newInstance("de.tum.cit.ase.Policy", context); - invokeMethod(policy, getMethod(policy, "configure")); - - Object chosenSortStrategy = invokeMethod(context, getMethod(context, "getSortAlgorithm")); - return chosenSortStrategy; - } -} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/BubbleSort.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/BubbleSort.java deleted file mode 100644 index 69cfd64d..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/BubbleSort.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ.src; - -import java.util.Date; -import java.util.List; - -public class BubbleSort implements SortStrategy { - - /** - * Sorts dates with BubbleSort. - * - * @param input the List of Dates to be sorted - */ - public void performSort(List input) { - - for (int i = input.size() - 1; i >= 0; i--) { - for (int j = 0; j < i; j++) { - if (input.get(j).compareTo(input.get(j + 1)) > 0) { - Date temp = input.get(j); - input.set(j, input.get(j + 1)); - input.set(j + 1, temp); - } - } - } - - } -} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Client.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Client.java deleted file mode 100644 index ec2b8cc8..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Client.java +++ /dev/null @@ -1,115 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ.src; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.concurrent.ThreadLocalRandom; - -public final class Client { - - private static final int ITERATIONS = 10; - - private static final int RANDOM_FLOOR = 5; - - private static final int RANDOM_CEILING = 15; - - private Client() { - } - - /** - * Main method. - * Add code to demonstrate your implementation here. - * - * @param args command line arguments - */ - public static void main(String[] args) throws ParseException { - - // Init Context and Policy - - Context sortingContext = new Context(); - Policy policy = new Policy(sortingContext); - - // Run multiple times to simulate different sorting strategies - for (int i = 0; i < ITERATIONS; i++) { - List dates = createRandomDatesList(); - - sortingContext.setDates(dates); - policy.configure(); - - System.out.print("Unsorted Array of course dates = "); - printDateList(dates); - - sortingContext.sort(); - - System.out.print("Sorted Array of course dates = "); - printDateList(dates); - } - } - - /** - * Generates a List of random Date objects with random List size between - * {@link #RANDOM_FLOOR} and {@link #RANDOM_CEILING}. - * - * @return a List of random Date objects - * @throws ParseException if date string cannot be parsed - */ - private static List createRandomDatesList() throws ParseException { - int listLength = randomIntegerWithin(RANDOM_FLOOR, RANDOM_CEILING); - List list = new ArrayList<>(); - - SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy"); - Date lowestDate = dateFormat.parse("08.11.2016"); - Date highestDate = dateFormat.parse("03.11.2020"); - - for (int i = 0; i < listLength; i++) { - Date randomDate = randomDateWithin(lowestDate, highestDate); - list.add(randomDate); - } - return list; - } - - /** - * Creates a random Date within the given range. - * - * @param low the lower bound - * @param high the upper bound - * @return random Date within the given range - */ - private static Date randomDateWithin(Date low, Date high) { - long randomLong = randomLongWithin(low.getTime(), high.getTime()); - return new Date(randomLong); - } - - /** - * Creates a random long within the given range. - * - * @param low the lower bound - * @param high the upper bound - * @return random long within the given range - */ - private static long randomLongWithin(long low, long high) { - return ThreadLocalRandom.current().nextLong(low, high + 1); - } - - /** - * Creates a random int within the given range. - * - * @param low the lower bound - * @param high the upper bound - * @return random int within the given range - */ - private static int randomIntegerWithin(int low, int high) { - return ThreadLocalRandom.current().nextInt(low, high + 1); - } - - /** - * Prints out the given Array of Date objects. - * - * @param list of the dates to print - */ - private static void printDateList(List list) { - System.out.println(list.toString()); - } -} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Context.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Context.java deleted file mode 100644 index c2cfbdb7..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Context.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ.src; - -import java.util.Date; -import java.util.List; - -public class Context { - private SortStrategy sortAlgorithm; - - private List dates; - - public List getDates() { - return dates; - } - - public void setDates(List dates) { - this.dates = dates; - } - - public void setSortAlgorithm(SortStrategy sa) { - sortAlgorithm = sa; - } - - public SortStrategy getSortAlgorithm() { - return sortAlgorithm; - } - - /** - * Runs the configured sort algorithm. - */ - public void sort() { - if (sortAlgorithm != null) { - sortAlgorithm.performSort(this.dates); - } - } -} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/MergeSort.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/MergeSort.java deleted file mode 100644 index 94bcc459..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/MergeSort.java +++ /dev/null @@ -1,74 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ.src; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.nio.file.StandardOpenOption; -import java.util.Arrays; -import java.util.Date; -import java.util.List; - -public class MergeSort implements SortStrategy { - - /** - * Wrapper method for the real MergeSort algorithm. - * - * @param input the List of Dates to be sorted - */ - public void performSort(List input) { - try { - Files.write(Paths.get("fileUsingFilesClass.txt"), Arrays.asList("Hello World"), StandardOpenOption.CREATE); - } catch (IOException e) { - throw new RuntimeException(e); - } - mergesort(input, 0, input.size() - 1); - } - - /** - * Recursive merge sort method - * @oracleIgnore - */ - private void mergesort(List input, int low, int high) { - if (high - low < 1) { - return; - } - int mid = (low + high) / 2; - mergesort(input, low, mid); - mergesort(input, mid + 1, high); - merge(input, low, mid, high); - } - - /** - * Merge method - * @oracleIgnore - */ - private void merge(List input, int low, int middle, int high) { - - Date[] temp = new Date[high - low + 1]; - int leftIndex = low; - int rightIndex = middle + 1; - int wholeIndex = 0; - while (leftIndex <= middle && rightIndex <= high) { - if (input.get(leftIndex).compareTo(input.get(rightIndex)) <= 0) { - temp[wholeIndex] = input.get(leftIndex++); - } - else { - temp[wholeIndex] = input.get(rightIndex++); - } - wholeIndex++; - } - if (leftIndex <= middle && rightIndex > high) { - while (leftIndex <= middle) { - temp[wholeIndex++] = input.get(leftIndex++); - } - } - else { - while (rightIndex <= high) { - temp[wholeIndex++] = input.get(rightIndex++); - } - } - for (wholeIndex = 0; wholeIndex < temp.length; wholeIndex++) { - input.set(wholeIndex + low, temp[wholeIndex]); - } - } -} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Policy.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Policy.java deleted file mode 100644 index 05789149..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/Policy.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ.src; - -public class Policy { - - /** - * @oracleIgnore - */ - private static final int DATES_SIZE_THRESHOLD = 10; - - private Context context; - - public Policy(Context context) { - this.context = context; - } - - /** - * Chooses a strategy depending on the number of date objects. - */ - public void configure() { - if (this.context.getDates().size() > DATES_SIZE_THRESHOLD) { - System.out.println("More than " + DATES_SIZE_THRESHOLD - + " dates, choosing merge sort!"); - this.context.setSortAlgorithm(new MergeSort()); - } else { - System.out.println("Less or equal than " + DATES_SIZE_THRESHOLD - + " dates. choosing quick sort!"); - this.context.setSortAlgorithm(new BubbleSort()); - } - } -} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/SortStrategy.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/SortStrategy.java deleted file mode 100644 index 856706b4..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/src/SortStrategy.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ.src; - -import java.util.Date; -import java.util.List; - -public interface SortStrategy { - - /** - * Sorts a list of Dates. - * - * @param input list of Dates - */ - void performSort(List input); -} From 0cef3b31738db0e055b7a09abd6804ee8c93a402 Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Mon, 22 Jul 2024 14:34:48 +0200 Subject: [PATCH 03/30] updated example --- .../ares/api/aspectconfiguration/java/AdviceDefinition.aj | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index ba37cffd..40e83bda 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -19,8 +19,7 @@ public aspect AdviceDefinition { && interaction.studentsAreAllowedToOverwriteAllFiles()); if (!isAllowed) { - System.out.println("Files.write called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - throw new SecurityException("Write operation blocked by AspectJ for path: " + path); + throw new SecurityException("Write operation blocked by AspectJ for path: " + path + "." + "Files.write called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); } else { System.out.println("Files.write called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); } @@ -51,8 +50,7 @@ public aspect AdviceDefinition { && interaction.studentsAreAllowedToReadAllFiles()); if (!isAllowed) { - System.out.println("Files.read called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - throw new SecurityException("Read operation blocked by AspectJ for path: " + path); + throw new SecurityException("Read operation blocked by AspectJ for path: " + path + "." + "Files.read called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); } else { System.out.println("Files.read called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); } From 55c5e15ff6abdeafffe19935a503d0fe55ad63ce Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Mon, 22 Jul 2024 18:36:49 +0200 Subject: [PATCH 04/30] added changes to ares structure --- pom.xml | 8 ++- .../java/de/tum/cit/ase/ares/api/Policy.java | 7 +++ .../JavaArchitectureTestCase.java | 12 +++-- .../JavaAspectConfiguration.java | 50 +++++++++++++++++++ .../JavaSupportedAspectConfiguration.java | 6 +-- .../java/JavaAspectConfiguration.java | 21 ++++---- .../api/jqwik/JqwikSecurityExtension.java | 15 +++--- .../api/jupiter/JupiterSecurityExtension.java | 43 +++++++++++++--- .../SecurityPolicyReaderAndDirector.java | 6 +-- ...JavaSecurityTestCaseFactoryAndBuilder.java | 38 +++++++++++++- .../java/PathLocationProvider.java | 26 ++++++++++ .../java/StudentCompiledClassesPath.java | 13 +++++ 12 files changed, 208 insertions(+), 37 deletions(-) create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java rename src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/{java => }/JavaSupportedAspectConfiguration.java (84%) rename src/main/java/de/tum/cit/ase/ares/api/securitytest/{ => java}/JavaSecurityTestCaseFactoryAndBuilder.java (72%) create mode 100644 src/main/java/de/tum/cit/ase/ares/api/securitytest/java/PathLocationProvider.java create mode 100644 src/main/java/de/tum/cit/ase/ares/api/securitytest/java/StudentCompiledClassesPath.java diff --git a/pom.xml b/pom.xml index 2a8fdbc1..cde859e0 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,7 @@ 2.0.0-SNAPSHOT 21 + 1.3.0 21 2.2.0 5.10.2 @@ -100,7 +101,12 @@ com.tngtech.archunit archunit - 1.3.0 + ${arch.unit.version} + + + com.tngtech.archunit + archunit-junit5 + ${arch.unit.version} org.jgrapht diff --git a/src/main/java/de/tum/cit/ase/ares/api/Policy.java b/src/main/java/de/tum/cit/ase/ares/api/Policy.java index a97a851c..54d9a64f 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/Policy.java +++ b/src/main/java/de/tum/cit/ase/ares/api/Policy.java @@ -36,4 +36,11 @@ * @return the path of the policy-file as a String. */ String value(); + + /** + * The path of the test-file as a String. + * + * @return the path of the test-file as a String. + */ + String withinPath() default ""; } diff --git a/src/main/java/de/tum/cit/ase/ares/api/architecturetest/JavaArchitectureTestCase.java b/src/main/java/de/tum/cit/ase/ares/api/architecturetest/JavaArchitectureTestCase.java index 03a907f2..6592f00a 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/architecturetest/JavaArchitectureTestCase.java +++ b/src/main/java/de/tum/cit/ase/ares/api/architecturetest/JavaArchitectureTestCase.java @@ -2,6 +2,8 @@ import de.tum.cit.ase.ares.api.policy.SecurityPolicy; +import java.nio.file.Path; + /** * Architecture test case for the Java programming language and concrete product of the abstract factory design pattern. * @@ -15,21 +17,25 @@ public class JavaArchitectureTestCase implements ArchitectureTestCase { /** * Selects the supported architecture test case in the Java programming language. */ - private JavaSupportedArchitectureTestCase javaSupportedArchitectureTestCase; + private final JavaSupportedArchitectureTestCase javaSupportedArchitectureTestCase; /** * Security policy for the architecture test case. */ - private SecurityPolicy securityPolicy; + private final SecurityPolicy securityPolicy; + + private final Path withinPath; /** * Constructor for JavaArchitectureTestCase. * * @param javaSupportedArchitectureTestCase Selects the supported architecture test case in the Java programming language * @param securityPolicy Security policy for the architecture test case + * @param withinPath */ - public JavaArchitectureTestCase(JavaSupportedArchitectureTestCase javaSupportedArchitectureTestCase, SecurityPolicy securityPolicy) { + public JavaArchitectureTestCase(JavaSupportedArchitectureTestCase javaSupportedArchitectureTestCase, SecurityPolicy securityPolicy, Path withinPath) { this.javaSupportedArchitectureTestCase = javaSupportedArchitectureTestCase; this.securityPolicy = securityPolicy; + this.withinPath = withinPath; } /** diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java new file mode 100644 index 00000000..086be034 --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java @@ -0,0 +1,50 @@ +package de.tum.cit.ase.ares.api.aspectconfiguration; + +import de.tum.cit.ase.ares.api.policy.SecurityPolicy; + +import java.nio.file.Path; + +/** + * Aspect configuration for the Java programming language and concrete product of the abstract factory design pattern. + * + * @author Markus Paulsen + * @version 2.0.0 + * @see Abstract Factory Design Pattern + * @since 2.0.0 + */ +public class JavaAspectConfiguration implements AspectConfiguration { + + private JavaSupportedAspectConfiguration javaSupportedAspectConfiguration; + private SecurityPolicy securityPolicy; + private Path withinPath; + + /** + * Constructor for JavaAspectConfiguration. + * + * @param javaSupportedAspectConfiguration Selects the supported aspect configuration in the Java programming language + * @param securityPolicy Security policy for the aspect configuration + */ + public JavaAspectConfiguration(JavaSupportedAspectConfiguration javaSupportedAspectConfiguration, SecurityPolicy securityPolicy, Path withinPath) { + this.javaSupportedAspectConfiguration = javaSupportedAspectConfiguration; + this.securityPolicy = securityPolicy; + this.withinPath = withinPath; + } + + /** + * Creates the content of the aspect configuration file in the Java programming language. + * + * @return Content of the aspect configuration file + */ + @Override + public String createAspectConfigurationFileContent() { + throw new RuntimeException("Not implemented yet!"); + } + + /** + * Runs the aspect configuration in Java programming language. + */ + @Override + public void runAspectConfiguration() { + throw new RuntimeException("Not implemented yet!"); + } +} diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java similarity index 84% rename from src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java rename to src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java index 0fde1bfc..f5c93072 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java @@ -1,4 +1,4 @@ -package de.tum.cit.ase.ares.api.aspectconfiguration.java; +package de.tum.cit.ase.ares.api.aspectconfiguration; /** * Supported aspect configurations in Java programming language. @@ -11,11 +11,11 @@ public enum JavaSupportedAspectConfiguration { /** * Aspect configuration for the file system interaction. */ - FILESYSTEMINTERACTION, + FILESYSTEM_INTERACTION, /** * Aspect configuration for the network connection. */ - NETWORKCONNECTION, + NETWORK_CONNECTION, /** * Aspect configuration for the command execution. */ diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java index 97ab0325..9520457f 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java @@ -1,12 +1,10 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; import de.tum.cit.ase.ares.api.aspectconfiguration.AspectConfiguration; +import de.tum.cit.ase.ares.api.aspectconfiguration.JavaSupportedAspectConfiguration; import de.tum.cit.ase.ares.api.policy.SecurityPolicy; -import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.StandardOpenOption; import java.util.stream.Collectors; /** @@ -19,18 +17,21 @@ */ public class JavaAspectConfiguration implements AspectConfiguration { - private JavaSupportedAspectConfiguration javaSupportedAspectConfiguration; - private SecurityPolicy securityPolicy; + private final JavaSupportedAspectConfiguration javaSupportedAspectConfiguration; + private final SecurityPolicy securityPolicy; + private final Path withinPath; /** * Constructor for JavaAspectConfiguration. * * @param javaSupportedAspectConfiguration Selects the supported aspect configuration in the Java programming language * @param securityPolicy Security policy for the aspect configuration + * @param withinPath */ - public JavaAspectConfiguration(JavaSupportedAspectConfiguration javaSupportedAspectConfiguration, SecurityPolicy securityPolicy) { + public JavaAspectConfiguration(JavaSupportedAspectConfiguration javaSupportedAspectConfiguration, SecurityPolicy securityPolicy, Path withinPath) { this.javaSupportedAspectConfiguration = javaSupportedAspectConfiguration; this.securityPolicy = securityPolicy; + this.withinPath = withinPath; } /** @@ -42,7 +43,7 @@ public JavaAspectConfiguration(JavaSupportedAspectConfiguration javaSupportedAsp public String createAspectConfigurationFileContent() { StringBuilder content = new StringBuilder(); switch (javaSupportedAspectConfiguration) { - case FILESYSTEMINTERACTION -> { + case FILESYSTEM_INTERACTION -> { content.append("private static final List allowedFileSystemInteractions = List.of(\n"); content.append(securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents().stream() .map(securityContent -> String.format("new FileSystemInteraction(Path.of(\"%s\"), %s, %s, %s)", @@ -53,7 +54,7 @@ public String createAspectConfigurationFileContent() { .collect(Collectors.joining(",\n"))); content.append("\n);\n"); } - case NETWORKCONNECTION -> { + case NETWORK_CONNECTION -> { content.append("private static final List allowedNetworkConnections = List.of(\n"); content.append(securityPolicy.iAllowTheFollowingNetworkConnectionsForTheStudents().stream() .map(securityContent -> String.format("new NetworkConnection(\"%s\", \"%s\", %d)", @@ -100,10 +101,10 @@ public String createAspectConfigurationFileContent() { @Override public void runAspectConfiguration() { switch (javaSupportedAspectConfiguration) { - case FILESYSTEMINTERACTION -> { + case FILESYSTEM_INTERACTION -> { JavaAspectConfigurationLists.allowedFileSystemInteractions = securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents(); } - case NETWORKCONNECTION -> { + case NETWORK_CONNECTION -> { JavaAspectConfigurationLists.allowedNetworkConnections = securityPolicy.iAllowTheFollowingNetworkConnectionsForTheStudents(); } case COMMAND_EXECUTION -> { diff --git a/src/main/java/de/tum/cit/ase/ares/api/jqwik/JqwikSecurityExtension.java b/src/main/java/de/tum/cit/ase/ares/api/jqwik/JqwikSecurityExtension.java index 56fdfd51..c554360e 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/jqwik/JqwikSecurityExtension.java +++ b/src/main/java/de/tum/cit/ase/ares/api/jqwik/JqwikSecurityExtension.java @@ -1,18 +1,16 @@ package de.tum.cit.ase.ares.api.jqwik; -import java.io.IOException; import java.nio.file.Path; import java.util.Optional; import de.tum.cit.ase.ares.api.Policy; +import de.tum.cit.ase.ares.api.jupiter.JupiterSecurityExtension; import de.tum.cit.ase.ares.api.policy.SecurityPolicyReaderAndDirector; import org.apiguardian.api.API; import org.apiguardian.api.API.Status; import net.jqwik.api.lifecycle.*; -import de.tum.cit.ase.ares.api.internal.ConfigurationUtils; - import static de.tum.cit.ase.ares.api.internal.TestGuardUtils.hasAnnotation; import static org.junit.platform.commons.support.AnnotationSupport.findAnnotation; //REMOVED: Import of ArtemisSecurityManager @@ -42,12 +40,13 @@ public PropertyExecutionResult aroundProperty(PropertyLifecycleContext context, if (hasAnnotation(testContext, Policy.class)) { Optional policyAnnotation = findAnnotation(testContext.testMethod(), Policy.class); if (policyAnnotation.isPresent()) { - Policy policy = policyAnnotation.get(); - Path policyPath = Path.of(policy.value()); - if (!policyPath.toFile().exists()) { - throw new SecurityException("Policy file does not exist at: " + policyPath); + Path policyPath = JupiterSecurityExtension.testAndGetPolicyValue(policyAnnotation.get()); + if (!policyAnnotation.get().withinPath().isBlank()) { + Path withinPath = JupiterSecurityExtension.testAndGetPolicyWithinPath(policyAnnotation.get()); + new SecurityPolicyReaderAndDirector(policyPath, withinPath).runSecurityTestCases(); + } else { + new SecurityPolicyReaderAndDirector(policyPath, Path.of("classes")).runSecurityTestCases(); } - new SecurityPolicyReaderAndDirector(policyPath).runSecurityTestCases(); } } diff --git a/src/main/java/de/tum/cit/ase/ares/api/jupiter/JupiterSecurityExtension.java b/src/main/java/de/tum/cit/ase/ares/api/jupiter/JupiterSecurityExtension.java index dad7250a..03c630dd 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/jupiter/JupiterSecurityExtension.java +++ b/src/main/java/de/tum/cit/ase/ares/api/jupiter/JupiterSecurityExtension.java @@ -1,5 +1,6 @@ package de.tum.cit.ase.ares.api.jupiter; +import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.util.Optional; @@ -9,8 +10,6 @@ import org.apiguardian.api.API.Status; import org.junit.jupiter.api.extension.*; -import de.tum.cit.ase.ares.api.internal.ConfigurationUtils; - import static de.tum.cit.ase.ares.api.internal.TestGuardUtils.hasAnnotation; import static org.junit.platform.commons.support.AnnotationSupport.findAnnotation; //REMOVED: Import of ArtemisSecurityManager @@ -29,12 +28,13 @@ public T interceptGenericInvocation(Invocation invocation, ExtensionConte if (hasAnnotation(testContext, Policy.class)) { Optional policyAnnotation = findAnnotation(testContext.testMethod(), Policy.class); if (policyAnnotation.isPresent()) { - Policy policy = policyAnnotation.get(); - Path policyPath = Path.of(policy.value()); - if (!policyPath.toFile().exists()) { - throw new SecurityException("Policy file does not exist at: " + policyPath); + Path policyPath = JupiterSecurityExtension.testAndGetPolicyValue(policyAnnotation.get()); + if (!policyAnnotation.get().withinPath().isBlank()) { + Path withinPath = JupiterSecurityExtension.testAndGetPolicyWithinPath(policyAnnotation.get()); + new SecurityPolicyReaderAndDirector(policyPath, withinPath).runSecurityTestCases(); + } else { + new SecurityPolicyReaderAndDirector(policyPath, Path.of("classes")).runSecurityTestCases(); } - new SecurityPolicyReaderAndDirector(policyPath).runSecurityTestCases(); } } @@ -57,4 +57,33 @@ public T interceptGenericInvocation(Invocation invocation, ExtensionConte } throw failure; } + + public static Path testAndGetPolicyValue(Policy policyAnnotation) { + String policyValue = policyAnnotation.value(); + if (policyValue.isBlank()) { + throw new SecurityException("The policy file path is not specified."); + } + try { + Path policyPath = Path.of(policyValue); + if (!policyPath.toFile().exists()) { + throw new SecurityException("The following policy file path does not exist: " + policyPath); + } + return policyPath; + } catch (InvalidPathException e) { + throw new SecurityException("The following policy file path is invalid: " + policyValue); + } + } + + public static Path testAndGetPolicyWithinPath(Policy policyAnnotation) { + String policyValue = policyAnnotation.withinPath(); + try { + Path policyWithinPath = Path.of(policyValue); + if (!policyWithinPath.startsWith("classes") && !policyWithinPath.startsWith("test-classes")) { + throw new SecurityException("The following path is invalid for withinPath it should start with classes or test-classes: " + policyValue); + } + return policyWithinPath; + } catch (InvalidPathException e) { + throw new SecurityException("The following path is invalid for withinPath: " + policyValue); + } + } } diff --git a/src/main/java/de/tum/cit/ase/ares/api/policy/SecurityPolicyReaderAndDirector.java b/src/main/java/de/tum/cit/ase/ares/api/policy/SecurityPolicyReaderAndDirector.java index 1b732429..8a9ab0dd 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/policy/SecurityPolicyReaderAndDirector.java +++ b/src/main/java/de/tum/cit/ase/ares/api/policy/SecurityPolicyReaderAndDirector.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import de.tum.cit.ase.ares.api.securitytest.JavaSecurityTestCaseFactoryAndBuilder; +import de.tum.cit.ase.ares.api.securitytest.java.JavaSecurityTestCaseFactoryAndBuilder; import de.tum.cit.ase.ares.api.securitytest.SecurityTestCaseAbstractFactoryAndBuilder; import java.io.IOException; @@ -38,10 +38,10 @@ public class SecurityPolicyReaderAndDirector { * @param path Path to the security policy file * @throws IOException If the security policy file cannot be read */ - public SecurityPolicyReaderAndDirector(Path path) throws IOException { + public SecurityPolicyReaderAndDirector(Path path, Path policyWithinPath) throws IOException { securityPolicy = (new ObjectMapper(new YAMLFactory())).readValue(Files.readString(path), SecurityPolicy.class); testCaseManager = switch (securityPolicy.theProgrammingLanguageIUseInThisProgrammingExerciseIs()) { - case JAVA -> new JavaSecurityTestCaseFactoryAndBuilder((securityPolicy)); + case JAVA -> new JavaSecurityTestCaseFactoryAndBuilder((securityPolicy), policyWithinPath); case PYTHON -> throw new UnsupportedOperationException("Python is not supported yet."); case C -> throw new UnsupportedOperationException("C is not supported yet."); case SWIFT -> throw new UnsupportedOperationException("Swift is not supported yet."); diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java similarity index 72% rename from src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java rename to src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java index 2f3ef363..9f4c2f2d 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/securitytest/JavaSecurityTestCaseFactoryAndBuilder.java +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java @@ -1,14 +1,20 @@ -package de.tum.cit.ase.ares.api.securitytest; +package de.tum.cit.ase.ares.api.securitytest.java; import de.tum.cit.ase.ares.api.architecturetest.JavaArchitectureTestCase; +import de.tum.cit.ase.ares.api.architecturetest.JavaSupportedArchitectureTestCase; +import de.tum.cit.ase.ares.api.aspectconfiguration.JavaSupportedAspectConfiguration; import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaAspectConfiguration; import de.tum.cit.ase.ares.api.policy.SecurityPolicy; +import de.tum.cit.ase.ares.api.securitytest.SecurityTestCaseAbstractFactoryAndBuilder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.util.ArrayList; import java.util.List; +import java.util.function.Supplier; + +import static com.google.common.collect.Iterables.isEmpty; /** * Produces and executes or writes security test cases in the Java programming language @@ -36,15 +42,43 @@ public class JavaSecurityTestCaseFactoryAndBuilder implements SecurityTestCaseAb */ List javaAspectConfigurations; + Path withinPath; + /** * Constructor for the Java security test case factory and builder. * * @param securityPolicy Security policy for the security test cases */ - public JavaSecurityTestCaseFactoryAndBuilder(SecurityPolicy securityPolicy) { + public JavaSecurityTestCaseFactoryAndBuilder(SecurityPolicy securityPolicy, Path withinPath) { this.securityPolicy = securityPolicy; + this.withinPath = withinPath; javaArchitectureTestCases = new ArrayList<>(); javaAspectConfigurations = new ArrayList<>(); + parseTestCasesToBeCreated(); + } + + /** + * Parses the test cases to be created. + * If there is no allowed element in a list then an architecture test is added + * Otherwise an Aspect configuration is added to control the allowed methods + */ + @SuppressWarnings("unchecked") + private void parseTestCasesToBeCreated() { + Supplier>[] methods = new Supplier[] { + securityPolicy::iAllowTheFollowingFileSystemInteractionsForTheStudents, +// securityPolicy::iAllowTheFollowingNetworkConnectionsForTheStudents, +// securityPolicy::iAllowTheFollowingCommandExecutionsForTheStudents, +// securityPolicy::iAllowTheFollowingThreadCreationsForTheStudents, +// securityPolicy::iAllowTheFollowingPackageImportForTheStudents + }; + + for (int i = 0; i < methods.length; i++) { + if (isEmpty(methods[i].get())) { + javaArchitectureTestCases.add(new JavaArchitectureTestCase(JavaSupportedArchitectureTestCase.values()[i], securityPolicy, withinPath)); + } else { + javaAspectConfigurations.add(new JavaAspectConfiguration(JavaSupportedAspectConfiguration.values()[i], securityPolicy, withinPath)); + } + } } /** diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/PathLocationProvider.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/PathLocationProvider.java new file mode 100644 index 00000000..00e3178e --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/PathLocationProvider.java @@ -0,0 +1,26 @@ +package de.tum.cit.ase.ares.api.securitytest.java; + +import com.tngtech.archunit.core.importer.Location; +import com.tngtech.archunit.junit.LocationProvider; + +import java.nio.file.Paths; +import java.util.Collections; +import java.util.Set; + +/** + * Provides the location of the compiled student classes. + * Is used by the post-compile mode tests to analyze compiled classes within the test repository + */ +public class PathLocationProvider implements LocationProvider { + @Override + public Set get(Class testClass) { + if (!testClass.isAnnotationPresent(StudentCompiledClassesPath.class)) { + throw new IllegalArgumentException( + String.format("%s can only be used on classes annotated with @%s", + getClass().getSimpleName(), StudentCompiledClassesPath.class.getSimpleName())); + } + + String path = testClass.getAnnotation(StudentCompiledClassesPath.class).value(); + return Collections.singleton(Location.of(Paths.get(path))); + } +} diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/StudentCompiledClassesPath.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/StudentCompiledClassesPath.java new file mode 100644 index 00000000..bf815c53 --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/StudentCompiledClassesPath.java @@ -0,0 +1,13 @@ +package de.tum.cit.ase.ares.api.securitytest.java; + +import java.lang.annotation.Retention; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * Annotation for the path of the compiled student classes. + */ +@Retention(RUNTIME) +public @interface StudentCompiledClassesPath { + String value(); +} \ No newline at end of file From a22b1cf8569d5cc9cb6bedd576dfd84b9ae9ab4a Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Mon, 22 Jul 2024 21:16:24 +0200 Subject: [PATCH 05/30] added testConfiguration for Aspect J and tested it with one example test --- pom.xml | 14 ++- .../java/PointcutDefinitions.aj | 8 +- .../ase/ares/api/aspectJ/ReadWriteTest.java | 98 ------------------- .../ares/api/aspectJ/readWrite/ReadWrite.java | 33 ------- .../integration/testuser/PathAccessUser.java | 3 +- .../testuser/TrustedClassesUser.java | 1 + .../{ => pathaccess}/PathAccessPenguin.java | 2 +- .../integration/testuser/OnePathAllowed.yaml | 12 +++ 8 files changed, 34 insertions(+), 137 deletions(-) delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java delete mode 100644 src/test/java/de/tum/cit/ase/ares/api/aspectJ/readWrite/ReadWrite.java rename src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/{ => pathaccess}/PathAccessPenguin.java (83%) create mode 100644 src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml diff --git a/pom.xml b/pom.xml index cde859e0..58201295 100644 --- a/pom.xml +++ b/pom.xml @@ -139,6 +139,11 @@ aspectjrt ${aspectj.version} + + org.aspectj + aspectjweaver + ${aspectj.version} + com.fasterxml.jackson.dataformat jackson-dataformat-yaml @@ -366,12 +371,10 @@ org.aspectj aspectjtools - ${aspectj.version} - 21 @@ -381,6 +384,13 @@ test-compile + + process-integration-test-classes + process-test-classes + + compile + + diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj index f1a69774..7930ff2d 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -5,8 +5,12 @@ public aspect PointcutDefinitions { // Pointcut for Files.write method pointcut filesWriteMethod() : call(* java.nio.file.Files.write(..)); - // Pointcut for Files.readAllBytes and Files.readAllLines methods - pointcut filesReadMethod() : call(* java.nio.file.Files.readAllBytes(..)) || call(* java.nio.file.Files.readAllLines(..)); + // Pointcut for Files.readAllBytes, Files.readAllLines, and Files.readString methods + pointcut filesReadMethod() : + (call(* java.nio.file.Files.readAllBytes(..)) || + call(* java.nio.file.Files.readAllLines(..)) || + call(* java.nio.file.Files.readString(..))) && + !within(de.tum.cit.ase.ares.api..*); // Pointcut for Files.delete method pointcut filesDeleteMethod() : call(* java.nio.file.Files.delete(..)); diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java deleted file mode 100644 index fe8a0d41..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/ReadWriteTest.java +++ /dev/null @@ -1,98 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ; - -import de.tum.cit.ase.ares.api.aspectJ.readWrite.ReadWrite; -import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaAspectConfigurationLists; -import de.tum.cit.ase.ares.api.policy.FileSystemInteraction; -import de.tum.cit.ase.ares.api.policy.SecurityPolicy; -import de.tum.cit.ase.ares.api.policy.SupportedProgrammingLanguage; -import org.junit.Test; - -import java.io.IOException; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; - -public class ReadWriteTest { - - // Example paths and their permissions - private static final List INTERACTIONS = List.of( - new FileSystemInteraction(Path.of("ReadWrite.java"), true, true, false, false) - ); - - private static final SecurityPolicy SECURITY_POLICY = new SecurityPolicy( - SupportedProgrammingLanguage.JAVA, - INTERACTIONS, - List.of(), // No network connections allowed - List.of(), // No command executions allowed - List.of(), // No thread creations allowed - List.of() // No package imports allowed - ); - - private static final List INTERACTIONS2 = List.of( - new FileSystemInteraction(Path.of("Random.java"), true, true, true, false) - ); - - private static final SecurityPolicy SECURITY_POLICY2 = new SecurityPolicy( - SupportedProgrammingLanguage.JAVA, - INTERACTIONS2, - List.of(), // No network connections allowed - List.of(), // No command executions allowed - List.of(), // No thread creations allowed - List.of() // No package imports allowed - ); - - @Test(expected = SecurityException.class) - public void testFilesWriteAccessDenied() throws IOException { - //JavaAspectConfigurationLists.setAllowedFileSystemInteractions(SECURITY_POLICY2.iAllowTheFollowingFileSystemInteractionsForTheStudents()); - Path deniedPath = Paths.get("deniedFile.txt"); - ReadWrite readWrite = new ReadWrite(); - readWrite.writeMethod(deniedPath.toString()); - } - - @Test - public void testFilesWriteAccessGranted() throws IOException { - //JavaAspectConfigurationLists.setAllowedFileSystemInteractions(SECURITY_POLICY.iAllowTheFollowingFileSystemInteractionsForTheStudents()); - Path allowedPath = Paths.get("ReadWrite.java"); - ReadWrite readWrite = new ReadWrite(); - readWrite.writeMethod(allowedPath.toString()); - } - - @Test(expected = SecurityException.class) - public void testFilesReadAccessDenied() throws IOException { - //JavaAspectConfigurationLists.setAllowedFileSystemInteractions(SECURITY_POLICY2.iAllowTheFollowingFileSystemInteractionsForTheStudents()); - Path deniedPath = Paths.get("deniedFile.txt"); - ReadWrite readWrite = new ReadWrite(); - readWrite.readMethod(deniedPath.toString()); - } - - @Test - public void testFilesReadAccessGranted() throws IOException { - //JavaAspectConfigurationLists.setAllowedFileSystemInteractions(SECURITY_POLICY.iAllowTheFollowingFileSystemInteractionsForTheStudents()); - Path allowedPath = Paths.get("ReadWrite.java"); - ReadWrite readWrite = new ReadWrite(); - readWrite.readMethod(allowedPath.toString()); - } - - /* - @Test(expected = SecurityException.class) - public void testFilesDeleteAccessDenied() throws IOException { - List interactions = List.of( - new FileSystemInteraction(Path.of("fileUsingFilesClass.txt"), true, true, true) - ); - TestGuardUtils.checkFileAccess(interactions, new SecurityRuleExecutor()); - Path deniedPath = Paths.get("deniedFile.txt"); - Files.delete(deniedPath); - } - - @Test - public void testFilesDeleteAccessGranted() throws IOException { - List interactions = List.of( - new FileSystemInteraction(Path.of("fileUsingFilesClass.txt"), true, true, true) - ); - TestGuardUtils.checkFileAccess(interactions, new SecurityRuleExecutor()); - Path allowedPath = Paths.get("fileUsingFilesClass.txt"); - Files.delete(allowedPath); - System.out.println("Files.delete called with path: " + allowedPath); - } - */ -} diff --git a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/readWrite/ReadWrite.java b/src/test/java/de/tum/cit/ase/ares/api/aspectJ/readWrite/ReadWrite.java deleted file mode 100644 index e2116798..00000000 --- a/src/test/java/de/tum/cit/ase/ares/api/aspectJ/readWrite/ReadWrite.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectJ.readWrite; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardOpenOption; -import java.util.Arrays; -import java.util.Objects; - -public class ReadWrite { - - public void writeMethod(String filePath) { - Objects.requireNonNull(filePath); - try { - Files.write(Paths.get(filePath), Arrays.asList("Hello World"), StandardOpenOption.CREATE); - System.out.println("Successfully wrote to the file."); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public void readMethod(String filePath) { - Objects.requireNonNull(filePath); - try { - String content = new String(Files.readAllBytes(Paths.get(filePath))); - System.out.println("File content: " + content); - } catch (IOException e) { - e.printStackTrace(); - } - } - -} \ No newline at end of file diff --git a/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java b/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java index dc2a19de..053b08f1 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java @@ -13,7 +13,7 @@ import de.tum.cit.ase.ares.api.MirrorOutput.MirrorOutputPolicy; import de.tum.cit.ase.ares.api.jupiter.PublicTest; import de.tum.cit.ase.ares.api.localization.UseLocale; -import de.tum.cit.ase.ares.integration.testuser.subject.PathAccessPenguin; +import de.tum.cit.ase.ares.integration.testuser.subject.pathaccess.PathAccessPenguin; @UseLocale("en") @MirrorOutput(MirrorOutputPolicy.DISABLED) @@ -31,6 +31,7 @@ void accessPathAllFiles() { @PublicTest @WhitelistPath("") + @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") void accessPathAllowed() throws IOException { PathAccessPenguin.accessPath(Path.of("pom.xml")); } diff --git a/src/test/java/de/tum/cit/ase/ares/integration/testuser/TrustedClassesUser.java b/src/test/java/de/tum/cit/ase/ares/integration/testuser/TrustedClassesUser.java index 2b83c8d9..0bd63a15 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/testuser/TrustedClassesUser.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/testuser/TrustedClassesUser.java @@ -3,6 +3,7 @@ import java.io.IOException; import java.nio.file.Path; +import de.tum.cit.ase.ares.integration.testuser.subject.pathaccess.PathAccessPenguin; import org.junit.jupiter.api.Test; import de.tum.cit.ase.ares.api.*; diff --git a/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/PathAccessPenguin.java b/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java similarity index 83% rename from src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/PathAccessPenguin.java rename to src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java index 1b2eede2..d4bf573e 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/PathAccessPenguin.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java @@ -1,4 +1,4 @@ -package de.tum.cit.ase.ares.integration.testuser.subject; +package de.tum.cit.ase.ares.integration.testuser.subject.pathaccess; import java.io.*; import java.nio.file.*; diff --git a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml new file mode 100644 index 00000000..c5dfaf63 --- /dev/null +++ b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml @@ -0,0 +1,12 @@ +# This is an example configuration file for the programming exercise "ExampleProgrammingExercise". +theProgrammingLanguageIUseInThisProgrammingExerciseIs: JAVA +iAllowTheFollowingFileSystemInteractionsForTheStudents: + - onThisPathAndAllPathsBelow: "PathAccessPengui.java" + studentsAreAllowedToReadAllFiles: true + studentsAreAllowedToOverwriteAllFiles: false + studentsAreAllowedToExecuteAllFiles: false + studentsAreAllowedToDeleteAllFiles: false +iAllowTheFollowingNetworkConnectionsForTheStudents: [] +iAllowTheFollowingCommandExecutionsForTheStudents: [] +iAllowTheFollowingThreadCreationsForTheStudents: [] +iAllowTheFollowingPackageImportForTheStudents: [] \ No newline at end of file From e0d0833aae267ec9dff10f9d4204eedfaa81d866 Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Fri, 26 Jul 2024 23:27:16 +0200 Subject: [PATCH 06/30] updating aspectJ classes --- .../java/AdviceDefinition.aj | 65 ++------------- .../java/AdviceDefinitionExample.aj | 79 +++++++++++++++++++ .../java/PointcutDefinitions.aj | 23 +++--- .../java/PointcutDefinitionsExample.aj | 18 +++++ .../integration/testuser/OnePathAllowed.yaml | 2 +- 5 files changed, 117 insertions(+), 70 deletions(-) create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index 40e83bda..4ce49434 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -6,89 +6,34 @@ import java.util.List; public aspect AdviceDefinition { - // Around advice to capture the path used in Files.write and check permissions - Object around() : PointcutDefinitions.filesWriteMethod() { + Object around() : PointcutDefinitions.colorEditorMethods() { Object[] args = thisJoinPoint.getArgs(); - Path path = (Path) args[0]; // Assuming the first argument is the Path - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - // Check if the file name is allowed and has write permission boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) && interaction.studentsAreAllowedToOverwriteAllFiles()); if (!isAllowed) { - throw new SecurityException("Write operation blocked by AspectJ for path: " + path + "." + "Files.write called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - } else { - System.out.println("Files.write called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); - } - - if (args.length > 1 && args[1] instanceof List) { - List lines = (List) args[1]; // Assuming the second argument is the list of lines to write - System.out.println("Files.write called with path: " + path + " and lines: " + lines); - } else if (args.length > 1 && args[1] instanceof byte[]) { - byte[] bytes = (byte[]) args[1]; // Assuming the second argument is the byte array to write - System.out.println("Files.write called with path: " + path + " and bytes: " + Arrays.toString(bytes)); - } else { - System.out.println("Files.write called with path: " + path + " and other arguments: " + Arrays.toString(args)); + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); } return proceed(); } - // Around advice to capture the path used in Files.readAllBytes and check permissions - Object around() : PointcutDefinitions.filesReadMethod() { + Object around() : PointcutDefinitions.fontEditorMethods() { Object[] args = thisJoinPoint.getArgs(); - Path path = (Path) args[0]; // Assuming the first argument is the Path - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - // Check if the file name is allowed and has read permission boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToReadAllFiles()); - - if (!isAllowed) { - throw new SecurityException("Read operation blocked by AspectJ for path: " + path + "." + "Files.read called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - } else { - System.out.println("Files.read called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); - } - - return proceed(); - } - - /* - - // Around advice to capture file deletion and check permissions - Object around() : PointcutDefinitions.filesDeleteMethod() { - Object[] args = thisJoinPoint.getArgs(); - Path path = (Path) args[0]; // Assuming the first argument is the Path - - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - // Check if the file name is allowed and has delete permission - boolean isAllowed = FileSystemInteractionList.getAllowedFileSystemInteractions().stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToDeleteAllFiles()); + && interaction.studentsAreAllowedToOverwriteAllFiles()); if (!isAllowed) { - System.out.println("Files.delete called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - throw new SecurityException("Delete operation blocked by AspectJ for path: " + path); - } else { - System.out.println("Files.delete called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); } return proceed(); } - // Around advice to capture method executions and check permissions - Object around() : PointcutDefinitions.executionMethod() { - // You can add additional checks or log statements here - System.out.println("Execution of: " + thisJoinPoint.getSignature() + " in " + thisJoinPoint.getSourceLocation()); - - return proceed(); - } - - */ } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj new file mode 100644 index 00000000..5773aa1f --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj @@ -0,0 +1,79 @@ +package de.tum.cit.ase.ares.api.aspectconfiguration.java; + +import java.nio.file.Path; + +public aspect AdviceDefinitionExample { + + // Around advice to capture the path used in Files.write and check permissions + Object around() : PointcutDefinitions.filesWriteMethod() { + Object[] args = thisJoinPoint.getArgs(); + Path path = (Path) args[0]; // Assuming the first argument is the Path + + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + // Check if the file name is allowed and has write permission + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called" + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + // Around advice to capture the path used in Files.readAllBytes and check permissions + Object around() : PointcutDefinitions.filesReadMethod() { + Object[] args = thisJoinPoint.getArgs(); + Path path = (Path) args[0]; // Assuming the first argument is the Path + + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + // Check if the file name is allowed and has read permission + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToReadAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called" + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + /* + + // Around advice to capture file deletion and check permissions + Object around() : PointcutDefinitions.filesDeleteMethod() { + Object[] args = thisJoinPoint.getArgs(); + Path path = (Path) args[0]; // Assuming the first argument is the Path + + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + // Check if the file name is allowed and has delete permission + boolean isAllowed = FileSystemInteractionList.getAllowedFileSystemInteractions().stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToDeleteAllFiles()); + + if (!isAllowed) { + System.out.println("Files.delete called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + throw new SecurityException("Delete operation blocked by AspectJ for path: " + path); + } else { + System.out.println("Files.delete called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); + } + + return proceed(); + } + + // Around advice to capture method executions and check permissions + Object around() : PointcutDefinitions.executionMethod() { + // You can add additional checks or log statements here + System.out.println("Execution of: " + thisJoinPoint.getSignature() + " in " + thisJoinPoint.getSourceLocation()); + + return proceed(); + } + + */ + +} diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj index 7930ff2d..6c86d887 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -2,16 +2,21 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; public aspect PointcutDefinitions { - // Pointcut for Files.write method - pointcut filesWriteMethod() : call(* java.nio.file.Files.write(..)); + // Pointcut for ColorEditor methods + pointcut colorEditorMethods() : + (execution(com.sun.beans.editors.ColorEditor.new(..)) || + execution(* com.sun.beans.editors.ColorEditor.action(..)) || + execution(* com.sun.beans.editors.ColorEditor.keyUp(..)) || + execution(* com.sun.beans.editors.ColorEditor.setAsText(..)) || + execution(* com.sun.beans.editors.ColorEditor.setValue(..))) && + !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Files.readAllBytes, Files.readAllLines, and Files.readString methods - pointcut filesReadMethod() : - (call(* java.nio.file.Files.readAllBytes(..)) || - call(* java.nio.file.Files.readAllLines(..)) || - call(* java.nio.file.Files.readString(..))) && + // Pointcut for FontEditor methods + pointcut fontEditorMethods() : + (execution(com.sun.beans.editors.FontEditor.new(..)) || + execution(* com.sun.beans.editors.FontEditor.action(..)) || + execution(* com.sun.beans.editors.FontEditor.setAsText(..)) || + execution(* com.sun.beans.editors.FontEditor.setValue(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Files.delete method - pointcut filesDeleteMethod() : call(* java.nio.file.Files.delete(..)); } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj new file mode 100644 index 00000000..5aead095 --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj @@ -0,0 +1,18 @@ +package de.tum.cit.ase.ares.api.aspectconfiguration.java; + +public aspect PointcutDefinitionsExample { + + // Pointcut for Files.write method + pointcut filesWriteMethod() : call(* java.nio.file.Files.write(..)); + + // Pointcut for Files.readAllBytes, Files.readAllLines, and Files.readString methods + pointcut filesReadMethod() : + (call(* java.nio.file.Files.readAllBytes(..)) || + call(* java.nio.file.Files.readAllLines(..)) || + call(* java.nio.file.Files.readString(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Files.delete method + pointcut filesDeleteMethod() : call(* java.nio.file.Files.delete(..)); + +} diff --git a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml index c5dfaf63..0c935d3a 100644 --- a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml +++ b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml @@ -1,7 +1,7 @@ # This is an example configuration file for the programming exercise "ExampleProgrammingExercise". theProgrammingLanguageIUseInThisProgrammingExerciseIs: JAVA iAllowTheFollowingFileSystemInteractionsForTheStudents: - - onThisPathAndAllPathsBelow: "PathAccessPengui.java" + - onThisPathAndAllPathsBelow: "de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPengui.java" studentsAreAllowedToReadAllFiles: true studentsAreAllowedToOverwriteAllFiles: false studentsAreAllowedToExecuteAllFiles: false From b88e570b3877f7cd0204692442872273e33fc566 Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Sat, 27 Jul 2024 00:36:36 +0200 Subject: [PATCH 07/30] added FileSystemInteraction method --- .../java/AdviceDefinition.aj | 1374 ++++++++++++++++- .../java/PointcutDefinitions.aj | 518 ++++++- 2 files changed, 1873 insertions(+), 19 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index 4ce49434..e779dd2d 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -1,12 +1,1193 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; -import java.nio.file.Path; -import java.util.Arrays; -import java.util.List; +public aspect AdviceDefinition { + + Object around() : PointcutDefinitions.fileInputStreamConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileReaderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileWriterConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.filterOutputStreamConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.inputStreamConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.objectInputFilterConfigConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.objectInputStreamGetFieldConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.objectOutputStreamPutFieldConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.objectStreamClassConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.objectStreamFieldConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.outputStreamConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.printStreamConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.printWriterConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.randomAccessFileConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.readerConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.streamTokenizerConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.writerConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.bufferConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.byteOrderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.asynchronousChannelGroupConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.asynchronousFileChannelConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.asynchronousServerSocketChannelConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.asynchronousSocketChannelConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.channelsConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileChannelMapModeConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileLockConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.membershipKeyConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.pipeConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.selectionKeyConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.selectorConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.abstractInterruptibleChannelConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.abstractSelectableChannelConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.asynchronousChannelProviderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.selectorProviderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.charsetConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.charsetDecoderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.charsetEncoderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.coderResultConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.codingErrorActionConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.standardCharsetsConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.charsetProviderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileStoreConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileSystemConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileSystemsConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.filesConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.pathsConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.simpleFileVisitorConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.standardWatchEventKindsConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.aclEntryBuilderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.aclEntryConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileTimeConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blockedby AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.posixFilePermissionsConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.userPrincipalLookupServiceConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileSystemProviderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileTypeDetectorConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.datagramSocketAdaptorConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.defaultAsynchronousChannelProviderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.defaultSelectorProviderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileChannelImplConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileKeyConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.ioStatusConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.ioUtilConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.nativeThreadConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.netConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.nioSocketImplConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.pollerConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.streamsConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.threadPoolConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.utilConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.resultContainerConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.sctpChannelImplConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.sctpMultiChannelImplConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); -public aspect AdviceDefinition { + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.sctpNetConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.sctpServerChannelImplConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.sctpStdSocketOptionConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.defaultFileSystemProviderConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.defaultFileTypeDetectorConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.extendedOptionsInternalOptionConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.extendedOptionsConstructorMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); - Object around() : PointcutDefinitions.colorEditorMethods() { + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.globsConstructorMethods() { Object[] args = thisJoinPoint.getArgs(); String fileName = thisJoinPoint.getSourceLocation().getFileName(); @@ -21,7 +1202,7 @@ public aspect AdviceDefinition { return proceed(); } - Object around() : PointcutDefinitions.fontEditorMethods() { + Object around() : PointcutDefinitions.unixUserPrincipalsConstructorMethods() { Object[] args = thisJoinPoint.getArgs(); String fileName = thisJoinPoint.getSourceLocation().getFileName(); @@ -36,4 +1217,185 @@ public aspect AdviceDefinition { return proceed(); } + Object around() : PointcutDefinitions.fileMethodCalls() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && (interaction.studentsAreAllowedToOverwriteAllFiles() || + interaction.studentsAreAllowedToReadAllFiles() || + interaction.studentsAreAllowedToDeleteAllFiles())); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileDescriptorCloseAllMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.filterInputStreamReadMethod() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToReadAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.pushbackInputStreamMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToReadAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.filesAsUncheckedRunnableMethod() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.filesWriteWithCharsetMethod() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileChannelImplImplCloseChannelMethod() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.ioUtilReleaseScopesMethod() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.unixFileSystemProviderMethods() { + Object[] args = thisJoinPoint.getArgs(); + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && (interaction.studentsAreAllowedToOverwriteAllFiles() || + interaction.studentsAreAllowedToReadAllFiles() || + interaction.studentsAreAllowedToDeleteAllFiles())); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.objectInputFilterConfigClinit() { + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.objectInputStreamClinit() { + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + + Object around() : PointcutDefinitions.fileSystemProviderClinit() { + String fileName = thisJoinPoint.getSourceLocation().getFileName(); + + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() + .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) + && interaction.studentsAreAllowedToOverwriteAllFiles()); + + if (!isAllowed) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + } + + return proceed(); + } + } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj index 6c86d887..857b98c1 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -2,21 +2,513 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; public aspect PointcutDefinitions { - // Pointcut for ColorEditor methods - pointcut colorEditorMethods() : - (execution(com.sun.beans.editors.ColorEditor.new(..)) || - execution(* com.sun.beans.editors.ColorEditor.action(..)) || - execution(* com.sun.beans.editors.ColorEditor.keyUp(..)) || - execution(* com.sun.beans.editors.ColorEditor.setAsText(..)) || - execution(* com.sun.beans.editors.ColorEditor.setValue(..))) && + // Pointcut for FileInputStream constructors + pointcut fileInputStreamConstructorMethods() : + (execution(java.io.FileInputStream.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FontEditor methods - pointcut fontEditorMethods() : - (execution(com.sun.beans.editors.FontEditor.new(..)) || - execution(* com.sun.beans.editors.FontEditor.action(..)) || - execution(* com.sun.beans.editors.FontEditor.setAsText(..)) || - execution(* com.sun.beans.editors.FontEditor.setValue(..))) && + // Pointcut for FileOutputStream constructors + pointcut fileOutputStreamConstructorMethods() : + (execution(java.io.FileOutputStream.new(..))) && !within(de.tum.cit.ase.ares.api..*); + // Pointcut for FileReader constructors + pointcut fileReaderConstructorMethods() : + (execution(java.io.FileReader.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileWriter constructors + pointcut fileWriterConstructorMethods() : + (execution(java.io.FileWriter.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FilterOutputStream constructor + pointcut filterOutputStreamConstructorMethods() : + (execution(java.io.FilterOutputStream.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for InputStream constructor + pointcut inputStreamConstructorMethods() : + (execution(java.io.InputStream.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputFilter$Config constructor + pointcut objectInputFilterConfigConstructorMethods() : + (execution(java.io.ObjectInputFilter$Config.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputStream$GetField constructor + pointcut objectInputStreamGetFieldConstructorMethods() : + (execution(java.io.ObjectInputStream$GetField.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectOutputStream$PutField constructor + pointcut objectOutputStreamPutFieldConstructorMethods() : + (execution(java.io.ObjectOutputStream$PutField.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectStreamClass constructors + pointcut objectStreamClassConstructorMethods() : + (execution(java.io.ObjectStreamClass.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectStreamField constructors + pointcut objectStreamFieldConstructorMethods() : + (execution(java.io.ObjectStreamField.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for OutputStream constructor + pointcut outputStreamConstructorMethods() : + (execution(java.io.OutputStream.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PrintStream constructors + pointcut printStreamConstructorMethods() : + (execution(java.io.PrintStream.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PrintWriter constructors + pointcut printWriterConstructorMethods() : + (execution(java.io.PrintWriter.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for RandomAccessFile constructors + pointcut randomAccessFileConstructorMethods() : + (execution(java.io.RandomAccessFile.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Reader constructors + pointcut readerConstructorMethods() : + (execution(java.io.Reader.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for StreamTokenizer constructor + pointcut streamTokenizerConstructorMethods() : + (execution(java.io.StreamTokenizer.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Writer constructors + pointcut writerConstructorMethods() : + (execution(java.io.Writer.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Buffer constructors + pointcut bufferConstructorMethods() : + (execution(java.nio.Buffer.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ByteOrder constructor + pointcut byteOrderConstructorMethods() : + (execution(java.nio.ByteOrder.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AsynchronousChannelGroup constructor + pointcut asynchronousChannelGroupConstructorMethods() : + (execution(java.nio.channels.AsynchronousChannelGroup.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AsynchronousFileChannel constructor + pointcut asynchronousFileChannelConstructorMethods() : + (execution(java.nio.channels.AsynchronousFileChannel.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AsynchronousServerSocketChannel constructor + pointcut asynchronousServerSocketChannelConstructorMethods() : + (execution(java.nio.channels.AsynchronousServerSocketChannel.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AsynchronousSocketChannel constructor + pointcut asynchronousSocketChannelConstructorMethods() : + (execution(java.nio.channels.AsynchronousSocketChannel.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Channels constructor + pointcut channelsConstructorMethods() : + (execution(java.nio.channels.Channels.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileChannel$MapMode constructor + pointcut fileChannelMapModeConstructorMethods() : + (execution(java.nio.channels.FileChannel$MapMode.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileLock constructors + pointcut fileLockConstructorMethods() : + (execution(java.nio.channels.FileLock.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for MembershipKey constructor + pointcut membershipKeyConstructorMethods() : + (execution(java.nio.channels.MembershipKey.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Pipe constructor + pointcut pipeConstructorMethods() : + (execution(java.nio.channels.Pipe.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SelectionKey constructor + pointcut selectionKeyConstructorMethods() : + (execution(java.nio.channels.SelectionKey.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Selector constructor + pointcut selectorConstructorMethods() : + (execution(java.nio.channels.Selector.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AbstractInterruptibleChannel constructors + pointcut abstractInterruptibleChannelConstructorMethods() : + (execution(java.nio.channels.spi.AbstractInterruptibleChannel.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AbstractSelectableChannel constructors + pointcut abstractSelectableChannelConstructorMethods() : + (execution(java.nio.channels.spi.AbstractSelectableChannel.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AsynchronousChannelProvider constructor + pointcut asynchronousChannelProviderConstructorMethods() : + (execution(java.nio.channels.spi.AsynchronousChannelProvider.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SelectorProvider constructor + pointcut selectorProviderConstructorMethods() : + (execution(java.nio.channels.spi.SelectorProvider.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Charset constructors + pointcut charsetConstructorMethods() : + (execution(java.nio.charset.Charset.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CharsetDecoder constructor + pointcut charsetDecoderConstructorMethods() : + (execution(java.nio.charset.CharsetDecoder.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CharsetEncoder constructor + pointcut charsetEncoderConstructorMethods() : + (execution(java.nio.charset.CharsetEncoder.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CoderResult constructor + pointcut coderResultConstructorMethods() : + (execution(java.nio.charset.CoderResult.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CodingErrorAction constructor + pointcut codingErrorActionConstructorMethods() : + (execution(java.nio.charset.CodingErrorAction.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for StandardCharsets constructor + pointcut standardCharsetsConstructorMethods() : + (execution(java.nio.charset.StandardCharsets.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CharsetProvider constructor + pointcut charsetProviderConstructorMethods() : + (execution(java.nio.charset.spi.CharsetProvider.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileStore constructor + pointcut fileStoreConstructorMethods() : + (execution(java.nio.file.FileStore.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileSystem constructor + pointcut fileSystemConstructorMethods() : + (execution(java.nio.file.FileSystem.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileSystems constructor + pointcut fileSystemsConstructorMethods() : + (execution(java.nio.file.FileSystems.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Files constructor + pointcut filesConstructorMethods() : + (execution(java.nio.file.Files.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Paths constructor + pointcut pathsConstructorMethods() : + (execution(java.nio.file.Paths.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SimpleFileVisitor constructor + pointcut simpleFileVisitorConstructorMethods() : + (execution(java.nio.file.SimpleFileVisitor.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for StandardWatchEventKinds constructor + pointcut standardWatchEventKindsConstructorMethods() : + (execution(java.nio.file.StandardWatchEventKinds.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AclEntry$Builder constructor + pointcut aclEntryBuilderConstructorMethods() : + (execution(java.nio.file.attribute.AclEntry$Builder.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AclEntry constructor + pointcut aclEntryConstructorMethods() : + (execution(java.nio.file.attribute.AclEntry.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileTime constructor + pointcut fileTimeConstructorMethods() : + (execution(java.nio.file.attribute.FileTime.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PosixFilePermissions constructor + pointcut posixFilePermissionsConstructorMethods() : + (execution(java.nio.file.attribute.PosixFilePermissions.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UserPrincipalLookupService constructor + pointcut userPrincipalLookupServiceConstructorMethods() : + (execution(java.nio.file.attribute.UserPrincipalLookupService.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileSystemProvider constructor + pointcut fileSystemProviderConstructorMethods() : + (execution(java.nio.file.spi.FileSystemProvider.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileTypeDetector constructor + pointcut fileTypeDetectorConstructorMethods() : + (execution(java.nio.file.spi.FileTypeDetector.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DatagramSocketAdaptor constructor + pointcut datagramSocketAdaptorConstructorMethods() : + (execution(sun.nio.ch.DatagramSocketAdaptor.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DefaultAsynchronousChannelProvider constructor + pointcut defaultAsynchronousChannelProviderConstructorMethods() : + (execution(sun.nio.ch.DefaultAsynchronousChannelProvider.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DefaultSelectorProvider constructor + pointcut defaultSelectorProviderConstructorMethods() : + (execution(sun.nio.ch.DefaultSelectorProvider.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileChannelImpl constructor + pointcut fileChannelImplConstructorMethods() : + (execution(sun.nio.ch.FileChannelImpl.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileKey constructor + pointcut fileKeyConstructorMethods() : + (execution(sun.nio.ch.FileKey.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for IOStatus constructor + pointcut ioStatusConstructorMethods() : + (execution(sun.nio.ch.IOStatus.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for IOUtil constructor + pointcut ioUtilConstructorMethods() : + (execution(sun.nio.ch.IOUtil.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for NativeThread constructor + pointcut nativeThreadConstructorMethods() : + (execution(sun.nio.ch.NativeThread.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Net constructor + pointcut netConstructorMethods() : + (execution(sun.nio.ch.Net.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for NioSocketImpl constructor + pointcut nioSocketImplConstructorMethods() : + (execution(sun.nio.ch.NioSocketImpl.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Poller constructor + pointcut pollerConstructorMethods() : + (execution(sun.nio.ch.Poller.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Streams constructor + pointcut streamsConstructorMethods() : + (execution(sun.nio.ch.Streams.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ThreadPool constructor + pointcut threadPoolConstructorMethods() : + (execution(sun.nio.ch.ThreadPool.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Util constructor + pointcut utilConstructorMethods() : + (execution(sun.nio.ch.Util.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ResultContainer constructor + pointcut resultContainerConstructorMethods() : + (execution(sun.nio.ch.sctp.ResultContainer.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SctpChannelImpl constructors + pointcut sctpChannelImplConstructorMethods() : + (execution(sun.nio.ch.sctp.SctpChannelImpl.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SctpMultiChannelImpl constructors + pointcut sctpMultiChannelImplConstructorMethods() : + (execution(sun.nio.ch.sctp.SctpMultiChannelImpl.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SctpNet constructor + pointcut sctpNetConstructorMethods() : + (execution(sun.nio.ch.sctp.SctpNet.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SctpServerChannelImpl constructors + pointcut sctpServerChannelImplConstructorMethods() : + (execution(sun.nio.ch.sctp.SctpServerChannelImpl.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SctpStdSocketOption constructor + pointcut sctpStdSocketOptionConstructorMethods() : + (execution(sun.nio.ch.sctp.SctpStdSocketOption.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DefaultFileSystemProvider constructor + pointcut defaultFileSystemProviderConstructorMethods() : + (execution(sun.nio.fs.DefaultFileSystemProvider.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DefaultFileTypeDetector constructor + pointcut defaultFileTypeDetectorConstructorMethods() : + (execution(sun.nio.fs.DefaultFileTypeDetector.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ExtendedOptions$InternalOption constructor + pointcut extendedOptionsInternalOptionConstructorMethods() : + (execution(sun.nio.fs.ExtendedOptions$InternalOption.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ExtendedOptions constructor + pointcut extendedOptionsConstructorMethods() : + (execution(sun.nio.fs.ExtendedOptions.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Globs constructor + pointcut globsConstructorMethods() : + (execution(sun.nio.fs.Globs.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixUserPrincipals constructor + pointcut unixUserPrincipalsConstructorMethods() : + (execution(sun.nio.fs.UnixUserPrincipals.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for File method calls + pointcut fileMethodCalls() : + (execution(* java.io.File.canExecute(..)) || + execution(* java.io.File.canRead(..)) || + execution(* java.io.File.canWrite(..)) || + execution(* java.io.File.createNewFile(..)) || + execution(* java.io.File.createTempFile(..)) || + execution(* java.io.File.delete(..)) || + execution(* java.io.File.deleteOnExit(..)) || + execution(* java.io.File.exists(..)) || + execution(* java.io.File.getFreeSpace(..)) || + execution(* java.io.File.getTotalSpace(..)) || + execution(* java.io.File.getUsableSpace(..)) || + execution(* java.io.File.isDirectory(..)) || + execution(* java.io.File.isFile(..)) || + execution(* java.io.File.isHidden(..)) || + execution(* java.io.File.lastModified(..)) || + execution(* java.io.File.length(..)) || + execution(* java.io.File.list(..)) || + execution(* java.io.File.listFiles(..)) || + execution(* java.io.File.listRoots(..)) || + execution(* java.io.File.mkdir(..)) || + execution(* java.io.File.mkdirs(..)) || + execution(* java.io.File.renameTo(..)) || + execution(* java.io.File.setExecutable(..)) || + execution(* java.io.File.setLastModified(..)) || + execution(* java.io.File.setReadOnly(..)) || + execution(* java.io.File.setReadable(..)) || + execution(* java.io.File.setWritable(..)) || + execution(* java.io.File.toURI(..)) || + execution(* java.io.File.toURL(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileDescriptor.closeAll methods + pointcut fileDescriptorCloseAllMethods() : + (execution(* java.io.FileDescriptor.closeAll(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FilterInputStream.read method + pointcut filterInputStreamReadMethod() : + (execution(* java.io.FilterInputStream.read(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PushbackInputStream methods + pointcut pushbackInputStreamMethods() : + (execution(* java.io.PushbackInputStream.read(..)) || + execution(* java.io.PushbackInputStream.skip(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Files.asUncheckedRunnable method + pointcut filesAsUncheckedRunnableMethod() : + (execution(* java.nio.file.Files.asUncheckedRunnable(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Files.write method with Charset + pointcut filesWriteWithCharsetMethod() : + (execution(* java.nio.file.Files.write(..)) && args(java.nio.file.Path, java.lang.Iterable, java.nio.charset.Charset, ..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileChannelImpl.implCloseChannel method + pointcut fileChannelImplImplCloseChannelMethod() : + (execution(* sun.nio.ch.FileChannelImpl.implCloseChannel(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for IOUtil.releaseScopes method + pointcut ioUtilReleaseScopesMethod() : + (execution(* sun.nio.ch.IOUtil.releaseScopes(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixFileSystemProvider methods + pointcut unixFileSystemProviderMethods() : + (execution(* sun.nio.fs.UnixFileSystemProvider.checkAccess(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.createDirectory(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.createLink(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.exists(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.getFileStore(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.implDelete(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.isHidden(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.isSameFile(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.readAttributesIfExists(..)) || + execution(* sun.nio.fs.UnixFileSystemProvider.readSymbolicLink(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputFilter$Config. + pointcut objectInputFilterConfigMethods() : + (execution(* java.io.ObjectInputFilter$Config.*(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputStream. + pointcut objectInputStreamMethods() : + (execution(* java.io.ObjectInputStream.*(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileSystemProvider. + pointcut fileSystemProviderMethods() : + (execution(* java.nio.file.spi.FileSystemProvider.*(..))) && + !within(de.tum.cit.ase.ares.api..*); } \ No newline at end of file From 6bc55c38559f168a4ab984b599dd33e9f05349b9 Mon Sep 17 00:00:00 2001 From: Markus Paulsen Date: Sat, 27 Jul 2024 12:48:19 +0200 Subject: [PATCH 08/30] 1. Changed location of txt files. 2. Outsourced footers 3. Added better exception handling for file reading. 4. Adjusted ExampleConfiguration.yaml 5. Added TODO --- .../JavaAspectConfiguration.java | 50 ---- .../java/AdviceDefinition.aj | 2 +- .../java/JavaAspectConfiguration.java | 1 - .../JavaSupportedAspectConfiguration.java | 2 +- ...JavaSecurityTestCaseFactoryAndBuilder.java | 268 +++++++++++++++--- src/main/resources/ExampleConfiguration.yaml | 2 +- .../ArchitectureTestCaseFileFooter.txt | 2 + .../ArchitectureTestCaseFileHeader.txt | 24 ++ .../AspectConfigurationFileFooter.txt | 1 + .../AspectConfigurationFileHeader.txt | 1 + 10 files changed, 263 insertions(+), 90 deletions(-) delete mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java rename src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/{ => java}/JavaSupportedAspectConfiguration.java (91%) create mode 100644 src/main/resources/templates/ArchitectureTestCaseFileFooter.txt create mode 100644 src/main/resources/templates/ArchitectureTestCaseFileHeader.txt create mode 100644 src/main/resources/templates/AspectConfigurationFileFooter.txt create mode 100644 src/main/resources/templates/AspectConfigurationFileHeader.txt diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java deleted file mode 100644 index 086be034..00000000 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaAspectConfiguration.java +++ /dev/null @@ -1,50 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectconfiguration; - -import de.tum.cit.ase.ares.api.policy.SecurityPolicy; - -import java.nio.file.Path; - -/** - * Aspect configuration for the Java programming language and concrete product of the abstract factory design pattern. - * - * @author Markus Paulsen - * @version 2.0.0 - * @see Abstract Factory Design Pattern - * @since 2.0.0 - */ -public class JavaAspectConfiguration implements AspectConfiguration { - - private JavaSupportedAspectConfiguration javaSupportedAspectConfiguration; - private SecurityPolicy securityPolicy; - private Path withinPath; - - /** - * Constructor for JavaAspectConfiguration. - * - * @param javaSupportedAspectConfiguration Selects the supported aspect configuration in the Java programming language - * @param securityPolicy Security policy for the aspect configuration - */ - public JavaAspectConfiguration(JavaSupportedAspectConfiguration javaSupportedAspectConfiguration, SecurityPolicy securityPolicy, Path withinPath) { - this.javaSupportedAspectConfiguration = javaSupportedAspectConfiguration; - this.securityPolicy = securityPolicy; - this.withinPath = withinPath; - } - - /** - * Creates the content of the aspect configuration file in the Java programming language. - * - * @return Content of the aspect configuration file - */ - @Override - public String createAspectConfigurationFileContent() { - throw new RuntimeException("Not implemented yet!"); - } - - /** - * Runs the aspect configuration in Java programming language. - */ - @Override - public void runAspectConfiguration() { - throw new RuntimeException("Not implemented yet!"); - } -} diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index e779dd2d..a00703ae 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -1,6 +1,6 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; -public aspect AdviceDefinition { +public aspect AdviceDefinition { // TODO: Can we outsource the common functionality in a separate function? Object around() : PointcutDefinitions.fileInputStreamConstructorMethods() { Object[] args = thisJoinPoint.getArgs(); diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java index 9520457f..bbcbd5cb 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java @@ -1,7 +1,6 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; import de.tum.cit.ase.ares.api.aspectconfiguration.AspectConfiguration; -import de.tum.cit.ase.ares.api.aspectconfiguration.JavaSupportedAspectConfiguration; import de.tum.cit.ase.ares.api.policy.SecurityPolicy; import java.nio.file.Path; diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java similarity index 91% rename from src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java rename to src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java index f5c93072..26d259f8 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/JavaSupportedAspectConfiguration.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaSupportedAspectConfiguration.java @@ -1,4 +1,4 @@ -package de.tum.cit.ase.ares.api.aspectconfiguration; +package de.tum.cit.ase.ares.api.aspectconfiguration.java; /** * Supported aspect configurations in Java programming language. diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java index 9f4c2f2d..a111dc0f 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java @@ -2,15 +2,20 @@ import de.tum.cit.ase.ares.api.architecturetest.JavaArchitectureTestCase; import de.tum.cit.ase.ares.api.architecturetest.JavaSupportedArchitectureTestCase; -import de.tum.cit.ase.ares.api.aspectconfiguration.JavaSupportedAspectConfiguration; import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaAspectConfiguration; +import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaSupportedAspectConfiguration; import de.tum.cit.ase.ares.api.policy.SecurityPolicy; import de.tum.cit.ase.ares.api.securitytest.SecurityTestCaseAbstractFactoryAndBuilder; +import de.tum.cit.ase.ares.api.util.ProjectSourcesFinder; +import java.io.IOException; +import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; +import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.util.ArrayList; +import java.util.IllegalFormatException; import java.util.List; import java.util.function.Supplier; @@ -64,8 +69,7 @@ public JavaSecurityTestCaseFactoryAndBuilder(SecurityPolicy securityPolicy, Path */ @SuppressWarnings("unchecked") private void parseTestCasesToBeCreated() { - Supplier>[] methods = new Supplier[] { - securityPolicy::iAllowTheFollowingFileSystemInteractionsForTheStudents, + Supplier>[] methods = new Supplier[]{securityPolicy::iAllowTheFollowingFileSystemInteractionsForTheStudents, // securityPolicy::iAllowTheFollowingNetworkConnectionsForTheStudents, // securityPolicy::iAllowTheFollowingCommandExecutionsForTheStudents, // securityPolicy::iAllowTheFollowingThreadCreationsForTheStudents, @@ -89,49 +93,241 @@ private void parseTestCasesToBeCreated() { */ @Override public List writeTestCasesToFiles(Path path) { + // + Path javaArchitectureTestCaseCollectionFile; try { - Path architectureTestCaseFile = Files.createFile(path.resolve("ArchitectureTestCase.java")); - Files.writeString(architectureTestCaseFile, - """ - public class ArchitectureTestCase { - - """ + String.join( + javaArchitectureTestCaseCollectionFile = Files.createFile(path.resolve("JavaArchitectureTestCaseCollection.java")); + } + // + catch (InvalidPathException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot create JavaArchitectureTestCaseCollection.java on " + path + " due to an incorrect address resolving: " + e); + } catch (UnsupportedOperationException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot create JavaArchitectureTestCaseCollection.java on " + path + " due to missing supported by this JVM: " + e); + } catch (FileAlreadyExistsException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot create JavaArchitectureTestCaseCollection.java on " + path + ", as it already exists: " + e); + } catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot create JavaArchitectureTestCaseCollection.java on " + path + " due to an I/O exception: " + e); + } + // + String javaArchitectureTestCaseCollectionFileHeader; + Path javaArchitectureTestCaseCollectionFileHeaderPath = Path.of( + "src", + "main", + "resources", + "templates", + "javaArchitectureTestCaseCollectionFileHeader.txt" + ); + try { + javaArchitectureTestCaseCollectionFileHeader = String.format( + Files.readString(javaArchitectureTestCaseCollectionFileHeaderPath), + "de.tum.cit.ase", // TODO: Replace with flexible package name handling + (ProjectSourcesFinder.isGradleProject() ? "build/" : "target/") + withinPath.toString() // TODO: Remove slash (will not work on Windows) + ); + } + // + catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to not being able to read " + javaArchitectureTestCaseCollectionFileHeaderPath + " due to an I/O exception: " + e); + } catch (OutOfMemoryError e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to not being able to read " + javaArchitectureTestCaseCollectionFileHeaderPath + " due to an out of memory exception: " + e); + } catch (IllegalFormatException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to " + javaArchitectureTestCaseCollectionFileHeaderPath + " defining an illegal format: " + e); + } + // + String javaArchitectureTestCaseCollectionFileBody; + try { + javaArchitectureTestCaseCollectionFileBody = String.join("\n", javaArchitectureTestCases.stream().map(JavaArchitectureTestCase::createArchitectureTestCaseFileContent).toList()); + } + // + catch (NullPointerException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to one of the architecture test case file contents being null: " + e); + } + // + String javaArchitectureTestCaseCollectionFileFooter; + Path javaArchitectureTestCaseCollectionFileFooterPath = Path.of( + "src", + "main", + "resources", + "templates", + "javaArchitectureTestCaseCollectionFileFooter.txt" + ); + try { + javaArchitectureTestCaseCollectionFileFooter = String.format( + Files.readString(javaArchitectureTestCaseCollectionFileFooterPath) + ); + } + // + catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to not being able to read " + javaArchitectureTestCaseCollectionFileFooterPath + " due to an I/O exception: " + e); + } catch (OutOfMemoryError e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to not being able to read " + javaArchitectureTestCaseCollectionFileFooterPath + " due to an out of memory exception: " + e); + } catch (IllegalFormatException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to " + javaArchitectureTestCaseCollectionFileFooterPath + " defining an illegal format: " + e); + } + // + try { + Files.writeString( + javaArchitectureTestCaseCollectionFile, + String.join( "\n", - javaArchitectureTestCases - .stream() - .map(JavaArchitectureTestCase::createArchitectureTestCaseFileContent) - .toList() - ) + """ - - } - """, StandardOpenOption.WRITE); - Path adviceDefinitionPath = Files.copy( + List.of( + javaArchitectureTestCaseCollectionFileHeader, + javaArchitectureTestCaseCollectionFileBody, + javaArchitectureTestCaseCollectionFileFooter + ) + ), + StandardOpenOption.WRITE + ); + } + // + catch (IllegalArgumentException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to an illegal argument: " + e); + } catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to an I/O exception: " + e); + } catch (NullPointerException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to one of the architecture test case file parts being null: " + e); + } catch (UnsupportedOperationException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to missing supported by this JVM: " + e); + } + // + + // + // + try { + Path javaAdviceDefinitionPath = Files.copy( Path.of("src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj"), path.resolve("AdviceDefinition.aj") ); - Path pointcutDefinitionPath = Files.copy( + } + // + catch (InvalidPathException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj due to an incorrect address resolving: " + e); + } catch (UnsupportedOperationException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj due to missing supported by this JVM: " + e); + } catch (FileAlreadyExistsException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj, as it already exists: " + e); + } catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj due to an I/O exception: " + e); + } + // + try { + Path javaPointcutDefinitionPath = Files.copy( Path.of("src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj"), path.resolve("PointcutDefinitions.aj") ); - Path aspectConfigurationListsFile = Files.createFile(path.resolve("JavaAspectConfigurationLists.java")); - Files.writeString(aspectConfigurationListsFile, - """ - public class JavaAspectConfigurationLists { - - """ + String.join( + } + // + catch (InvalidPathException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj due to an incorrect address resolving: " + e); + } catch (UnsupportedOperationException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj due to missing supported by this JVM: " + e); + } catch (FileAlreadyExistsException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj, as it already exists: " + e); + } catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj due to an I/O exception: " + e); + } + // + Path javaAspectConfigurationCollectionFile; + try { + javaAspectConfigurationCollectionFile = Files.createFile(path.resolve("JavaAspectConfigurationCollection.java")); + } + // + catch (InvalidPathException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot create JavaAspectConfigurationCollection.java on " + path + " due to an incorrect address resolving: " + e); + } catch (UnsupportedOperationException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot create JavaAspectConfigurationCollection.java on " + path + " due to missing supported by this JVM: " + e); + } catch (FileAlreadyExistsException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot create JavaAspectConfigurationCollection.java on " + path + ", as it already exists: " + e); + } catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot create JavaAspectConfigurationCollection.java on " + path + " due to an I/O exception: " + e); + } + // + String javaAspectConfigurationCollectionFileHeader; + try { + javaAspectConfigurationCollectionFileHeader = String.format( + Files.readString( + Path.of( + "src", + "main", + "resources", + "templates", + "javaAspectConfigurationCollectionFileHeader.txt" + ) + ), + "de.tum.cit.ase", // TODO: Replace with flexible package name handling + (ProjectSourcesFinder.isGradleProject() ? "build/" : "target/") + withinPath.toString() // TODO: Remove slash (will not work on Windows) + ); + } + // + catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaAspectConfigurationCollection.java on " + path + " due to not being able to read " + javaArchitectureTestCaseCollectionFileHeaderPath + " due to an I/O exception: " + e); + } catch (OutOfMemoryError e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaAspectConfigurationCollection.java on " + path + " due to not being able to read " + javaArchitectureTestCaseCollectionFileHeaderPath + " due to an out of memory exception: " + e); + } catch (IllegalFormatException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaAspectConfigurationCollection.java on " + path + " due to " + javaArchitectureTestCaseCollectionFileHeaderPath + " defining an illegal format: " + e); + } + // + String javaAspectConfigurationCollectionFileBody; + try { + javaAspectConfigurationCollectionFileBody = String.join( + "\n", + javaAspectConfigurations.stream().map(JavaAspectConfiguration::createAspectConfigurationFileContent).toList() + ); + } + // + catch (NullPointerException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaAspectConfigurationCollection.java on " + path + " due to one of the architecture test case file contents being null: " + e); + } + // + String javaAspectConfigurationCollectionFileFooter; + try { + javaAspectConfigurationCollectionFileFooter = String.format( + Files.readString( + Path.of( + "src", + "main", + "resources", + "templates", + "javaAspectConfigurationCollectionFileFooter.txt" + ) + ) + ); + } + // + catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaAspectConfigurationCollection.java on " + path + " due to not being able to read " + javaArchitectureTestCaseCollectionFileFooterPath + " due to an I/O exception: " + e); + } catch (OutOfMemoryError e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaAspectConfigurationCollection.java on " + path + " due to not being able to read " + javaArchitectureTestCaseCollectionFileFooterPath + " due to an out of memory exception: " + e); + } catch (IllegalFormatException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaAspectConfigurationCollection.java on " + path + " due to " + javaArchitectureTestCaseCollectionFileFooterPath + " defining an illegal format: " + e); + } + // + try { + Files.writeString( + javaAspectConfigurationCollectionFile, + String.join( "\n", - javaAspectConfigurations - .stream() - .map(JavaAspectConfiguration::createAspectConfigurationFileContent) - .toList() - ) + """ - - } - """, StandardOpenOption.WRITE); - return List.of(architectureTestCaseFile, aspectConfigurationListsFile, adviceDefinitionPath, pointcutDefinitionPath); - } catch (Exception e) { - throw new SecurityException("Creating test case file failed."); + List.of( + javaAspectConfigurationCollectionFileHeader, + javaAspectConfigurationCollectionFileBody, + javaAspectConfigurationCollectionFileFooter + ) + ), + StandardOpenOption.WRITE + ); + } + // + catch (IllegalArgumentException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to an illegal argument: " + e); + } catch (IOException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to an I/O exception: " + e); + } catch (NullPointerException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to one of the architecture test case file parts being null: " + e); + } catch (UnsupportedOperationException e) { + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot write to JavaArchitectureTestCaseCollection.java on " + path + " due to missing supported by this JVM: " + e); } + // + // + return List.of(javaArchitectureTestCaseCollectionFile, javaAspectConfigurationCollectionFile); } diff --git a/src/main/resources/ExampleConfiguration.yaml b/src/main/resources/ExampleConfiguration.yaml index 78ee3fb6..12860d79 100644 --- a/src/main/resources/ExampleConfiguration.yaml +++ b/src/main/resources/ExampleConfiguration.yaml @@ -23,5 +23,5 @@ iAllowTheFollowingCommandExecutionsForTheStudents: - iAllowTheFollowingThreadCreationsForTheStudents: - -iAllowTheFollowingPackageImportsForTheStudents: +iAllowTheFollowingPackageImportForTheStudents: - \ No newline at end of file diff --git a/src/main/resources/templates/ArchitectureTestCaseFileFooter.txt b/src/main/resources/templates/ArchitectureTestCaseFileFooter.txt new file mode 100644 index 00000000..80834767 --- /dev/null +++ b/src/main/resources/templates/ArchitectureTestCaseFileFooter.txt @@ -0,0 +1,2 @@ + + } \ No newline at end of file diff --git a/src/main/resources/templates/ArchitectureTestCaseFileHeader.txt b/src/main/resources/templates/ArchitectureTestCaseFileHeader.txt new file mode 100644 index 00000000..ee38c523 --- /dev/null +++ b/src/main/resources/templates/ArchitectureTestCaseFileHeader.txt @@ -0,0 +1,24 @@ +package %s; + +import com.tngtech.archunit.base.DescribedPredicate; +import com.tngtech.archunit.core.domain.JavaAccess; +import com.tngtech.archunit.core.importer.ImportOption; +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchRule; +import com.tngtech.archunit.lang.syntax.ArchRuleDefinition; +import de.tum.cit.ase.ares.api.architecturetest.java.ArchitectureTestCaseStorage; +import de.tum.cit.ase.ares.api.architecturetest.java.JavaSupportedArchitectureTestCase; +import de.tum.cit.ase.ares.api.securitytest.java.PathLocationProvider; +import de.tum.cit.ase.ares.api.securitytest.java.StudentCompiledClassesPath; +import de.tum.cit.ase.ares.api.architecturetest.java.postcompile.TransitivelyAccessesMethodsCondition; +import java.util.List; +import static de.tum.cit.ase.ares.api.architecturetest.java.JavaSupportedArchitectureTestCase.FILESYSTEM_INTERACTION; + + +/** +* This class runs the security rules on the architecture for the pre-compile mode. +*/ +@StudentCompiledClassesPath("%s")Defines security rules for the Java programming language in post-compile mode. +@AnalyzeClasses(locations = PathLocationProvider.class) +public class JavaArchitectureTestCaseCollection { \ No newline at end of file diff --git a/src/main/resources/templates/AspectConfigurationFileFooter.txt b/src/main/resources/templates/AspectConfigurationFileFooter.txt new file mode 100644 index 00000000..ff30235f --- /dev/null +++ b/src/main/resources/templates/AspectConfigurationFileFooter.txt @@ -0,0 +1 @@ +} \ No newline at end of file diff --git a/src/main/resources/templates/AspectConfigurationFileHeader.txt b/src/main/resources/templates/AspectConfigurationFileHeader.txt new file mode 100644 index 00000000..5785023a --- /dev/null +++ b/src/main/resources/templates/AspectConfigurationFileHeader.txt @@ -0,0 +1 @@ + public class JavaAspectConfigurationCollection { \ No newline at end of file From 974c1c817ee6836297e30a45f0ee93cf82a1997b Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Sat, 27 Jul 2024 14:54:25 +0200 Subject: [PATCH 09/30] working on TODO --- .../java/AdviceDefinition.aj | 74 +++++++------------ .../java/AdviceDefinitionExample.aj | 45 +++++------ .../java/PointcutDefinitions.aj | 6 +- .../java/PointcutDefinitionsExample.aj | 4 +- 4 files changed, 54 insertions(+), 75 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index a00703ae..ff911512 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -1,9 +1,10 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; +import org.aspectj.lang.JoinPoint; + public aspect AdviceDefinition { // TODO: Can we outsource the common functionality in a separate function? - Object around() : PointcutDefinitions.fileInputStreamConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); + private boolean handleAroundAdvice(JoinPoint thisJoinPoint) { String fileName = thisJoinPoint.getSourceLocation().getFileName(); boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() @@ -14,67 +15,48 @@ public aspect AdviceDefinition { // TODO: Can we outsource the common functional throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); } - return proceed(); + return true; } - Object around() : PointcutDefinitions.fileReaderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + Object around() : PointcutDefinitions.fileInputStreamConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } + } - return proceed(); + Object around() : PointcutDefinitions.fileReaderConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } } Object around() : PointcutDefinitions.fileWriterConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.filterOutputStreamConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.inputStreamConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.objectInputFilterConfigConstructorMethods() { diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj index 5773aa1f..4d99ea79 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj @@ -1,49 +1,43 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; +import org.aspectj.lang.JoinPoint; + import java.nio.file.Path; public aspect AdviceDefinitionExample { - - // Around advice to capture the path used in Files.write and check permissions - Object around() : PointcutDefinitions.filesWriteMethod() { - Object[] args = thisJoinPoint.getArgs(); - Path path = (Path) args[0]; // Assuming the first argument is the Path - + /* + private boolean handleAroundAdvice(JoinPoint thisJoinPoint) { String fileName = thisJoinPoint.getSourceLocation().getFileName(); - // Check if the file name is allowed and has write permission boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) && interaction.studentsAreAllowedToOverwriteAllFiles()); if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called" + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); } - return proceed(); + return true; + } + + // Around advice to capture the path used in Files.write and check permissions + Object around() : PointcutDefinitions.filesWriteMethod() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } } // Around advice to capture the path used in Files.readAllBytes and check permissions Object around() : PointcutDefinitions.filesReadMethod() { - Object[] args = thisJoinPoint.getArgs(); - Path path = (Path) args[0]; // Assuming the first argument is the Path - - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - // Check if the file name is allowed and has read permission - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToReadAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called" + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } - /* - // Around advice to capture file deletion and check permissions Object around() : PointcutDefinitions.filesDeleteMethod() { Object[] args = thisJoinPoint.getArgs(); @@ -76,4 +70,5 @@ public aspect AdviceDefinitionExample { */ + } diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj index 857b98c1..bd5e8e8b 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -498,17 +498,17 @@ public aspect PointcutDefinitions { !within(de.tum.cit.ase.ares.api..*); // Pointcut for ObjectInputFilter$Config. - pointcut objectInputFilterConfigMethods() : + pointcut objectInputFilterConfigClinit() : (execution(* java.io.ObjectInputFilter$Config.*(..))) && !within(de.tum.cit.ase.ares.api..*); // Pointcut for ObjectInputStream. - pointcut objectInputStreamMethods() : + pointcut objectInputStreamClinit() : (execution(* java.io.ObjectInputStream.*(..))) && !within(de.tum.cit.ase.ares.api..*); // Pointcut for FileSystemProvider. - pointcut fileSystemProviderMethods() : + pointcut fileSystemProviderClinit() : (execution(* java.nio.file.spi.FileSystemProvider.*(..))) && !within(de.tum.cit.ase.ares.api..*); } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj index 5aead095..d4467715 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj @@ -1,7 +1,7 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; public aspect PointcutDefinitionsExample { - + /* // Pointcut for Files.write method pointcut filesWriteMethod() : call(* java.nio.file.Files.write(..)); @@ -15,4 +15,6 @@ public aspect PointcutDefinitionsExample { // Pointcut for Files.delete method pointcut filesDeleteMethod() : call(* java.nio.file.Files.delete(..)); + */ + } From c375410897a3653d64e8df8e91eef5b541fde4f5 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Sat, 27 Jul 2024 18:06:44 +0200 Subject: [PATCH 10/30] 217 methods added --- .../java/AdviceDefinition.aj | 1338 +++++------------ 1 file changed, 360 insertions(+), 978 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index ff911512..5b5a1bc5 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -2,7 +2,7 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; import org.aspectj.lang.JoinPoint; -public aspect AdviceDefinition { // TODO: Can we outsource the common functionality in a separate function? +public aspect AdviceDefinition { private boolean handleAroundAdvice(JoinPoint thisJoinPoint) { String fileName = thisJoinPoint.getSourceLocation().getFileName(); @@ -18,7 +18,6 @@ public aspect AdviceDefinition { // TODO: Can we outsource the common functional return true; } - Object around() : PointcutDefinitions.fileInputStreamConstructorMethods() { if (handleAroundAdvice(thisJoinPoint)) { return proceed(); @@ -60,1324 +59,707 @@ public aspect AdviceDefinition { // TODO: Can we outsource the common functional } Object around() : PointcutDefinitions.objectInputFilterConfigConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.objectInputStreamGetFieldConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.objectOutputStreamPutFieldConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.objectStreamClassConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.objectStreamFieldConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.outputStreamConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.printStreamConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.printWriterConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.randomAccessFileConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.readerConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.streamTokenizerConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.writerConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.bufferConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.byteOrderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.asynchronousChannelGroupConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.asynchronousFileChannelConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.asynchronousServerSocketChannelConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.asynchronousSocketChannelConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.channelsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileChannelMapModeConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - } - - return proceed(); - } + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } Object around() : PointcutDefinitions.fileLockConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.membershipKeyConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.pipeConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.selectionKeyConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.selectorConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.abstractInterruptibleChannelConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.abstractSelectableChannelConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.asynchronousChannelProviderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.selectorProviderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.charsetConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.charsetDecoderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.charsetEncoderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.coderResultConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.codingErrorActionConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.standardCharsetsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.charsetProviderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - } - - return proceed(); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } + } Object around() : PointcutDefinitions.fileStoreConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileSystemConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileSystemsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.filesConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.pathsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.simpleFileVisitorConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.standardWatchEventKindsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.aclEntryBuilderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.aclEntryConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileTimeConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blockedby AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.posixFilePermissionsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.userPrincipalLookupServiceConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileSystemProviderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileTypeDetectorConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.datagramSocketAdaptorConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.defaultAsynchronousChannelProviderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.defaultSelectorProviderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileChannelImplConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileKeyConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.ioStatusConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.ioUtilConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.nativeThreadConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.netConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.nioSocketImplConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.pollerConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.streamsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.threadPoolConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.utilConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.resultContainerConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.sctpChannelImplConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - } - - return proceed(); - } - - Object around() : PointcutDefinitions.sctpMultiChannelImplConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } - Object around() : PointcutDefinitions.sctpNetConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + Object around() : PointcutDefinitions.sctpMultiChannelImplConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } + } - return proceed(); + Object around() : PointcutDefinitions.sctpNetConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } } Object around() : PointcutDefinitions.sctpServerChannelImplConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.sctpStdSocketOptionConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.defaultFileSystemProviderConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.defaultFileTypeDetectorConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.extendedOptionsInternalOptionConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.extendedOptionsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.globsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.unixUserPrincipalsConstructorMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileMethodCalls() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && (interaction.studentsAreAllowedToOverwriteAllFiles() || - interaction.studentsAreAllowedToReadAllFiles() || - interaction.studentsAreAllowedToDeleteAllFiles())); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileDescriptorCloseAllMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.filterInputStreamReadMethod() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToReadAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.pushbackInputStreamMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToReadAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.filesAsUncheckedRunnableMethod() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.filesWriteWithCharsetMethod() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileChannelImplImplCloseChannelMethod() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.ioUtilReleaseScopesMethod() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.unixFileSystemProviderMethods() { - Object[] args = thisJoinPoint.getArgs(); - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && (interaction.studentsAreAllowedToOverwriteAllFiles() || - interaction.studentsAreAllowedToReadAllFiles() || - interaction.studentsAreAllowedToDeleteAllFiles())); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.objectInputFilterConfigClinit() { - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.objectInputStreamClinit() { - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } Object around() : PointcutDefinitions.fileSystemProviderClinit() { - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - - return proceed(); } } \ No newline at end of file From d707536667ec05edcaec5a660d950844a50c223e Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Sat, 27 Jul 2024 18:35:26 +0200 Subject: [PATCH 11/30] added more methods to pointcut and advices --- .../java/AdviceDefinition.aj | 592 ++++++++++++++++++ .../java/PointcutDefinitions.aj | 402 ++++++++++++ 2 files changed, 994 insertions(+) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index 5b5a1bc5..ad6563c2 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -762,4 +762,596 @@ public aspect AdviceDefinition { } } + Object around() : PointcutDefinitions.documentHandlerMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.templatesImplMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.xPathFactoryImplConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.desktopMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fontMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.inputEventMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.introspectorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.propertyEditorManagerMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileTempDirectoryMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileInputStreamConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileOutputStreamConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.objectInputFilterConfigMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.objectInputStreamMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.objectOutputStreamMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.objectInputStreamConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.objectOutputStreamConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.objectStreamClassMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.objectStreamFieldMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.randomAccessFileConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixFileSystemMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.urlConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.urlMethodExecutions() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.urlConnectionMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.urlStreamHandlerProviderMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileTreeWalkerMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.tempFileHelperMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileSystemProviderMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileTypeDetectorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.logStreamMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.driverManagerMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.zipFileConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.streamPrintServiceFactoryMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.xPathFactoryFinderMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.jrtFileSystemProviderMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.builtinClassLoaderMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.urlClassPathMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.moduleReferencesExplodedModuleReaderConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.systemModuleFindersSystemModuleReaderMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.requestPublishersFilePublisherMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.responseBodyHandlersMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.responseSubscribersMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.writeableUserPathMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.channelsMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.mainMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.dataTransfererMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileImageSourceConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.imageConsumerQueueConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.inputStreamImageSourceMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.shellFolderManagerMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileFontMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.fileServerHandlerConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.mimeTableMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.httpURLConnectionMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.jarFileFactoryMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.serverSocketChannelImplMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixAsynchronousServerSocketChannelImplMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.abstractUserDefinedFileAttributeViewMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixChannelFactoryMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixFileAttributeViewsPosixMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixFileSystem1Methods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixFileSystemFileStoreIteratorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixFileSystemMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixFileSystemProviderMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixPathMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.printJob2DMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.rasterPrinterJobMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.serviceDialogPrintServicePanelMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.registryImplConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + + Object around() : PointcutDefinitions.configFileSpiMethods() { + if (handleAroundAdvice(thisJoinPoint)) { + return proceed(); + } else { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + } + } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj index bd5e8e8b..e67af0b3 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -511,4 +511,406 @@ public aspect PointcutDefinitions { pointcut fileSystemProviderClinit() : (execution(* java.nio.file.spi.FileSystemProvider.*(..))) && !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DocumentHandler methods + pointcut documentHandlerMethods() : + (execution(* com.sun.beans.decoder.DocumentHandler.parse(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for TemplatesImpl methods + pointcut templatesImplMethods() : + (execution(* com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl.readObject(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for XPathFactoryImpl constructors + pointcut xPathFactoryImplConstructorMethods() : + (execution(com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Desktop methods + pointcut desktopMethods() : + (execution(* java.awt.Desktop.moveToTrash(..)) || + execution(* java.awt.Desktop.print(..)) || + execution(* java.awt.Desktop.setPrintFileHandler(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Font methods + pointcut fontMethods() : + (execution(* java.awt.Font.checkFontFile(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for InputEvent methods + pointcut inputEventMethods() : + (execution(* java.awt.event.InputEvent.canAccessSystemClipboard(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Introspector methods + pointcut introspectorMethods() : + (execution(* java.beans.Introspector.setBeanInfoSearchPath(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PropertyEditorManager methods + pointcut propertyEditorManagerMethods() : + (execution(* java.beans.PropertyEditorManager.setEditorSearchPath(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for File$TempDirectory methods + pointcut fileTempDirectoryMethods() : + (execution(* java.io.File$TempDirectory.generateFile(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for File methods + pointcut fileMethods() : + (execution(* java.io.File.canExecute(..)) || + execution(* java.io.File.canRead(..)) || + execution(* java.io.File.canWrite(..)) || + execution(* java.io.File.createNewFile(..)) || + execution(* java.io.File.createTempFile(..)) || + execution(* java.io.File.delete(..)) || + execution(* java.io.File.deleteOnExit(..)) || + execution(* java.io.File.exists(..)) || + execution(* java.io.File.getFreeSpace(..)) || + execution(* java.io.File.getTotalSpace(..)) || + execution(* java.io.File.getUsableSpace(..)) || + execution(* java.io.File.isDirectory(..)) || + execution(* java.io.File.isFile(..)) || + execution(* java.io.File.isHidden(..)) || + execution(* java.io.File.lastModified(..)) || + execution(* java.io.File.length(..)) || + execution(* java.io.File.mkdir(..)) || + execution(* java.io.File.normalizedList(..)) || + execution(* java.io.File.renameTo(..)) || + execution(* java.io.File.setExecutable(..)) || + execution(* java.io.File.setLastModified(..)) || + execution(* java.io.File.setReadOnly(..)) || + execution(* java.io.File.setReadable(..)) || + execution(* java.io.File.setWritable(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputFilter$Config methods + pointcut objectInputFilterConfigMethods() : + (execution(* java.io.ObjectInputFilter$Config.setSerialFilter(..)) || + execution(* java.io.ObjectInputFilter$Config.setSerialFilterFactory(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputStream methods + pointcut objectInputStreamMethods() : + (execution(* java.io.ObjectInputStream.enableResolveObject(..)) || + execution(* java.io.ObjectInputStream.setObjectInputFilter(..)) || + execution(* java.io.ObjectInputStream.verifySubclass(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectOutputStream methods + pointcut objectOutputStreamMethods() : + (execution(* java.io.ObjectOutputStream.enableReplaceObject(..)) || + execution(* java.io.ObjectOutputStream.verifySubclass(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputStream constructors + pointcut objectInputStreamConstructorMethods() : + (execution(java.io.ObjectInputStream.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectOutputStream constructors + pointcut objectOutputStreamConstructorMethods() : + (execution(java.io.ObjectOutputStream.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + + + // Pointcut for ObjectStreamClass methods + pointcut objectStreamClassMethods() : + (execution(* java.io.ObjectStreamClass.forClass(..)) || + execution(* java.io.ObjectStreamClass.getProtectionDomains(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectStreamField methods + pointcut objectStreamFieldMethods() : + (execution(* java.io.ObjectStreamField.getType(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixFileSystem methods + pointcut unixFileSystemMethods() : + (execution(* java.io.UnixFileSystem.listRoots(..)) || + execution(* java.io.UnixFileSystem.resolve(..)) || execution(* sun.nio.fs.UnixFileSystem.copy(..)) || + execution(* sun.nio.fs.UnixFileSystem.getFileStores(..)) || + execution(* sun.nio.fs.UnixFileSystem.move(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for URL constructors + pointcut urlConstructorMethods() : + (execution(java.net.URL.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for URL methods + pointcut urlMethodExecutions() : + (execution(* java.net.URL.setURLStreamHandlerFactory(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for URLConnection methods + pointcut urlConnectionMethods() : + (execution(* java.net.URLConnection.setFileNameMap(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for URLStreamHandlerProvider methods + pointcut urlStreamHandlerProviderMethods() : + (execution(* java.net.spi.URLStreamHandlerProvider.checkPermission(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileTreeWalker methods + pointcut fileTreeWalkerMethods() : + (execution(* java.nio.file.FileTreeWalker.getAttributes(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for TempFileHelper methods + pointcut tempFileHelperMethods() : + (execution(* java.nio.file.TempFileHelper.create(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileSystemProvider methods + pointcut fileSystemProviderMethods() : + (execution(* java.nio.file.spi.FileSystemProvider.checkPermission(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileTypeDetector methods + pointcut fileTypeDetectorMethods() : + (execution(* java.nio.file.spi.FileTypeDetector.checkPermission(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for LogStream methods + pointcut logStreamMethods() : + (execution(* java.rmi.server.LogStream.setDefaultStream(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DriverManager methods + pointcut driverManagerMethods() : + (execution(* java.sql.DriverManager.setLogStream(..)) || + execution(* java.sql.DriverManager.setLogWriter(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ZipFile constructors + pointcut zipFileConstructorMethods() : + (execution(java.util.zip.ZipFile.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + + // Pointcut for StreamPrintServiceFactory methods + pointcut streamPrintServiceFactoryMethods() : + (execution(* javax.print.StreamPrintServiceFactory$1.run(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for XPathFactoryFinder methods + pointcut xPathFactoryFinderMethods() : + (execution(* javax.xml.xpath.XPathFactoryFinder.createClass(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for JrtFileSystemProvider methods + pointcut jrtFileSystemProviderMethods() : + (execution(* jdk.internal.jrtfs.JrtFileSystemProvider.checkPermission(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BuiltinClassLoader methods + pointcut builtinClassLoaderMethods() : + (execution(* jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(..)) || + execution(* jdk.internal.loader.BuiltinClassLoader.findResourceAsStream(..)) || + execution(* jdk.internal.loader.BuiltinClassLoader.findResourceOnClassPath(..)) || + execution(* jdk.internal.loader.BuiltinClassLoader.findResourcesOnClassPath(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for URLClassPath methods + pointcut urlClassPathMethods() : + (execution(* jdk.internal.loader.URLClassPath$JarLoader.checkJar(..)) || + execution(* jdk.internal.loader.URLClassPath.check(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ModuleReferences$ExplodedModuleReader constructor + pointcut moduleReferencesExplodedModuleReaderConstructorMethods() : + (execution(jdk.internal.module.ModuleReferences$ExplodedModuleReader.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SystemModuleFinders$SystemModuleReader methods + pointcut systemModuleFindersSystemModuleReaderMethods() : + (execution(* jdk.internal.module.SystemModuleFinders$SystemModuleReader.checkPermissionToConnect(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for RequestPublishers$FilePublisher methods + pointcut requestPublishersFilePublisherMethods() : + (execution(* jdk.internal.net.http.RequestPublishers$FilePublisher.create(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ResponseBodyHandlers methods + pointcut responseBodyHandlersMethods() : + (execution(* jdk.internal.net.http.ResponseBodyHandlers$FileDownloadBodyHandler.create(..)) || + execution(* jdk.internal.net.http.ResponseBodyHandlers$PathBodyHandler.create(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ResponseSubscribers methods + pointcut responseSubscribersMethods() : + (execution(* jdk.internal.net.http.ResponseSubscribers$PathSubscriber.create(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for WriteableUserPath methods + pointcut writeableUserPathMethods() : + (execution(* jdk.jfr.internal.WriteableUserPath.doPrivilegedIO(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Channels methods + pointcut channelsMethods() : + (execution(* jdk.nio.Channels.readWriteSelectableChannel(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Main methods + pointcut mainMethods() : + (execution(* jdk.tools.jlink.internal.Main.run(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DataTransferer methods + pointcut dataTransfererMethods() : + (execution(* sun.awt.datatransfer.DataTransferer.castToFiles(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileImageSource constructor + pointcut fileImageSourceConstructorMethods() : + (execution(sun.awt.image.FileImageSource.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ImageConsumerQueue constructor + pointcut imageConsumerQueueConstructorMethods() : + (execution(sun.awt.image.ImageConsumerQueue.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for InputStreamImageSource methods + pointcut inputStreamImageSourceMethods() : + (execution(* sun.awt.image.InputStreamImageSource.addConsumer(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ShellFolderManager methods + pointcut shellFolderManagerMethods() : + (execution(* sun.awt.shell.ShellFolderManager.checkFile(..)) || + execution(* sun.awt.shell.ShellFolderManager.checkFiles(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileFont methods + pointcut fileFontMethods() : + (execution(* sun.font.FileFont.getPublicFileName(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileServerHandler constructor + pointcut fileServerHandlerConstructorMethods() : + (execution(sun.net.httpserver.simpleserver.FileServerHandler.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for MimeTable methods + pointcut mimeTableMethods() : + (execution(* sun.net.www.MimeTable.saveAsProperties(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for HttpURLConnection methods + pointcut httpURLConnectionMethods() : + (execution(* sun.net.www.protocol.http.HttpURLConnection.checkURLFile(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for JarFileFactory methods + pointcut jarFileFactoryMethods() : + (execution(* sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ServerSocketChannelImpl methods + pointcut serverSocketChannelImplMethods() : + (execution(* sun.nio.ch.ServerSocketChannelImpl.finishAccept(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixAsynchronousServerSocketChannelImpl methods + pointcut unixAsynchronousServerSocketChannelImplMethods() : + (execution(* sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.finishAccept(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AbstractUserDefinedFileAttributeView methods + pointcut abstractUserDefinedFileAttributeViewMethods() : + (execution(* sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixChannelFactory methods + pointcut unixChannelFactoryMethods() : + (execution(* sun.nio.fs.UnixChannelFactory.open(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixFileAttributeViews$Posix methods + pointcut unixFileAttributeViewsPosixMethods() : + (execution(* sun.nio.fs.UnixFileAttributeViews$Posix.checkReadExtended(..)) || + execution(* sun.nio.fs.UnixFileAttributeViews$Posix.checkWriteExtended(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixFileSystem$1 methods + pointcut unixFileSystem1Methods() : + (execution(* sun.nio.fs.UnixFileSystem$1.iterator(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixFileSystem$FileStoreIterator methods + pointcut unixFileSystemFileStoreIteratorMethods() : + (execution(* sun.nio.fs.UnixFileSystem$FileStoreIterator.readNext(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixPath methods + pointcut unixPathMethods() : + (execution(* sun.nio.fs.UnixPath.checkDelete(..)) || + execution(* sun.nio.fs.UnixPath.checkRead(..)) || + execution(* sun.nio.fs.UnixPath.checkWrite(..)) || + execution(* sun.nio.fs.UnixPath.toAbsolutePath(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixSecureDirectoryStream$BasicFileAttributeViewImpl methods + pointcut unixSecureDirectoryStreamBasicFileAttributeViewImplMethods() : + (execution(* sun.nio.fs.UnixSecureDirectoryStream$BasicFileAttributeViewImpl.checkWriteAccess(..)) || + execution(* sun.nio.fs.UnixSecureDirectoryStream$BasicFileAttributeViewImpl.readAttributes(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixSecureDirectoryStream$PosixFileAttributeViewImpl methods + pointcut unixSecureDirectoryStreamPosixFileAttributeViewImplMethods() : + (execution(* sun.nio.fs.UnixSecureDirectoryStream$PosixFileAttributeViewImpl.checkWriteAndUserAccess(..)) || + execution(* sun.nio.fs.UnixSecureDirectoryStream$PosixFileAttributeViewImpl.readAttributes(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixSecureDirectoryStream methods + pointcut unixSecureDirectoryStreamMethods() : + (execution(* sun.nio.fs.UnixSecureDirectoryStream.implDelete(..)) || + execution(* sun.nio.fs.UnixSecureDirectoryStream.move(..)) || + execution(* sun.nio.fs.UnixSecureDirectoryStream.newDirectoryStream(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for UnixUserDefinedFileAttributeView methods + pointcut unixUserDefinedFileAttributeViewMethods() : + (execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.delete(..)) || + execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.list(..)) || + execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.read(..)) || + execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.size(..)) || + execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.write(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PrintJob2D methods + pointcut printJob2DMethods() : + (execution(* sun.print.PrintJob2D.throwPrintToFile(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for RasterPrinterJob methods + pointcut rasterPrinterJobMethods() : + (execution(* sun.print.RasterPrinterJob.throwPrintToFile(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ServiceDialog$PrintServicePanel methods + pointcut serviceDialogPrintServicePanelMethods() : + (execution(* sun.print.ServiceDialog$PrintServicePanel.throwPrintToFile(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for RegistryImpl constructors + pointcut registryImplConstructorMethods() : + (execution(sun.rmi.registry.RegistryImpl.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ConfigFile$Spi methods + pointcut configFileSpiMethods() : + (execution(* sun.security.provider.ConfigFile$Spi.engineRefresh(..))) && + !within(de.tum.cit.ase.ares.api..*); + + } \ No newline at end of file From d87a7e099fc7d0c170c98ec739f3b3e737233136 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Sun, 28 Jul 2024 02:35:10 +0200 Subject: [PATCH 12/30] added more methods to pointcut and advices verify needed if this is the way to go --- .../java/AdviceDefinition.aj | 2375 ++++++++++++--- .../java/AdviceDefinitionExample.aj | 4 +- .../java/PointcutDefinitions.aj | 2572 +++++++++++++---- 3 files changed, 3916 insertions(+), 1035 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index ad6563c2..6a534aa7 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -1,1353 +1,2816 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; +import de.tum.cit.ase.ares.api.policy.FileSystemInteraction; import org.aspectj.lang.JoinPoint; public aspect AdviceDefinition { - private boolean handleAroundAdvice(JoinPoint thisJoinPoint) { + private boolean handleAroundAdvice(JoinPoint thisJoinPoint, String operationType) { String fileName = thisJoinPoint.getSourceLocation().getFileName(); boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); + && isOperationAllowed(interaction, operationType)); if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); } return true; } - Object around() : PointcutDefinitions.fileInputStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + private boolean isOperationAllowed(FileSystemInteraction interaction, String operationType) { + switch (operationType.toLowerCase()) { + case "read": + return interaction.studentsAreAllowedToReadAllFiles(); + case "write": + return interaction.studentsAreAllowedToOverwriteAllFiles(); + case "execute": + return interaction.studentsAreAllowedToExecuteAllFiles(); + case "delete": + return interaction.studentsAreAllowedToDeleteAllFiles(); + default: + throw new IllegalArgumentException("Invalid operation type: " + operationType); + } + } + + private void throwSecurityException(JoinPoint thisJoinPoint) { + throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + } + + Object around() : PointcutDefinitions.appletMethods() { + if (handleAroundAdvice(thisJoinPoint, "read") || + handleAroundAdvice(thisJoinPoint, "write") || + handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.awtEventMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.awtExceptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.awtPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.basicStrokeMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.borderLayoutMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.buttonMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.canvasMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.cardLayoutMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.checkboxMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.checkboxMenuItemMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.choiceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.componentReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.componentWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.componentExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.componentOrientationMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.containerReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.containerWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.containerExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.containerOrderFocusTraversalPolicyMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.cursorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.defaultKeyboardFocusManagerMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.desktopReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.desktopWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.desktopExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.dialogMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute") || + handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.eventQueueMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.fileDialogConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.fileDialogWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.fileDialogExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.fontConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.fontReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.fontWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.flowLayoutMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.focusTraversalPolicyMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.fontMetricsReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.frameConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.frameWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.frameExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.gradientPaintMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.graphicsConfigurationWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.graphicsDeviceReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.graphicsDeviceWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.graphicsEnvironmentReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.layoutContainerWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.imageWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.imageReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.keyboardFocusManagerConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.keyboardFocusManagerWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.keyboardFocusManagerExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.labelConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.labelAddNotifyMethod() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.linearGradientPaintCreateContextMethod() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.listConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.listAddNotifyMethod() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.mediaTrackerReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.menuConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.menuWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.menuBarConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.menuBarWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.menuComponentConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.menuComponentWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.menuItemConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.menuItemWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.mouseInfoReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.panelConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.panelAddNotifyMethod() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.popupMenuConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.popupMenuWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.radialGradientPaintCreateContextMethod() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.renderingHintsCloneMethod() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.robotConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.robotWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.scrollPaneConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.scrollPaneWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.scrollPaneAdjustableWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.scrollbarConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.scrollbarWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.splashScreenWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.splashScreenReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.systemTrayWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.systemTrayReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.taskbarReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.textAreaConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.textAreaAddNotifyMethod() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.textComponentWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.textFieldConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.textFieldAddNotifyMethod() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.texturePaintWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.toolkitWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.toolkitReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.trayIconConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.trayIconReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.windowConstructorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.windowWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.windowReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.iccProfileReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.iccProfileWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.clipboardWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.clipboardReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.dataFlavorMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { // Assuming most DataFlavor methods are read operations + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.mimeTypeParseExceptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { // Assuming constructors are considered as execute + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.stringSelectionMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { // Assuming getTransferData is a read operation + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.systemFlavorMapMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { // Assuming most SystemFlavorMap methods are write operations + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.unsupportedFlavorExceptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { // Assuming constructors are considered as execute + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.desktopEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.dragGestureEventStartDragMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.dragGestureRecognizerAddListenerMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.dragSourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.dragSourceContextMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.dropTargetMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.actionEventMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.adjustmentEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.componentEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.containerEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.focusEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.hierarchyEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.inputEventMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.inputMethodEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.invocationEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.itemEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.keyEventMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.mouseEventMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.mouseWheelEventMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.paintEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.textEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.windowEventConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.glyphVectorMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.imageGraphicAttributeConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.lineBreakMeasurerMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.shapeGraphicAttributeMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.textLayoutMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.textMeasurerMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.affineTransformMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.areaMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.cubicCurve2DMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.noninvertibleTransformExceptionConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.inputContextMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.abstractMultiResolutionImageMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.affineTransformOpMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.baseMultiResolutionImageMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + Object around() : PointcutDefinitions.bufferedImageMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileReaderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.colorConvertOpMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileWriterConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.convolveOpMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.filterOutputStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.lookupOpMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.inputStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.pixelGrabberConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectInputFilterConfigConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.rescaleOpMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectInputStreamGetFieldConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.volatileImageMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectOutputStreamPutFieldConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.printerExceptionConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectStreamClassConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.printerJobMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectStreamFieldConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.beanDescriptorConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.outputStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.beansMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.printStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.encoderMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.printWriterConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.eventHandlerMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.randomAccessFileConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.eventSetDescriptorConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.readerConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.eventSetDescriptorMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.streamTokenizerConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.expressionConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.writerConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.expressionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.bufferConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.featureDescriptorMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.byteOrderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.indexedPropertyDescriptorConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.asynchronousChannelGroupConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.indexedPropertyDescriptorMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.asynchronousFileChannelConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.introspectionExceptionConstructor() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.asynchronousServerSocketChannelConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.introspectorMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.asynchronousSocketChannelConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.methodDescriptorConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.channelsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.methodDescriptorMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileChannelMapModeConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.persistenceDelegateMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileLockConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.propertyChangeSupportMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.membershipKeyConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.propertyDescriptorConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.pipeConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.propertyDescriptorMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.selectionKeyConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.propertyVetoExceptionConstructor() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.selectorConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.simpleBeanInfoMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.abstractInterruptibleChannelConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.statementConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.abstractSelectableChannelConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.statementExecuteMethod() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.asynchronousChannelProviderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.xmlDecoderConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.selectorProviderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.xmlDecoderMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.charsetConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.xmlEncoderConstructors() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.charsetDecoderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.xmlEncoderMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.charsetEncoderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.beanContextChildSupportMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.coderResultConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.beanContextServicesSupportMethods() { + if (handleAroundAdvice(thisJoinPoint, "read") || handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.codingErrorActionConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.beanContextSupportMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.standardCharsetsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.bufferedInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.charsetProviderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.bufferedInputStreamCloseMethod() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileStoreConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.bufferedOutputStreamConstructors() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileSystemConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.bufferedOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileSystemsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.bufferedReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.filesConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.bufferedReaderCloseMethod() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.pathsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.bufferedWriterWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.simpleFileVisitorConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.bufferedWriterCloseMethod() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.standardWatchEventKindsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.byteArrayOutputStreamConstructors() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.aclEntryBuilderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.byteArrayOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.aclEntryConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.charArrayReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileTimeConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.charArrayWriterWriteToMethod() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.posixFilePermissionsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.dataInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.userPrincipalLookupServiceConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.dataOutputStreamConstructors() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileSystemProviderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.dataOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileTypeDetectorConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.datagramSocketAdaptorConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.defaultAsynchronousChannelProviderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.defaultSelectorProviderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileChannelImplConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileConversionMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileKeyConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.ioStatusConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileInputStreamResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.ioUtilConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.nativeThreadConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileOutputStreamResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.netConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.nioSocketImplConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.fileWriterWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.pollerConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.filterInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.streamsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.filterInputStreamResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.threadPoolConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.filterOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.utilConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.filterOutputStreamResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.resultContainerConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.filterReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.sctpChannelImplConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.filterReaderResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.sctpMultiChannelImplConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.filterWriterWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.sctpNetConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.filterWriterResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.sctpServerChannelImplConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.inputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.sctpStdSocketOptionConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.inputStreamReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.defaultFileSystemProviderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.inputStreamReaderResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.defaultFileTypeDetectorConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.lineNumberInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.extendedOptionsInternalOptionConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.lineNumberReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.extendedOptionsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.lineNumberReaderResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.globsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.objectInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.unixUserPrincipalsConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.objectInputStreamResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileMethodCalls() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.objectOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileDescriptorCloseAllMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.objectOutputStreamResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.filterInputStreamReadMethod() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.outputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.pushbackInputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.outputStreamResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.filesAsUncheckedRunnableMethod() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.pipedInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.filesWriteWithCharsetMethod() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.pipedOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileChannelImplImplCloseChannelMethod() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.pipedReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.ioUtilReleaseScopesMethod() { - if (handleAroundAdvice(thisJoinPoint)) { + Object around() : PointcutDefinitions.pipedWriterWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.unixFileSystemProviderMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for PipedInputStream read methods + Object around() : PointcutDefinitions.pipedInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectInputFilterConfigClinit() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for PipedOutputStream write methods + Object around() : PointcutDefinitions.pipedOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectInputStreamClinit() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for PipedReader read methods + Object around() : PointcutDefinitions.pipedReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileSystemProviderClinit() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for PipedWriter write methods + Object around() : PointcutDefinitions.pipedWriterWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.documentHandlerMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for PrintStream write methods + Object around() : PointcutDefinitions.printStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.templatesImplMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for PrintWriter write methods + Object around() : PointcutDefinitions.printWriterWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.xPathFactoryImplConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for PushbackInputStream read methods + Object around() : PointcutDefinitions.pushbackInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.desktopMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for PushbackReader read methods + Object around() : PointcutDefinitions.pushbackReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fontMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for RandomAccessFile read methods + Object around() : PointcutDefinitions.randomAccessFileReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.inputEventMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for RandomAccessFile write methods + Object around() : PointcutDefinitions.randomAccessFileWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.introspectorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for Reader read methods + Object around() : PointcutDefinitions.readerReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.propertyEditorManagerMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for SequenceInputStream read methods + Object around() : PointcutDefinitions.sequenceInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileTempDirectoryMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for StringReader read methods + Object around() : PointcutDefinitions.stringReaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for Writer write methods + Object around() : PointcutDefinitions.writerWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileInputStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for Authenticator read methods + Object around() : PointcutDefinitions.authenticatorReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileOutputStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for Authenticator write methods + Object around() : PointcutDefinitions.authenticatorWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectInputFilterConfigMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for DatagramSocket initialization methods + Object around() : PointcutDefinitions.datagramSocketInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectInputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for DatagramSocket write methods + Object around() : PointcutDefinitions.datagramSocketWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectOutputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for HttpURLConnection read methods + Object around() : PointcutDefinitions.httpURLConnectionReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectInputStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for HttpURLConnection write methods + Object around() : PointcutDefinitions.httpURLConnectionWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectOutputStreamConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for IDN read methods + Object around() : PointcutDefinitions.idnReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectStreamClassMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for InetAddress read methods + Object around() : PointcutDefinitions.inetAddressReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.objectStreamFieldMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for JarURLConnection read methods + Object around() : PointcutDefinitions.jarURLConnectionReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.randomAccessFileConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for MulticastSocket read methods + Object around() : PointcutDefinitions.multicastSocketReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.unixFileSystemMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for MulticastSocket write methods + Object around() : PointcutDefinitions.multicastSocketWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.urlConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for ServerSocket read methods + Object around() : PointcutDefinitions.serverSocketReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.urlMethodExecutions() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for ServerSocket write methods + Object around() : PointcutDefinitions.serverSocketWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.urlConnectionMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for Socket read methods + Object around() : PointcutDefinitions.socketReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.urlStreamHandlerProviderMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for Socket write methods + Object around() : PointcutDefinitions.socketWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.fileTreeWalkerMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for URI read methods + Object around() : PointcutDefinitions.uriReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for URL read methods + Object around() : PointcutDefinitions.urlReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for URLClassLoader read methods + Object around() : PointcutDefinitions.urlClassLoaderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for URLConnection read methods + Object around() : PointcutDefinitions.urlConnectionReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for HttpRequest$BodyPublishers write methods + Object around() : PointcutDefinitions.httpRequestBodyPublishersWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for HttpResponse$BodyHandlers read methods + Object around() : PointcutDefinitions.httpResponseBodyHandlersReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for HttpResponse$BodySubscribers read methods + Object around() : PointcutDefinitions.httpResponseBodySubscribersReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for AsynchronousSocketChannel write methods + Object around() : PointcutDefinitions.asynchronousSocketChannelWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for AsynchronousSocketChannel read methods + Object around() : PointcutDefinitions.asynchronousSocketChannelReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for FileChannel write methods + Object around() : PointcutDefinitions.fileChannelWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for FileChannel read methods + Object around() : PointcutDefinitions.fileChannelReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for SelectableChannel register methods + Object around() : PointcutDefinitions.selectableChannelRegisterMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for ServerSocketChannel bind methods + Object around() : PointcutDefinitions.serverSocketChannelBindMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for ServerSocketChannel setOption methods + Object around() : PointcutDefinitions.serverSocketChannelSetOptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for SocketChannel bind methods + Object around() : PointcutDefinitions.socketChannelBindMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for SocketChannel open methods + Object around() : PointcutDefinitions.socketChannelOpenMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for SocketChannel read methods + Object around() : PointcutDefinitions.socketChannelReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for SocketChannel setOption methods + Object around() : PointcutDefinitions.socketChannelSetOptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for SocketChannel write methods + Object around() : PointcutDefinitions.socketChannelWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for AccessDeniedException constructors + Object around() : PointcutDefinitions.accessDeniedExceptionInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for AtomicMoveNotSupportedException constructors + Object around() : PointcutDefinitions.atomicMoveNotSupportedExceptionInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); } } - Object around() : PointcutDefinitions.tempFileHelperMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for DirectoryNotEmptyException constructors + Object around() : PointcutDefinitions.directoryNotEmptyExceptionInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for FileAlreadyExistsException constructors + Object around() : PointcutDefinitions.fileAlreadyExistsExceptionInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for FileSystemException constructors + Object around() : PointcutDefinitions.fileSystemExceptionInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for FileSystemLoopException constructors + Object around() : PointcutDefinitions.fileSystemLoopExceptionInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for FileSystems getFileSystem methods + Object around() : PointcutDefinitions.fileSystemsGetFileSystemMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for FileSystems newFileSystem methods + Object around() : PointcutDefinitions.fileSystemsNewFileSystemMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } else { + throwSecurityException(thisJoinPoint); + } + } + + // Around advice for java.nio.file.Files copy methods + Object around() : PointcutDefinitions.filesCopyMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.fileSystemProviderMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files create methods + Object around() : PointcutDefinitions.filesCreateMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.fileTypeDetectorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files delete methods + Object around() : PointcutDefinitions.filesDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.logStreamMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files deleteIfExists methods + Object around() : PointcutDefinitions.filesDeleteIfExistsMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.driverManagerMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files exists methods + Object around() : PointcutDefinitions.filesExistsMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.zipFileConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files find methods + Object around() : PointcutDefinitions.filesFindMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.streamPrintServiceFactoryMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files getAttribute methods + Object around() : PointcutDefinitions.filesGetAttributeMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.xPathFactoryFinderMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files getFileStore methods + Object around() : PointcutDefinitions.filesGetFileStoreMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.jrtFileSystemProviderMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files getLastModifiedTime methods + Object around() : PointcutDefinitions.filesGetLastModifiedTimeMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.builtinClassLoaderMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files getPosixFilePermissions methods + Object around() : PointcutDefinitions.filesGetPosixFilePermissionsMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.urlClassPathMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files isDirectory methods + Object around() : PointcutDefinitions.filesIsDirectoryMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.moduleReferencesExplodedModuleReaderConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files isExecutable methods + Object around() : PointcutDefinitions.filesIsExecutableMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.systemModuleFindersSystemModuleReaderMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files isReadable methods + Object around() : PointcutDefinitions.filesIsReadableMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.requestPublishersFilePublisherMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files isRegularFile methods + Object around() : PointcutDefinitions.filesIsRegularFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.responseBodyHandlersMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files isSameFile methods + Object around() : PointcutDefinitions.filesIsSameFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.responseSubscribersMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files isSymbolicLink methods + Object around() : PointcutDefinitions.filesIsSymbolicLinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.writeableUserPathMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files isWritable methods + Object around() : PointcutDefinitions.filesIsWritableMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.channelsMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files lines methods + Object around() : PointcutDefinitions.filesLinesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.mainMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files list methods + Object around() : PointcutDefinitions.filesListMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.dataTransfererMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files mismatch methods + Object around() : PointcutDefinitions.filesMismatchMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.fileImageSourceConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files move methods + Object around() : PointcutDefinitions.filesMoveMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.imageConsumerQueueConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files newBufferedReader methods + Object around() : PointcutDefinitions.filesNewBufferedReaderMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.inputStreamImageSourceMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files newBufferedWriter methods + Object around() : PointcutDefinitions.filesNewBufferedWriterMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.shellFolderManagerMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files newByteChannel methods + Object around() : PointcutDefinitions.filesNewByteChannelMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.fileFontMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files newDirectoryStream methods + Object around() : PointcutDefinitions.filesNewDirectoryStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.fileServerHandlerConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files newInputStream methods + Object around() : PointcutDefinitions.filesNewInputStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.mimeTableMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files newOutputStream methods + Object around() : PointcutDefinitions.filesNewOutputStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.httpURLConnectionMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files notExists methods + Object around() : PointcutDefinitions.filesNotExistsMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.jarFileFactoryMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files probeContentType methods + Object around() : PointcutDefinitions.filesProbeContentTypeMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.serverSocketChannelImplMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files readAllBytes methods + Object around() : PointcutDefinitions.filesReadAllBytesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixAsynchronousServerSocketChannelImplMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files readAllLines methods + Object around() : PointcutDefinitions.filesReadAllLinesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.abstractUserDefinedFileAttributeViewMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files readAttributes methods + Object around() : PointcutDefinitions.filesReadAttributesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixChannelFactoryMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files readString methods + Object around() : PointcutDefinitions.filesReadStringMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixFileAttributeViewsPosixMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files readSymbolicLink methods + Object around() : PointcutDefinitions.filesReadSymbolicLinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixFileSystem1Methods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files setAttribute methods + Object around() : PointcutDefinitions.filesSetAttributeMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixFileSystemFileStoreIteratorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files size methods + Object around() : PointcutDefinitions.filesSizeMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixFileSystemMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files walk methods + Object around() : PointcutDefinitions.filesWalkMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixFileSystemProviderMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files walkFileTree methods + Object around() : PointcutDefinitions.filesWalkFileTreeMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixPathMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files write methods + Object around() : PointcutDefinitions.filesWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Files writeString methods + Object around() : PointcutDefinitions.filesWriteStringMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.LinkPermission methods + Object around() : PointcutDefinitions.linkPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixSecureDirectoryStreamMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.NoSuchFileException methods + Object around() : PointcutDefinitions.noSuchFileExceptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.NotDirectoryException methods + Object around() : PointcutDefinitions.notDirectoryExceptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.printJob2DMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.NotLinkException methods + Object around() : PointcutDefinitions.notLinkExceptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.rasterPrinterJobMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Path methods + Object around() : PointcutDefinitions.pathMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.serviceDialogPrintServicePanelMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.Paths methods + Object around() : PointcutDefinitions.pathsMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.registryImplConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.attribute.UserPrincipalNotFoundException methods + Object around() : PointcutDefinitions.userPrincipalNotFoundExceptionMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } } - Object around() : PointcutDefinitions.configFileSpiMethods() { - if (handleAroundAdvice(thisJoinPoint)) { + // Around advice for java.nio.file.spi.FileSystemProvider methods + Object around() : PointcutDefinitions.fileSystemProviderMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } else { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj index 4d99ea79..0047613d 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj @@ -25,7 +25,7 @@ public aspect AdviceDefinitionExample { if (handleAroundAdvice(thisJoinPoint)) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecuityException(thisJoinPoint); } } @@ -34,7 +34,7 @@ public aspect AdviceDefinitionExample { if (handleAroundAdvice(thisJoinPoint)) { return proceed(); } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); + throwSecurityException(thisJoinPoint); } } diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj index e67af0b3..f760165c 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -2,915 +2,2333 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; public aspect PointcutDefinitions { - // Pointcut for FileInputStream constructors - pointcut fileInputStreamConstructorMethods() : - (execution(java.io.FileInputStream.new(..))) && + // Pointcut for Applet constructors and methods + pointcut appletMethods() : + (execution(java.applet.Applet.new(..)) || + execution(* java.applet.Applet.getAudioClip(..)) || + execution(* java.applet.Applet.getImage(..)) || + execution(* java.applet.Applet.play(..)) || + execution(* java.applet.Applet.resize(..)) || + execution(* java.applet.Applet.setStub(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AWTEvent constructors and methods + pointcut awtEventMethods() : + (execution(java.awt.AWTEvent.new(..)) || + execution(* java.awt.AWTEvent.toString(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AWTException constructors + pointcut awtExceptionMethods() : + (execution(java.awt.AWTException.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AWTPermission constructors + pointcut awtPermissionMethods() : + (execution(java.awt.AWTPermission.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BasicStroke methods + pointcut basicStrokeMethods() : + (execution(* java.awt.BasicStroke.createStrokedShape(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BorderLayout methods + pointcut borderLayoutMethods() : + (execution(* java.awt.BorderLayout.layoutContainer(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Button constructors and methods + pointcut buttonMethods() : + (execution(java.awt.Button.new(..)) || + execution(* java.awt.Button.addNotify(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Canvas constructors and methods + pointcut canvasMethods() : + (execution(java.awt.Canvas.new(..)) || + execution(* java.awt.Canvas.addNotify(..)) || + execution(* java.awt.Canvas.createBufferStrategy(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CardLayout methods + pointcut cardLayoutMethods() : + (execution(* java.awt.CardLayout.addLayoutComponent(..)) || + execution(* java.awt.CardLayout.first(..)) || + execution(* java.awt.CardLayout.last(..)) || + execution(* java.awt.CardLayout.layoutContainer(..)) || + execution(* java.awt.CardLayout.next(..)) || + execution(* java.awt.CardLayout.previous(..)) || + execution(* java.awt.CardLayout.removeLayoutComponent(..)) || + execution(* java.awt.CardLayout.show(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Checkbox constructors and methods + pointcut checkboxMethods() : + (execution(java.awt.Checkbox.new(..)) || + execution(* java.awt.Checkbox.addNotify(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CheckboxMenuItem constructors and methods + pointcut checkboxMenuItemMethods() : + (execution(java.awt.CheckboxMenuItem.new(..)) || + execution(* java.awt.CheckboxMenuItem.addNotify(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Choice constructors and methods + pointcut choiceMethods() : + (execution(java.awt.Choice.new(..)) || + execution(* java.awt.Choice.addNotify(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Component read methods + pointcut componentReadMethods() : + (execution(* java.awt.Component.getColorModel(..)) || + execution(* java.awt.Component.getCursor(..)) || + execution(* java.awt.Component.getFocusTraversalKeys(..)) || + execution(* java.awt.Component.getFontMetrics(..)) || + execution(* java.awt.Component.getMousePosition(..)) || + execution(* java.awt.Component.getToolkit(..)) || + execution(* java.awt.Component.hasFocus(..)) || + execution(* java.awt.Component.isFocusOwner(..)) || + execution(* java.awt.Component.list(..)) || + execution(* java.awt.Component.imageUpdate(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Component write methods + pointcut componentWriteMethods() : + (execution(* java.awt.Component.add(..)) || + execution(* java.awt.Component.addNotify(..)) || + execution(* java.awt.Component.applyComponentOrientation(..)) || + execution(* java.awt.Component.checkImage(..)) || + execution(* java.awt.Component.createImage(..)) || + execution(* java.awt.Component.enable(..)) || + execution(* java.awt.Component.enableInputMethods(..)) || + execution(* java.awt.Component.firePropertyChange(..)) || + execution(* java.awt.Component.move(..)) || + execution(* java.awt.Component.prepareImage(..)) || + execution(* java.awt.Component.remove(..)) || + execution(* java.awt.Component.removeNotify(..)) || + execution(* java.awt.Component.repaint(..)) || + execution(* java.awt.Component.requestFocus(..)) || + execution(* java.awt.Component.reshape(..)) || + execution(* java.awt.Component.resize(..)) || + execution(* java.awt.Component.revalidate(..)) || + execution(* java.awt.Component.setBackground(..)) || + execution(* java.awt.Component.setBounds(..)) || + execution(* java.awt.Component.setComponentOrientation(..)) || + execution(* java.awt.Component.setEnabled(..)) || + execution(* java.awt.Component.setFocusTraversalKeys(..)) || + execution(* java.awt.Component.setFocusTraversalKeysEnabled(..)) || + execution(* java.awt.Component.setFocusable(..)) || + execution(* java.awt.Component.setFont(..)) || + execution(* java.awt.Component.setForeground(..)) || + execution(* java.awt.Component.setLocale(..)) || + execution(* java.awt.Component.setLocation(..)) || + execution(* java.awt.Component.setMaximumSize(..)) || + execution(* java.awt.Component.setMinimumSize(..)) || + execution(* java.awt.Component.setName(..)) || + execution(* java.awt.Component.setPreferredSize(..)) || + execution(* java.awt.Component.setSize(..)) || + execution(* java.awt.Component.setVisible(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Component execute methods + pointcut componentExecuteMethods() : + (execution(* java.awt.Component.disable(..)) || + execution(* java.awt.Component.dispatchEvent(..)) || + execution(* java.awt.Component.enable(..)) || + execution(* java.awt.Component.hide(..)) || + execution(* java.awt.Component.show(..)) || + execution(* java.awt.Component.transferFocus(..)) || + execution(* java.awt.Component.transferFocusBackward(..)) || + execution(* java.awt.Component.transferFocusUpCycle(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ComponentOrientation methods + pointcut componentOrientationMethods() : + (execution(* java.awt.ComponentOrientation.getOrientation(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Container constructors and read methods + pointcut containerReadMethods() : + (execution(java.awt.Container.new(..)) || + execution(* java.awt.Container.getFocusTraversalKeys(..)) || + execution(* java.awt.Container.getFocusTraversalPolicy(..)) || + execution(* java.awt.Container.getMousePosition(..)) || + execution(* java.awt.Container.list(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Container write methods + pointcut containerWriteMethods() : + (execution(* java.awt.Container.add(..)) || + execution(* java.awt.Container.addNotify(..)) || + execution(* java.awt.Container.applyComponentOrientation(..)) || + execution(* java.awt.Container.doLayout(..)) || + execution(* java.awt.Container.remove(..)) || + execution(* java.awt.Container.removeAll(..)) || + execution(* java.awt.Container.removeNotify(..)) || + execution(* java.awt.Container.setComponentZOrder(..)) || + execution(* java.awt.Container.setFocusCycleRoot(..)) || + execution(* java.awt.Container.setFocusTraversalKeys(..)) || + execution(* java.awt.Container.setFocusTraversalPolicy(..)) || + execution(* java.awt.Container.setFocusTraversalPolicyProvider(..)) || + execution(* java.awt.Container.setFont(..)) || + execution(* java.awt.Container.update(..)) || + execution(* java.awt.Container.validate(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Container execute methods + pointcut containerExecuteMethods() : + (execution(* java.awt.Container.transferFocusDownCycle(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ContainerOrderFocusTraversalPolicy methods + pointcut containerOrderFocusTraversalPolicyMethods() : + (execution(* java.awt.ContainerOrderFocusTraversalPolicy.getComponentAfter(..)) || + execution(* java.awt.ContainerOrderFocusTraversalPolicy.getComponentBefore(..)) || + execution(* java.awt.ContainerOrderFocusTraversalPolicy.getDefaultComponent(..)) || + execution(* java.awt.ContainerOrderFocusTraversalPolicy.getFirstComponent(..)) || + execution(* java.awt.ContainerOrderFocusTraversalPolicy.getLastComponent(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Cursor constructors and methods + pointcut cursorMethods() : + (execution(java.awt.Cursor.new(..)) || + execution(* java.awt.Cursor.getDefaultCursor(..)) || + execution(* java.awt.Cursor.getPredefinedCursor(..)) || + execution(* java.awt.Cursor.getSystemCustomCursor(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DefaultKeyboardFocusManager constructors and methods + pointcut defaultKeyboardFocusManagerMethods() : + (execution(java.awt.DefaultKeyboardFocusManager.new(..)) || + execution(* java.awt.DefaultKeyboardFocusManager.dispatchEvent(..)) || + execution(* java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(..)) || + execution(* java.awt.DefaultKeyboardFocusManager.downFocusCycle(..)) || + execution(* java.awt.DefaultKeyboardFocusManager.focusNextComponent(..)) || + execution(* java.awt.DefaultKeyboardFocusManager.focusPreviousComponent(..)) || + execution(* java.awt.DefaultKeyboardFocusManager.processKeyEvent(..)) || + execution(* java.awt.DefaultKeyboardFocusManager.upFocusCycle(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Desktop read methods + pointcut desktopReadMethods() : + (execution(* java.awt.Desktop.getDesktop(..)) || + execution(* java.awt.Desktop.isDesktopSupported(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Desktop write methods + pointcut desktopWriteMethods() : + (execution(* java.awt.Desktop.setDefaultMenuBar(..)) || + execution(* java.awt.Desktop.setOpenFileHandler(..)) || + execution(* java.awt.Desktop.setOpenURIHandler(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Desktop execute methods + pointcut desktopExecuteMethods() : + (execution(* java.awt.Desktop.browse(..)) || + execution(* java.awt.Desktop.browseFileDirectory(..)) || + execution(* java.awt.Desktop.edit(..)) || + execution(* java.awt.Desktop.mail(..)) || + execution(* java.awt.Desktop.moveToTrash(..)) || + execution(* java.awt.Desktop.open(..)) || + execution(* java.awt.Desktop.openHelpViewer(..)) || + execution(* java.awt.Desktop.print(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Dialog constructors and methods + pointcut dialogMethods() : + (execution(java.awt.Dialog.new(..)) || + execution(* java.awt.Dialog.addNotify(..)) || + execution(* java.awt.Dialog.hide(..)) || + execution(* java.awt.Dialog.setBackground(..)) || + execution(* java.awt.Dialog.setModal(..)) || + execution(* java.awt.Dialog.setModalityType(..)) || + execution(* java.awt.Dialog.setOpacity(..)) || + execution(* java.awt.Dialog.setShape(..)) || + execution(* java.awt.Dialog.setTitle(..)) || + execution(* java.awt.Dialog.setVisible(..)) || + execution(* java.awt.Dialog.show(..)) || + execution(* java.awt.Dialog.toBack(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for EventQueue methods + pointcut eventQueueMethods() : + (execution(* java.awt.EventQueue.createSecondaryLoop(..)) || + execution(* java.awt.EventQueue.getCurrentEvent(..)) || + execution(* java.awt.EventQueue.getMostRecentEventTime(..)) || + execution(* java.awt.EventQueue.getNextEvent(..)) || + execution(* java.awt.EventQueue.invokeAndWait(..)) || + execution(* java.awt.EventQueue.invokeLater(..)) || + execution(* java.awt.EventQueue.isDispatchThread(..)) || + execution(* java.awt.EventQueue.postEvent(..)) || + execution(* java.awt.EventQueue.push(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileDialog constructors and methods + pointcut fileDialogConstructorMethods() : + (execution(java.awt.FileDialog.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileDialogWriteMethods() : + (execution(* java.awt.FileDialog.setTitle(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileOutputStream constructors - pointcut fileOutputStreamConstructorMethods() : - (execution(java.io.FileOutputStream.new(..))) && + pointcut fileDialogExecuteMethods() : + (execution(* java.awt.FileDialog.addNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileReader constructors - pointcut fileReaderConstructorMethods() : - (execution(java.io.FileReader.new(..))) && + // Pointcut for Font constructors and methods + pointcut fontConstructorMethods() : + (execution(java.awt.Font.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileWriter constructors - pointcut fileWriterConstructorMethods() : - (execution(java.io.FileWriter.new(..))) && + pointcut fontReadMethods() : + (execution(* java.awt.Font.canDisplay(..)) || + execution(* java.awt.Font.canDisplayUpTo(..)) || + execution(* java.awt.Font.createFont(..)) || + execution(* java.awt.Font.createFonts(..)) || + execution(* java.awt.Font.createGlyphVector(..)) || + execution(* java.awt.Font.deriveFont(..)) || + execution(* java.awt.Font.getAttributes(..)) || + execution(* java.awt.Font.getFont(..)) || + execution(* java.awt.Font.getItalicAngle(..)) || + execution(* java.awt.Font.getLineMetrics(..)) || + execution(* java.awt.Font.getMaxCharBounds(..)) || + execution(* java.awt.Font.getMissingGlyphCode(..)) || + execution(* java.awt.Font.getNumGlyphs(..)) || + execution(* java.awt.Font.getStringBounds(..)) || + execution(* java.awt.Font.getTransform(..)) || + execution(* java.awt.Font.layoutGlyphVector(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FilterOutputStream constructor - pointcut filterOutputStreamConstructorMethods() : - (execution(java.io.FilterOutputStream.new(..))) && + pointcut fontWriteMethods() : + (execution(* java.awt.Font.equals(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for InputStream constructor - pointcut inputStreamConstructorMethods() : - (execution(java.io.InputStream.new(..))) && + // Pointcut for FlowLayout methods + pointcut flowLayoutMethods() : + (execution(* java.awt.FlowLayout.layoutContainer(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectInputFilter$Config constructor - pointcut objectInputFilterConfigConstructorMethods() : - (execution(java.io.ObjectInputFilter$Config.new(..))) && + // Pointcut for FocusTraversalPolicy methods + pointcut focusTraversalPolicyMethods() : + (execution(* java.awt.FocusTraversalPolicy.getInitialComponent(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectInputStream$GetField constructor - pointcut objectInputStreamGetFieldConstructorMethods() : - (execution(java.io.ObjectInputStream$GetField.new(..))) && + // Pointcut for FontMetrics read methods + pointcut fontMetricsReadMethods() : + (execution(* java.awt.FontMetrics.bytesWidth(..)) || + execution(* java.awt.FontMetrics.charWidth(..)) || + execution(* java.awt.FontMetrics.charsWidth(..)) || + execution(* java.awt.FontMetrics.getLineMetrics(..)) || + execution(* java.awt.FontMetrics.getMaxCharBounds(..)) || + execution(* java.awt.FontMetrics.getStringBounds(..)) || + execution(* java.awt.FontMetrics.getWidths(..)) || + execution(* java.awt.FontMetrics.stringWidth(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectOutputStream$PutField constructor - pointcut objectOutputStreamPutFieldConstructorMethods() : - (execution(java.io.ObjectOutputStream$PutField.new(..))) && + // Pointcut for Frame constructors + pointcut frameConstructorMethods() : + (execution(java.awt.Frame.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectStreamClass constructors - pointcut objectStreamClassConstructorMethods() : - (execution(java.io.ObjectStreamClass.new(..))) && + // Pointcut for Frame methods + pointcut frameWriteMethods() : + (execution(* java.awt.Frame.addNotify(..)) || + execution(* java.awt.Frame.setBackground(..)) || + execution(* java.awt.Frame.setCursor(..)) || + execution(* java.awt.Frame.setExtendedState(..)) || + execution(* java.awt.Frame.setIconImage(..)) || + execution(* java.awt.Frame.setMenuBar(..)) || + execution(* java.awt.Frame.setOpacity(..)) || + execution(* java.awt.Frame.setResizable(..)) || + execution(* java.awt.Frame.setShape(..)) || + execution(* java.awt.Frame.setState(..)) || + execution(* java.awt.Frame.setTitle(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectStreamField constructors - pointcut objectStreamFieldConstructorMethods() : - (execution(java.io.ObjectStreamField.new(..))) && + pointcut frameExecuteMethods() : + (execution(* java.awt.Frame.getCursorType(..)) || + execution(* java.awt.Frame.remove(..)) || + execution(* java.awt.Frame.removeNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for OutputStream constructor - pointcut outputStreamConstructorMethods() : - (execution(java.io.OutputStream.new(..))) && + // Pointcut for GradientPaint create context method + pointcut gradientPaintMethods() : + (execution(* java.awt.GradientPaint.createContext(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for PrintStream constructors - pointcut printStreamConstructorMethods() : - (execution(java.io.PrintStream.new(..))) && + // Pointcut for GraphicsConfiguration create methods + pointcut graphicsConfigurationWriteMethods() : + (execution(* java.awt.GraphicsConfiguration.createCompatibleVolatileImage(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for PrintWriter constructors - pointcut printWriterConstructorMethods() : - (execution(java.io.PrintWriter.new(..))) && + // Pointcut for GraphicsDevice methods + pointcut graphicsDeviceReadMethods() : + (execution(* java.awt.GraphicsDevice.getBestConfiguration(..)) || + execution(* java.awt.GraphicsDevice.getDisplayMode(..)) || + execution(* java.awt.GraphicsDevice.getDisplayModes(..)) || + execution(* java.awt.GraphicsDevice.isWindowTranslucencySupported(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for RandomAccessFile constructors - pointcut randomAccessFileConstructorMethods() : - (execution(java.io.RandomAccessFile.new(..))) && + pointcut graphicsDeviceWriteMethods() : + (execution(* java.awt.GraphicsDevice.setFullScreenWindow(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Reader constructors - pointcut readerConstructorMethods() : - (execution(java.io.Reader.new(..))) && + // Pointcut for GraphicsEnvironment methods + pointcut graphicsEnvironmentReadMethods() : + (execution(* java.awt.GraphicsEnvironment.getCenterPoint(..)) || + execution(* java.awt.GraphicsEnvironment.getMaximumWindowBounds(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for StreamTokenizer constructor - pointcut streamTokenizerConstructorMethods() : - (execution(java.io.StreamTokenizer.new(..))) && + // Pointcut for GridBagLayout and GridLayout methods + pointcut layoutContainerWriteMethods() : + (execution(* java.awt.GridBagLayout.layoutContainer(..)) || + execution(* java.awt.GridLayout.layoutContainer(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Writer constructors - pointcut writerConstructorMethods() : - (execution(java.io.Writer.new(..))) && + // Pointcut for Image methods + pointcut imageWriteMethods() : + (execution(* java.awt.Image.flush(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Buffer constructors - pointcut bufferConstructorMethods() : - (execution(java.nio.Buffer.new(..))) && + pointcut imageReadMethods() : + (execution(* java.awt.Image.getScaledInstance(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ByteOrder constructor - pointcut byteOrderConstructorMethods() : - (execution(java.nio.ByteOrder.new(..))) && + // Pointcut for KeyboardFocusManager methods + pointcut keyboardFocusManagerConstructorMethods() : + (execution(java.awt.KeyboardFocusManager.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AsynchronousChannelGroup constructor - pointcut asynchronousChannelGroupConstructorMethods() : - (execution(java.nio.channels.AsynchronousChannelGroup.new(..))) && + pointcut keyboardFocusManagerWriteMethods() : + (execution(* java.awt.KeyboardFocusManager.clearFocusOwner(..)) || + execution(* java.awt.KeyboardFocusManager.clearGlobalFocusOwner(..)) || + execution(* java.awt.KeyboardFocusManager.downFocusCycle(..)) || + execution(* java.awt.KeyboardFocusManager.focusNextComponent(..)) || + execution(* java.awt.KeyboardFocusManager.focusPreviousComponent(..)) || + execution(* java.awt.KeyboardFocusManager.setCurrentKeyboardFocusManager(..)) || + execution(* java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(..)) || + execution(* java.awt.KeyboardFocusManager.setDefaultFocusTraversalPolicy(..)) || + execution(* java.awt.KeyboardFocusManager.setGlobalCurrentFocusCycleRoot(..)) || + execution(* java.awt.KeyboardFocusManager.upFocusCycle(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AsynchronousFileChannel constructor - pointcut asynchronousFileChannelConstructorMethods() : - (execution(java.nio.channels.AsynchronousFileChannel.new(..))) && + pointcut keyboardFocusManagerExecuteMethods() : + (execution(* java.awt.KeyboardFocusManager.getCurrentKeyboardFocusManager(..)) || + execution(* java.awt.KeyboardFocusManager.redispatchEvent(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AsynchronousServerSocketChannel constructor - pointcut asynchronousServerSocketChannelConstructorMethods() : - (execution(java.nio.channels.AsynchronousServerSocketChannel.new(..))) && + // Pointcut for Label constructor and addNotify method + pointcut labelConstructorMethods() : + (execution(java.awt.Label.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AsynchronousSocketChannel constructor - pointcut asynchronousSocketChannelConstructorMethods() : - (execution(java.nio.channels.AsynchronousSocketChannel.new(..))) && + pointcut labelAddNotifyMethod() : + (execution(* java.awt.Label.addNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Channels constructor - pointcut channelsConstructorMethods() : - (execution(java.nio.channels.Channels.new(..))) && + // Pointcut for LinearGradientPaint createContext method + pointcut linearGradientPaintCreateContextMethod() : + (execution(* java.awt.LinearGradientPaint.createContext(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileChannel$MapMode constructor - pointcut fileChannelMapModeConstructorMethods() : - (execution(java.nio.channels.FileChannel$MapMode.new(..))) && + // Pointcut for List constructor and addNotify method + pointcut listConstructorMethods() : + (execution(java.awt.List.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileLock constructors - pointcut fileLockConstructorMethods() : - (execution(java.nio.channels.FileLock.new(..))) && + pointcut listAddNotifyMethod() : + (execution(* java.awt.List.addNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for MembershipKey constructor - pointcut membershipKeyConstructorMethods() : - (execution(java.nio.channels.MembershipKey.new(..))) && + // Pointcut for MediaTracker check methods + pointcut mediaTrackerReadMethods() : + (execution(* java.awt.MediaTracker.checkAll(..)) || + execution(* java.awt.MediaTracker.checkID(..)) || + execution(* java.awt.MediaTracker.getErrorsAny(..)) || + execution(* java.awt.MediaTracker.getErrorsID(..)) || + execution(* java.awt.MediaTracker.isErrorAny(..)) || + execution(* java.awt.MediaTracker.isErrorID(..)) || + execution(* java.awt.MediaTracker.statusAll(..)) || + execution(* java.awt.MediaTracker.statusID(..)) || + execution(* java.awt.MediaTracker.waitForAll(..)) || + execution(* java.awt.MediaTracker.waitForID(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Pipe constructor - pointcut pipeConstructorMethods() : - (execution(java.nio.channels.Pipe.new(..))) && + // Pointcut for Menu constructor and methods + pointcut menuConstructorMethods() : + (execution(java.awt.Menu.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SelectionKey constructor - pointcut selectionKeyConstructorMethods() : - (execution(java.nio.channels.SelectionKey.new(..))) && + pointcut menuWriteMethods() : + (execution(* java.awt.Menu.add(..)) || + execution(* java.awt.Menu.addNotify(..)) || + execution(* java.awt.Menu.addSeparator(..)) || + execution(* java.awt.Menu.insert(..)) || + execution(* java.awt.Menu.remove(..)) || + execution(* java.awt.Menu.removeAll(..)) || + execution(* java.awt.Menu.removeNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Selector constructor - pointcut selectorConstructorMethods() : - (execution(java.nio.channels.Selector.new(..))) && + // Pointcut for MenuBar constructor and methods + pointcut menuBarConstructorMethods() : + (execution(java.awt.MenuBar.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AbstractInterruptibleChannel constructors - pointcut abstractInterruptibleChannelConstructorMethods() : - (execution(java.nio.channels.spi.AbstractInterruptibleChannel.new(..))) && + pointcut menuBarWriteMethods() : + (execution(* java.awt.MenuBar.add(..)) || + execution(* java.awt.MenuBar.addNotify(..)) || + execution(* java.awt.MenuBar.remove(..)) || + execution(* java.awt.MenuBar.setHelpMenu(..)) || + execution(* java.awt.MenuBar.removeNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AbstractSelectableChannel constructors - pointcut abstractSelectableChannelConstructorMethods() : - (execution(java.nio.channels.spi.AbstractSelectableChannel.new(..))) && + // Pointcut for MenuComponent constructor and methods + pointcut menuComponentConstructorMethods() : + (execution(java.awt.MenuComponent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AsynchronousChannelProvider constructor - pointcut asynchronousChannelProviderConstructorMethods() : - (execution(java.nio.channels.spi.AsynchronousChannelProvider.new(..))) && + pointcut menuComponentWriteMethods() : + (execution(* java.awt.MenuComponent.dispatchEvent(..)) || + execution(* java.awt.MenuComponent.removeNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SelectorProvider constructor - pointcut selectorProviderConstructorMethods() : - (execution(java.nio.channels.spi.SelectorProvider.new(..))) && + // Pointcut for MenuItem constructor and methods + pointcut menuItemConstructorMethods() : + (execution(java.awt.MenuItem.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Charset constructors - pointcut charsetConstructorMethods() : - (execution(java.nio.charset.Charset.new(..))) && + pointcut menuItemWriteMethods() : + (execution(* java.awt.MenuItem.addNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for CharsetDecoder constructor - pointcut charsetDecoderConstructorMethods() : - (execution(java.nio.charset.CharsetDecoder.new(..))) && + // Pointcut for MouseInfo methods + pointcut mouseInfoReadMethods() : + (execution(* java.awt.MouseInfo.getNumberOfButtons(..)) || + execution(* java.awt.MouseInfo.getPointerInfo(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for CharsetEncoder constructor - pointcut charsetEncoderConstructorMethods() : - (execution(java.nio.charset.CharsetEncoder.new(..))) && + // Pointcut for Panel constructor and addNotify method + pointcut panelConstructorMethods() : + (execution(java.awt.Panel.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for CoderResult constructor - pointcut coderResultConstructorMethods() : - (execution(java.nio.charset.CoderResult.new(..))) && + pointcut panelAddNotifyMethod() : + (execution(* java.awt.Panel.addNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for CodingErrorAction constructor - pointcut codingErrorActionConstructorMethods() : - (execution(java.nio.charset.CodingErrorAction.new(..))) && + // Pointcut for PopupMenu constructor and methods + pointcut popupMenuConstructorMethods() : + (execution(java.awt.PopupMenu.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for StandardCharsets constructor - pointcut standardCharsetsConstructorMethods() : - (execution(java.nio.charset.StandardCharsets.new(..))) && + pointcut popupMenuWriteMethods() : + (execution(* java.awt.PopupMenu.addNotify(..)) || + execution(* java.awt.PopupMenu.show(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for CharsetProvider constructor - pointcut charsetProviderConstructorMethods() : - (execution(java.nio.charset.spi.CharsetProvider.new(..))) && + // Pointcut for RadialGradientPaint createContext method + pointcut radialGradientPaintCreateContextMethod() : + (execution(* java.awt.RadialGradientPaint.createContext(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileStore constructor - pointcut fileStoreConstructorMethods() : - (execution(java.nio.file.FileStore.new(..))) && + // Pointcut for RenderingHints clone method + pointcut renderingHintsCloneMethod() : + (execution(* java.awt.RenderingHints.clone(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileSystem constructor - pointcut fileSystemConstructorMethods() : - (execution(java.nio.file.FileSystem.new(..))) && + // Pointcut for Robot constructor and methods + pointcut robotConstructorMethods() : + (execution(java.awt.Robot.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileSystems constructor - pointcut fileSystemsConstructorMethods() : - (execution(java.nio.file.FileSystems.new(..))) && + pointcut robotWriteMethods() : + (execution(* java.awt.Robot.createMultiResolutionScreenCapture(..)) || + execution(* java.awt.Robot.createScreenCapture(..)) || + execution(* java.awt.Robot.getPixelColor(..)) || + execution(* java.awt.Robot.keyPress(..)) || + execution(* java.awt.Robot.keyRelease(..)) || + execution(* java.awt.Robot.mouseMove(..)) || + execution(* java.awt.Robot.mousePress(..)) || + execution(* java.awt.Robot.mouseRelease(..)) || + execution(* java.awt.Robot.mouseWheel(..)) || + execution(* java.awt.Robot.waitForIdle(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Files constructor - pointcut filesConstructorMethods() : - (execution(java.nio.file.Files.new(..))) && + // Pointcut for ScrollPane constructors and methods + pointcut scrollPaneConstructorMethods() : + (execution(java.awt.ScrollPane.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Paths constructor - pointcut pathsConstructorMethods() : - (execution(java.nio.file.Paths.new(..))) && + pointcut scrollPaneWriteMethods() : + (execution(* java.awt.ScrollPane.addNotify(..)) || + execution(* java.awt.ScrollPane.doLayout(..)) || + execution(* java.awt.ScrollPane.layout(..)) || + execution(* java.awt.ScrollPane.setScrollPosition(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SimpleFileVisitor constructor - pointcut simpleFileVisitorConstructorMethods() : - (execution(java.nio.file.SimpleFileVisitor.new(..))) && + // Pointcut for ScrollPaneAdjustable methods + pointcut scrollPaneAdjustableWriteMethods() : + (execution(* java.awt.ScrollPaneAdjustable.setValue(..)) || + execution(* java.awt.ScrollPaneAdjustable.setValueIsAdjusting(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for StandardWatchEventKinds constructor - pointcut standardWatchEventKindsConstructorMethods() : - (execution(java.nio.file.StandardWatchEventKinds.new(..))) && + // Pointcut for Scrollbar constructors and methods + pointcut scrollbarConstructorMethods() : + (execution(java.awt.Scrollbar.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AclEntry$Builder constructor - pointcut aclEntryBuilderConstructorMethods() : - (execution(java.nio.file.attribute.AclEntry$Builder.new(..))) && + pointcut scrollbarWriteMethods() : + (execution(* java.awt.Scrollbar.addNotify(..)) || + execution(* java.awt.Scrollbar.setMaximum(..)) || + execution(* java.awt.Scrollbar.setMinimum(..)) || + execution(* java.awt.Scrollbar.setOrientation(..)) || + execution(* java.awt.Scrollbar.setValue(..)) || + execution(* java.awt.Scrollbar.setValueIsAdjusting(..)) || + execution(* java.awt.Scrollbar.setValues(..)) || + execution(* java.awt.Scrollbar.setVisibleAmount(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AclEntry constructor - pointcut aclEntryConstructorMethods() : - (execution(java.nio.file.attribute.AclEntry.new(..))) && + // Pointcut for SplashScreen methods + pointcut splashScreenWriteMethods() : + (execution(* java.awt.SplashScreen.createGraphics(..)) || + execution(* java.awt.SplashScreen.setImageURL(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileTime constructor - pointcut fileTimeConstructorMethods() : - (execution(java.nio.file.attribute.FileTime.new(..))) && + pointcut splashScreenReadMethods() : + (execution(* java.awt.SplashScreen.getImageURL(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for PosixFilePermissions constructor - pointcut posixFilePermissionsConstructorMethods() : - (execution(java.nio.file.attribute.PosixFilePermissions.new(..))) && + // Pointcut for SystemTray methods + pointcut systemTrayWriteMethods() : + (execution(* java.awt.SystemTray.add(..)) || + execution(* java.awt.SystemTray.remove(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UserPrincipalLookupService constructor - pointcut userPrincipalLookupServiceConstructorMethods() : - (execution(java.nio.file.attribute.UserPrincipalLookupService.new(..))) && + pointcut systemTrayReadMethods() : + (execution(* java.awt.SystemTray.getSystemTray(..)) || + execution(* java.awt.SystemTray.isSupported(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileSystemProvider constructor - pointcut fileSystemProviderConstructorMethods() : - (execution(java.nio.file.spi.FileSystemProvider.new(..))) && + // Pointcut for Taskbar methods + pointcut taskbarReadMethods() : + (execution(* java.awt.Taskbar.getTaskbar(..)) || + execution(* java.awt.Taskbar.isTaskbarSupported(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileTypeDetector constructor - pointcut fileTypeDetectorConstructorMethods() : - (execution(java.nio.file.spi.FileTypeDetector.new(..))) && + // Pointcut for TextArea constructors and addNotify method + pointcut textAreaConstructorMethods() : + (execution(java.awt.TextArea.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for DatagramSocketAdaptor constructor - pointcut datagramSocketAdaptorConstructorMethods() : - (execution(sun.nio.ch.DatagramSocketAdaptor.new(..))) && + pointcut textAreaAddNotifyMethod() : + (execution(* java.awt.TextArea.addNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for DefaultAsynchronousChannelProvider constructor - pointcut defaultAsynchronousChannelProviderConstructorMethods() : - (execution(sun.nio.ch.DefaultAsynchronousChannelProvider.new(..))) && + // Pointcut for TextComponent methods + pointcut textComponentWriteMethods() : + (execution(* java.awt.TextComponent.addNotify(..)) || + execution(* java.awt.TextComponent.enableInputMethods(..)) || + execution(* java.awt.TextComponent.removeNotify(..)) || + execution(* java.awt.TextComponent.setBackground(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for DefaultSelectorProvider constructor - pointcut defaultSelectorProviderConstructorMethods() : - (execution(sun.nio.ch.DefaultSelectorProvider.new(..))) && + // Pointcut for TextField constructors and methods + pointcut textFieldConstructorMethods() : + (execution(java.awt.TextField.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileChannelImpl constructor - pointcut fileChannelImplConstructorMethods() : - (execution(sun.nio.ch.FileChannelImpl.new(..))) && + pointcut textFieldAddNotifyMethod() : + (execution(* java.awt.TextField.addNotify(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileKey constructor - pointcut fileKeyConstructorMethods() : - (execution(sun.nio.ch.FileKey.new(..))) && + // Pointcut for TexturePaint methods + pointcut texturePaintWriteMethods() : + (execution(* java.awt.TexturePaint.createContext(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for IOStatus constructor - pointcut ioStatusConstructorMethods() : - (execution(sun.nio.ch.IOStatus.new(..))) && + // Pointcut for Toolkit methods + pointcut toolkitWriteMethods() : + (execution(* java.awt.Toolkit.addAWTEventListener(..)) || + execution(* java.awt.Toolkit.createCustomCursor(..)) || + execution(* java.awt.Toolkit.removeAWTEventListener(..)) || + execution(* java.awt.Toolkit.setDynamicLayout(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for IOUtil constructor - pointcut ioUtilConstructorMethods() : - (execution(sun.nio.ch.IOUtil.new(..))) && + pointcut toolkitReadMethods() : + (execution(* java.awt.Toolkit.areExtraMouseButtonsEnabled(..)) || + execution(* java.awt.Toolkit.getBestCursorSize(..)) || + execution(* java.awt.Toolkit.getDefaultToolkit(..)) || + execution(* java.awt.Toolkit.getDesktopProperty(..)) || + execution(* java.awt.Toolkit.getMaximumCursorColors(..)) || + execution(* java.awt.Toolkit.getPrintJob(..)) || + execution(* java.awt.Toolkit.getProperty(..)) || + execution(* java.awt.Toolkit.getScreenInsets(..)) || + execution(* java.awt.Toolkit.getSystemSelection(..)) || + execution(* java.awt.Toolkit.isDynamicLayoutActive(..)) || + execution(* java.awt.Toolkit.isFrameStateSupported(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for NativeThread constructor - pointcut nativeThreadConstructorMethods() : - (execution(sun.nio.ch.NativeThread.new(..))) && + // Pointcut for TrayIcon constructors and methods + pointcut trayIconConstructorMethods() : + (execution(java.awt.TrayIcon.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut trayIconReadMethods() : + (execution(* java.awt.TrayIcon.getSize(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Window constructors and methods related to creation and manipulation + pointcut windowConstructorMethods() : + (execution(java.awt.Window.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Net constructor - pointcut netConstructorMethods() : - (execution(sun.nio.ch.Net.new(..))) && + pointcut windowWriteMethods() : + (execution(* java.awt.Window.addNotify(..)) || + execution(* java.awt.Window.applyResourceBundle(..)) || + execution(* java.awt.Window.createBufferStrategy(..)) || + execution(* java.awt.Window.dispose(..)) || + execution(* java.awt.Window.hide(..)) || + execution(* java.awt.Window.pack(..)) || + execution(* java.awt.Window.paint(..)) || + execution(* java.awt.Window.removeNotify(..)) || + execution(* java.awt.Window.reshape(..)) || + execution(* java.awt.Window.setAlwaysOnTop(..)) || + execution(* java.awt.Window.setBackground(..)) || + execution(* java.awt.Window.setBounds(..)) || + execution(* java.awt.Window.setCursor(..)) || + execution(* java.awt.Window.setFocusableWindowState(..)) || + execution(* java.awt.Window.setIconImage(..)) || + execution(* java.awt.Window.setIconImages(..)) || + execution(* java.awt.Window.setLocation(..)) || + execution(* java.awt.Window.setLocationRelativeTo(..)) || + execution(* java.awt.Window.setMinimumSize(..)) || + execution(* java.awt.Window.setModalExclusionType(..)) || + execution(* java.awt.Window.setOpacity(..)) || + execution(* java.awt.Window.setShape(..)) || + execution(* java.awt.Window.setSize(..)) || + execution(* java.awt.Window.setVisible(..)) || + execution(* java.awt.Window.show(..)) || + execution(* java.awt.Window.toBack(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut windowReadMethods() : + (execution(* java.awt.Window.getFocusOwner(..)) || + execution(* java.awt.Window.getFocusTraversalKeys(..)) || + execution(* java.awt.Window.getInputContext(..)) || + execution(* java.awt.Window.getMostRecentFocusOwner(..)) || + execution(* java.awt.Window.getToolkit(..)) || + execution(* java.awt.Window.isActive(..)) || + execution(* java.awt.Window.isAlwaysOnTopSupported(..)) || + execution(* java.awt.Window.isFocusableWindow(..)) || + execution(* java.awt.Window.isFocused(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ICC_Profile methods related to reading data + pointcut iccProfileReadMethods() : + (execution(* java.awt.color.ICC_Profile.getColorSpaceType(..)) || + execution(* java.awt.color.ICC_Profile.getData(..)) || + execution(* java.awt.color.ICC_Profile.getInstance(..)) || + execution(* java.awt.color.ICC_Profile.getMajorVersion(..)) || + execution(* java.awt.color.ICC_Profile.getMinorVersion(..)) || + execution(* java.awt.color.ICC_Profile.getNumComponents(..)) || + execution(* java.awt.color.ICC_Profile.getPCSType(..)) || + execution(* java.awt.color.ICC_Profile.getProfileClass(..)) || + execution(* java.awt.color.ICC_ProfileGray.getGamma(..)) || + execution(* java.awt.color.ICC_ProfileGray.getMediaWhitePoint(..)) || + execution(* java.awt.color.ICC_ProfileGray.getTRC(..)) || + execution(* java.awt.color.ICC_ProfileRGB.getGamma(..)) || + execution(* java.awt.color.ICC_ProfileRGB.getMatrix(..)) || + execution(* java.awt.color.ICC_ProfileRGB.getMediaWhitePoint(..)) || + execution(* java.awt.color.ICC_ProfileRGB.getTRC(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ICC_Profile methods related to writing data + pointcut iccProfileWriteMethods() : + (execution(* java.awt.color.ICC_Profile.setData(..)) || + execution(* java.awt.color.ICC_Profile.write(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Clipboard methods related to adding and setting data (write operations) + pointcut clipboardWriteMethods() : + (execution(* java.awt.datatransfer.Clipboard.addFlavorListener(..)) || + execution(* java.awt.datatransfer.Clipboard.setContents(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Clipboard methods related to getting data (read operations) + pointcut clipboardReadMethods() : + (execution(* java.awt.datatransfer.Clipboard.getAvailableDataFlavors(..)) || + execution(* java.awt.datatransfer.Clipboard.getData(..)) || + execution(* java.awt.datatransfer.Clipboard.isDataFlavorAvailable(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DataFlavor constructors and methods + pointcut dataFlavorMethods() : + (execution(java.awt.datatransfer.DataFlavor.new(..)) || + execution(* java.awt.datatransfer.DataFlavor.equals(..)) || + execution(* java.awt.datatransfer.DataFlavor.getReaderForText(..)) || + execution(* java.awt.datatransfer.DataFlavor.getTextPlainUnicodeFlavor(..)) || + execution(* java.awt.datatransfer.DataFlavor.isFlavorRemoteObjectType(..)) || + execution(* java.awt.datatransfer.DataFlavor.isFlavorSerializedObjectType(..)) || + execution(* java.awt.datatransfer.DataFlavor.isMimeTypeEqual(..)) || + execution(* java.awt.datatransfer.DataFlavor.isMimeTypeSerializedObject(..)) || + execution(* java.awt.datatransfer.DataFlavor.readExternal(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for MimeTypeParseException constructors + pointcut mimeTypeParseExceptionMethods() : + (execution(java.awt.datatransfer.MimeTypeParseException.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for StringSelection methods + pointcut stringSelectionMethods() : + (execution(* java.awt.datatransfer.StringSelection.getTransferData(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SystemFlavorMap methods + pointcut systemFlavorMapMethods() : + (execution(* java.awt.datatransfer.SystemFlavorMap.addFlavorForUnencodedNative(..)) || + execution(* java.awt.datatransfer.SystemFlavorMap.addUnencodedNativeForFlavor(..)) || + execution(* java.awt.datatransfer.SystemFlavorMap.decodeDataFlavor(..)) || + execution(* java.awt.datatransfer.SystemFlavorMap.getFlavorsForNative(..)) || + execution(* java.awt.datatransfer.SystemFlavorMap.getFlavorsForNatives(..)) || + execution(* java.awt.datatransfer.SystemFlavorMap.getNativesForFlavor(..)) || + execution(* java.awt.datatransfer.SystemFlavorMap.getNativesForFlavors(..)) || + execution(* java.awt.datatransfer.SystemFlavorMap.setFlavorsForNative(..)) || + execution(* java.awt.datatransfer.SystemFlavorMap.setNativesForFlavor(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for NioSocketImpl constructor - pointcut nioSocketImplConstructorMethods() : - (execution(sun.nio.ch.NioSocketImpl.new(..))) && + // Pointcut for UnsupportedFlavorException constructors + pointcut unsupportedFlavorExceptionMethods() : + (execution(java.awt.datatransfer.UnsupportedFlavorException.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Poller constructor - pointcut pollerConstructorMethods() : - (execution(sun.nio.ch.Poller.new(..))) && + // Pointcut for desktop event constructors + pointcut desktopEventConstructors() : + (execution(java.awt.desktop.AboutEvent.new(..)) || + execution(java.awt.desktop.AppForegroundEvent.new(..)) || + execution(java.awt.desktop.AppHiddenEvent.new(..)) || + execution(java.awt.desktop.AppReopenedEvent.new(..)) || + execution(java.awt.desktop.OpenFilesEvent.new(..)) || + execution(java.awt.desktop.OpenURIEvent.new(..)) || + execution(java.awt.desktop.PreferencesEvent.new(..)) || + execution(java.awt.desktop.PrintFilesEvent.new(..)) || + execution(java.awt.desktop.QuitEvent.new(..)) || + execution(java.awt.desktop.ScreenSleepEvent.new(..)) || + execution(java.awt.desktop.SystemSleepEvent.new(..)) || + execution(java.awt.desktop.UserSessionEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Streams constructor - pointcut streamsConstructorMethods() : - (execution(sun.nio.ch.Streams.new(..))) && + // Pointcut for DragGestureEvent startDrag methods + pointcut dragGestureEventStartDragMethods() : + (execution(* java.awt.dnd.DragGestureEvent.startDrag(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ThreadPool constructor - pointcut threadPoolConstructorMethods() : - (execution(sun.nio.ch.ThreadPool.new(..))) && + // Pointcut for DragGestureRecognizer addDragGestureListener method + pointcut dragGestureRecognizerAddListenerMethods() : + (execution(* java.awt.dnd.DragGestureRecognizer.addDragGestureListener(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Util constructor - pointcut utilConstructorMethods() : - (execution(sun.nio.ch.Util.new(..))) && + // Pointcut for DragSource methods + pointcut dragSourceMethods() : + (execution(* java.awt.dnd.DragSource.createDefaultDragGestureRecognizer(..)) || + execution(* java.awt.dnd.DragSource.createDragGestureRecognizer(..)) || + execution(* java.awt.dnd.DragSource.getDragThreshold(..)) || + execution(* java.awt.dnd.DragSource.isDragImageSupported(..)) || + execution(* java.awt.dnd.DragSource.startDrag(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ResultContainer constructor - pointcut resultContainerConstructorMethods() : - (execution(sun.nio.ch.sctp.ResultContainer.new(..))) && + // Pointcut for DragSourceContext constructors and methods + pointcut dragSourceContextMethods() : + (execution(java.awt.dnd.DragSourceContext.new(..)) || + execution(* java.awt.dnd.DragSourceContext.addDragSourceListener(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SctpChannelImpl constructors - pointcut sctpChannelImplConstructorMethods() : - (execution(sun.nio.ch.sctp.SctpChannelImpl.new(..))) && + // Pointcut for DropTarget constructors and methods + pointcut dropTargetMethods() : + (execution(java.awt.dnd.DropTarget.new(..)) || + execution(* java.awt.dnd.DropTarget.addDropTargetListener(..)) || + execution(* java.awt.dnd.DropTarget.dragEnter(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SctpMultiChannelImpl constructors - pointcut sctpMultiChannelImplConstructorMethods() : - (execution(sun.nio.ch.sctp.SctpMultiChannelImpl.new(..))) && + // Pointcut for ActionEvent constructors and methods + pointcut actionEventMethods() : + (execution(java.awt.event.ActionEvent.new(..)) || + execution(* java.awt.event.ActionEvent.paramString(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SctpNet constructor - pointcut sctpNetConstructorMethods() : - (execution(sun.nio.ch.sctp.SctpNet.new(..))) && + // Pointcut for AdjustmentEvent constructors + pointcut adjustmentEventConstructors() : + (execution(java.awt.event.AdjustmentEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SctpServerChannelImpl constructors - pointcut sctpServerChannelImplConstructorMethods() : - (execution(sun.nio.ch.sctp.SctpServerChannelImpl.new(..))) && + // Pointcut for ComponentEvent constructors + pointcut componentEventConstructors() : + (execution(java.awt.event.ComponentEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SctpStdSocketOption constructor - pointcut sctpStdSocketOptionConstructorMethods() : - (execution(sun.nio.ch.sctp.SctpStdSocketOption.new(..))) && + // Pointcut for ContainerEvent constructors + pointcut containerEventConstructors() : + (execution(java.awt.event.ContainerEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for DefaultFileSystemProvider constructor - pointcut defaultFileSystemProviderConstructorMethods() : - (execution(sun.nio.fs.DefaultFileSystemProvider.new(..))) && + // Pointcut for FocusEvent constructors + pointcut focusEventConstructors() : + (execution(java.awt.event.FocusEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for DefaultFileTypeDetector constructor - pointcut defaultFileTypeDetectorConstructorMethods() : - (execution(sun.nio.fs.DefaultFileTypeDetector.new(..))) && + // Pointcut for HierarchyEvent constructors + pointcut hierarchyEventConstructors() : + (execution(java.awt.event.HierarchyEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ExtendedOptions$InternalOption constructor - pointcut extendedOptionsInternalOptionConstructorMethods() : - (execution(sun.nio.fs.ExtendedOptions$InternalOption.new(..))) && + // Pointcut for InputEvent methods + pointcut inputEventMethods() : + (execution(* java.awt.event.InputEvent.getModifiersExText(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ExtendedOptions constructor - pointcut extendedOptionsConstructorMethods() : - (execution(sun.nio.fs.ExtendedOptions.new(..))) && + // Pointcut for InputMethodEvent constructors + pointcut inputMethodEventConstructors() : + (execution(java.awt.event.InputMethodEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Globs constructor - pointcut globsConstructorMethods() : - (execution(sun.nio.fs.Globs.new(..))) && + // Pointcut for InvocationEvent constructors + pointcut invocationEventConstructors() : + (execution(java.awt.event.InvocationEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixUserPrincipals constructor - pointcut unixUserPrincipalsConstructorMethods() : - (execution(sun.nio.fs.UnixUserPrincipals.new(..))) && + // Pointcut for ItemEvent constructors + pointcut itemEventConstructors() : + (execution(java.awt.event.ItemEvent.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for File method calls - pointcut fileMethodCalls() : - (execution(* java.io.File.canExecute(..)) || - execution(* java.io.File.canRead(..)) || - execution(* java.io.File.canWrite(..)) || - execution(* java.io.File.createNewFile(..)) || - execution(* java.io.File.createTempFile(..)) || - execution(* java.io.File.delete(..)) || - execution(* java.io.File.deleteOnExit(..)) || - execution(* java.io.File.exists(..)) || - execution(* java.io.File.getFreeSpace(..)) || - execution(* java.io.File.getTotalSpace(..)) || - execution(* java.io.File.getUsableSpace(..)) || - execution(* java.io.File.isDirectory(..)) || - execution(* java.io.File.isFile(..)) || - execution(* java.io.File.isHidden(..)) || - execution(* java.io.File.lastModified(..)) || - execution(* java.io.File.length(..)) || - execution(* java.io.File.list(..)) || - execution(* java.io.File.listFiles(..)) || - execution(* java.io.File.listRoots(..)) || - execution(* java.io.File.mkdir(..)) || - execution(* java.io.File.mkdirs(..)) || - execution(* java.io.File.renameTo(..)) || - execution(* java.io.File.setExecutable(..)) || - execution(* java.io.File.setLastModified(..)) || - execution(* java.io.File.setReadOnly(..)) || - execution(* java.io.File.setReadable(..)) || - execution(* java.io.File.setWritable(..)) || - execution(* java.io.File.toURI(..)) || - execution(* java.io.File.toURL(..))) && + // Pointcut for KeyEvent constructors and methods + pointcut keyEventMethods() : + (execution(java.awt.event.KeyEvent.new(..)) || + execution(* java.awt.event.KeyEvent.getKeyModifiersText(..)) || + execution(* java.awt.event.KeyEvent.getKeyText(..)) || + execution(* java.awt.event.KeyEvent.paramString(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileDescriptor.closeAll methods - pointcut fileDescriptorCloseAllMethods() : - (execution(* java.io.FileDescriptor.closeAll(..))) && + // Pointcut for MouseEvent constructors and methods + pointcut mouseEventMethods() : + (execution(java.awt.event.MouseEvent.new(..)) || + execution(* java.awt.event.MouseEvent.getMouseModifiersText(..)) || + execution(* java.awt.event.MouseEvent.paramString(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FilterInputStream.read method - pointcut filterInputStreamReadMethod() : - (execution(* java.io.FilterInputStream.read(..))) && + // Pointcut for MouseWheelEvent constructors and methods + pointcut mouseWheelEventMethods() : + (execution(java.awt.event.MouseWheelEvent.new(..)) || + execution(* java.awt.event.MouseWheelEvent.paramString(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for PushbackInputStream methods - pointcut pushbackInputStreamMethods() : - (execution(* java.io.PushbackInputStream.read(..)) || - execution(* java.io.PushbackInputStream.skip(..))) && + // Pointcut for PaintEvent constructors + pointcut paintEventConstructors() : + execution(java.awt.event.PaintEvent.new(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Files.asUncheckedRunnable method - pointcut filesAsUncheckedRunnableMethod() : - (execution(* java.nio.file.Files.asUncheckedRunnable(..))) && + // Pointcut for TextEvent constructors + pointcut textEventConstructors() : + execution(java.awt.event.TextEvent.new(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Files.write method with Charset - pointcut filesWriteWithCharsetMethod() : - (execution(* java.nio.file.Files.write(..)) && args(java.nio.file.Path, java.lang.Iterable, java.nio.charset.Charset, ..)) && + // Pointcut for WindowEvent constructors + pointcut windowEventConstructors() : + execution(java.awt.event.WindowEvent.new(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileChannelImpl.implCloseChannel method - pointcut fileChannelImplImplCloseChannelMethod() : - (execution(* sun.nio.ch.FileChannelImpl.implCloseChannel(..))) && + // Pointcut for GlyphVector methods + pointcut glyphVectorMethods() : + (execution(* java.awt.font.GlyphVector.getGlyphOutline(..)) || + execution(* java.awt.font.GlyphVector.getGlyphPixelBounds(..)) || + execution(* java.awt.font.GlyphVector.getPixelBounds(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for IOUtil.releaseScopes method - pointcut ioUtilReleaseScopesMethod() : - (execution(* sun.nio.ch.IOUtil.releaseScopes(..))) && + // Pointcut for ImageGraphicAttribute constructors + pointcut imageGraphicAttributeConstructors() : + execution(java.awt.font.ImageGraphicAttribute.new(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixFileSystemProvider methods - pointcut unixFileSystemProviderMethods() : - (execution(* sun.nio.fs.UnixFileSystemProvider.checkAccess(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.createDirectory(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.createLink(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.exists(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.getFileStore(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.implDelete(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.isHidden(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.isSameFile(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.readAttributesIfExists(..)) || - execution(* sun.nio.fs.UnixFileSystemProvider.readSymbolicLink(..))) && + // Pointcut for LineBreakMeasurer constructors and methods + pointcut lineBreakMeasurerMethods() : + (execution(java.awt.font.LineBreakMeasurer.new(..)) || + execution(* java.awt.font.LineBreakMeasurer.deleteChar(..)) || + execution(* java.awt.font.LineBreakMeasurer.insertChar(..)) || + execution(* java.awt.font.LineBreakMeasurer.nextLayout(..)) || + execution(* java.awt.font.LineBreakMeasurer.nextOffset(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectInputFilter$Config. - pointcut objectInputFilterConfigClinit() : - (execution(* java.io.ObjectInputFilter$Config.*(..))) && + // Pointcut for ShapeGraphicAttribute methods + pointcut shapeGraphicAttributeMethods() : + execution(* java.awt.font.ShapeGraphicAttribute.draw(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectInputStream. - pointcut objectInputStreamClinit() : - (execution(* java.io.ObjectInputStream.*(..))) && + // Pointcut for TextLayout constructors and methods + pointcut textLayoutMethods() : + (execution(java.awt.font.TextLayout.new(..)) || + execution(* java.awt.font.TextLayout.getJustifiedLayout(..)) || + execution(* java.awt.font.TextLayout.getPixelBounds(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileSystemProvider. - pointcut fileSystemProviderClinit() : - (execution(* java.nio.file.spi.FileSystemProvider.*(..))) && + // Pointcut for TextMeasurer constructors and methods + pointcut textMeasurerMethods() : + (execution(java.awt.font.TextMeasurer.new(..)) || + execution(* java.awt.font.TextMeasurer.deleteChar(..)) || + execution(* java.awt.font.TextMeasurer.getAdvanceBetween(..)) || + execution(* java.awt.font.TextMeasurer.getLayout(..)) || + execution(* java.awt.font.TextMeasurer.getLineBreakIndex(..)) || + execution(* java.awt.font.TextMeasurer.insertChar(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for DocumentHandler methods - pointcut documentHandlerMethods() : - (execution(* com.sun.beans.decoder.DocumentHandler.parse(..))) && + // Pointcut for AffineTransform methods + pointcut affineTransformMethods() : + (execution(* java.awt.geom.AffineTransform.createInverse(..)) || + execution(* java.awt.geom.AffineTransform.inverseTransform(..)) || + execution(* java.awt.geom.AffineTransform.invert(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for TemplatesImpl methods - pointcut templatesImplMethods() : - (execution(* com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl.readObject(..))) && + // Pointcut for Area constructors and methods + pointcut areaMethods() : + (execution(java.awt.geom.Area.new(..)) || + execution(* java.awt.geom.Area.add(..)) || + execution(* java.awt.geom.Area.clone(..)) || + execution(* java.awt.geom.Area.createTransformedArea(..)) || + execution(* java.awt.geom.Area.equals(..)) || + execution(* java.awt.geom.Area.exclusiveOr(..)) || + execution(* java.awt.geom.Area.intersect(..)) || + execution(* java.awt.geom.Area.subtract(..)) || + execution(* java.awt.geom.Area.transform(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for XPathFactoryImpl constructors - pointcut xPathFactoryImplConstructorMethods() : - (execution(com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl.new(..))) && + // Pointcut for CubicCurve2D methods + pointcut cubicCurve2DMethods() : + (execution(* java.awt.geom.CubicCurve2D.solveCubic(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Desktop methods - pointcut desktopMethods() : - (execution(* java.awt.Desktop.moveToTrash(..)) || - execution(* java.awt.Desktop.print(..)) || - execution(* java.awt.Desktop.setPrintFileHandler(..))) && + // Pointcut for NoninvertibleTransformException constructors + pointcut noninvertibleTransformExceptionConstructors() : + execution(java.awt.geom.NoninvertibleTransformException.new(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Font methods - pointcut fontMethods() : - (execution(* java.awt.Font.checkFontFile(..))) && + // Pointcut for InputContext methods + pointcut inputContextMethods() : + execution(* java.awt.im.InputContext.getInstance(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for InputEvent methods - pointcut inputEventMethods() : - (execution(* java.awt.event.InputEvent.canAccessSystemClipboard(..))) && + // Pointcut for AbstractMultiResolutionImage methods + pointcut abstractMultiResolutionImageMethods() : + (execution(* java.awt.image.AbstractMultiResolutionImage.getHeight(..)) || + execution(* java.awt.image.AbstractMultiResolutionImage.getProperty(..)) || + execution(* java.awt.image.AbstractMultiResolutionImage.getSource(..)) || + execution(* java.awt.image.AbstractMultiResolutionImage.getWidth(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AffineTransformOp methods + pointcut affineTransformOpMethods() : + execution(* java.awt.image.AffineTransformOp.filter(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BaseMultiResolutionImage methods + pointcut baseMultiResolutionImageMethods() : + execution(* java.awt.image.BaseMultiResolutionImage.getResolutionVariant(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedImage methods + pointcut bufferedImageMethods() : + (execution(* java.awt.image.BufferedImage.createGraphics(..)) || + execution(* java.awt.image.BufferedImage.getGraphics(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ColorConvertOp methods + pointcut colorConvertOpMethods() : + (execution(* java.awt.image.ColorConvertOp.createCompatibleDestImage(..)) || + execution(* java.awt.image.ColorConvertOp.createCompatibleDestRaster(..)) || + execution(* java.awt.image.ColorConvertOp.filter(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ConvolveOp methods + pointcut convolveOpMethods() : + execution(* java.awt.image.ConvolveOp.filter(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for LookupOp methods + pointcut lookupOpMethods() : + execution(* java.awt.image.LookupOp.filter(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PixelGrabber constructors + pointcut pixelGrabberConstructors() : + execution(java.awt.image.PixelGrabber.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for RescaleOp methods + pointcut rescaleOpMethods() : + execution(* java.awt.image.RescaleOp.filter(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for VolatileImage methods + pointcut volatileImageMethods() : + (execution(* java.awt.image.VolatileImage.getGraphics(..)) || + execution(* java.awt.image.VolatileImage.getSource(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PrinterException and its subclasses constructors + pointcut printerExceptionConstructors() : + (execution(java.awt.print.PrinterAbortException.new(..)) || + execution(java.awt.print.PrinterException.new(..)) || + execution(java.awt.print.PrinterIOException.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PrinterJob methods + pointcut printerJobMethods() : + (execution(* java.awt.print.PrinterJob.defaultPage(..)) || + execution(* java.awt.print.PrinterJob.getPageFormat(..)) || + execution(* java.awt.print.PrinterJob.lookupPrintServices(..)) || + execution(* java.awt.print.PrinterJob.lookupStreamPrintServices(..)) || + execution(* java.awt.print.PrinterJob.pageDialog(..)) || + execution(* java.awt.print.PrinterJob.print(..)) || + execution(* java.awt.print.PrinterJob.printDialog(..)) || + execution(* java.awt.print.PrinterJob.setPrintService(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BeanDescriptor constructors + pointcut beanDescriptorConstructors() : + execution(java.beans.BeanDescriptor.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Beans methods + pointcut beansMethods() : + (execution(* java.beans.Beans.instantiate(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Encoder methods + pointcut encoderMethods() : + (execution(* java.beans.Encoder.get(..)) || + execution(* java.beans.Encoder.getPersistenceDelegate(..)) || + execution(* java.beans.Encoder.remove(..)) || + execution(* java.beans.Encoder.writeExpression(..)) || + execution(* java.beans.Encoder.writeStatement(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for EventHandler constructors and methods + pointcut eventHandlerMethods() : + (execution(java.beans.EventHandler.new(..)) || + execution(* java.beans.EventHandler.create(..)) || + execution(* java.beans.EventHandler.invoke(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for EventSetDescriptor constructors + pointcut eventSetDescriptorConstructors() : + (execution(java.beans.EventSetDescriptor.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for EventSetDescriptor methods + pointcut eventSetDescriptorMethods() : + (execution(* java.beans.EventSetDescriptor.getAddListenerMethod(..)) || + execution(* java.beans.EventSetDescriptor.getGetListenerMethod(..)) || + execution(* java.beans.EventSetDescriptor.getListenerMethods(..)) || + execution(* java.beans.EventSetDescriptor.getRemoveListenerMethod(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Expression constructors + pointcut expressionConstructors() : + (execution(java.beans.Expression.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Expression methods + pointcut expressionMethods() : + (execution(* java.beans.Expression.execute(..)) || + execution(* java.beans.Expression.getValue(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FeatureDescriptor method + pointcut featureDescriptorMethods() : + (execution(* java.beans.FeatureDescriptor.toString(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for IndexedPropertyDescriptor constructors + pointcut indexedPropertyDescriptorConstructors() : + (execution(java.beans.IndexedPropertyDescriptor.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for IndexedPropertyDescriptor methods + pointcut indexedPropertyDescriptorMethods() : + (execution(* java.beans.IndexedPropertyDescriptor.equals(..)) || + execution(* java.beans.IndexedPropertyDescriptor.getIndexedPropertyType(..)) || + execution(* java.beans.IndexedPropertyDescriptor.getIndexedReadMethod(..)) || + execution(* java.beans.IndexedPropertyDescriptor.getIndexedWriteMethod(..)) || + execution(* java.beans.IndexedPropertyDescriptor.hashCode(..)) || + execution(* java.beans.IndexedPropertyDescriptor.setIndexedReadMethod(..)) || + execution(* java.beans.IndexedPropertyDescriptor.setIndexedWriteMethod(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for IntrospectionException constructor + pointcut introspectionExceptionConstructor() : + (execution(java.beans.IntrospectionException.new(..))) && !within(de.tum.cit.ase.ares.api..*); // Pointcut for Introspector methods pointcut introspectorMethods() : - (execution(* java.beans.Introspector.setBeanInfoSearchPath(..))) && + (execution(* java.beans.Introspector.getBeanInfo(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for PropertyEditorManager methods - pointcut propertyEditorManagerMethods() : - (execution(* java.beans.PropertyEditorManager.setEditorSearchPath(..))) && + // Pointcut for MethodDescriptor constructors + pointcut methodDescriptorConstructors() : + (execution(java.beans.MethodDescriptor.new(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for File$TempDirectory methods - pointcut fileTempDirectoryMethods() : - (execution(* java.io.File$TempDirectory.generateFile(..))) && + // Pointcut for MethodDescriptor methods + pointcut methodDescriptorMethods() : + (execution(* java.beans.MethodDescriptor.getMethod(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for File methods - pointcut fileMethods() : - (execution(* java.io.File.canExecute(..)) || - execution(* java.io.File.canRead(..)) || - execution(* java.io.File.canWrite(..)) || - execution(* java.io.File.createNewFile(..)) || + // Pointcut for PersistenceDelegate methods + pointcut persistenceDelegateMethods() : + (execution(* java.beans.PersistenceDelegate.writeObject(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PropertyChangeSupport methods + pointcut propertyChangeSupportMethods() : + (execution(* java.beans.PropertyChangeSupport.fireIndexedPropertyChange(..)) || + execution(* java.beans.PropertyChangeSupport.firePropertyChange(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PropertyDescriptor constructors + pointcut propertyDescriptorConstructors() : + (execution(java.beans.PropertyDescriptor.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PropertyDescriptor methods + pointcut propertyDescriptorMethods() : + (execution(* java.beans.PropertyDescriptor.equals(..)) || + execution(* java.beans.PropertyDescriptor.getPropertyType(..)) || + execution(* java.beans.PropertyDescriptor.getReadMethod(..)) || + execution(* java.beans.PropertyDescriptor.getWriteMethod(..)) || + execution(* java.beans.PropertyDescriptor.hashCode(..)) || + execution(* java.beans.PropertyDescriptor.setPropertyEditorClass(..)) || + execution(* java.beans.PropertyDescriptor.setReadMethod(..)) || + execution(* java.beans.PropertyDescriptor.setWriteMethod(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PropertyVetoException constructor + pointcut propertyVetoExceptionConstructor() : + (execution(java.beans.PropertyVetoException.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SimpleBeanInfo methods + pointcut simpleBeanInfoMethods() : + (execution(* java.beans.SimpleBeanInfo.getIcon(..)) || + execution(* java.beans.SimpleBeanInfo.loadImage(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Statement constructors + pointcut statementConstructors() : + (execution(java.beans.Statement.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Statement execute method + pointcut statementExecuteMethod() : + (execution(* java.beans.Statement.execute(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for XMLDecoder constructors + pointcut xmlDecoderConstructors() : + (execution(java.beans.XMLDecoder.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for XMLDecoder methods + pointcut xmlDecoderMethods() : + (execution(* java.beans.XMLDecoder.close(..)) || + execution(* java.beans.XMLDecoder.readObject(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for XMLEncoder constructors + pointcut xmlEncoderConstructors() : + (execution(java.beans.XMLEncoder.new(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for XMLEncoder methods + pointcut xmlEncoderMethods() : + (execution(* java.beans.XMLEncoder.close(..)) || + execution(* java.beans.XMLEncoder.flush(..)) || + execution(* java.beans.XMLEncoder.setOwner(..)) || + execution(* java.beans.XMLEncoder.writeExpression(..)) || + execution(* java.beans.XMLEncoder.writeObject(..)) || + execution(* java.beans.XMLEncoder.writeStatement(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BeanContextChildSupport methods + pointcut beanContextChildSupportMethods() : + (execution(* java.beans.beancontext.BeanContextChildSupport.firePropertyChange(..)) || + execution(* java.beans.beancontext.BeanContextChildSupport.setBeanContext(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BeanContextServicesSupport methods + pointcut beanContextServicesSupportMethods() : + (execution(* java.beans.beancontext.BeanContextServicesSupport.getService(..)) || + execution(* java.beans.beancontext.BeanContextServicesSupport.revokeService(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BeanContextSupport methods + pointcut beanContextSupportMethods() : + (execution(* java.beans.beancontext.BeanContextSupport.instantiateChild(..)) || + execution(* java.beans.beancontext.BeanContextSupport.readChildren(..)) || + execution(* java.beans.beancontext.BeanContextSupport.setDesignTime(..)) || + execution(* java.beans.beancontext.BeanContextSupport.setLocale(..)) || + execution(* java.beans.beancontext.BeanContextSupport.vetoableChange(..)) || + execution(* java.beans.beancontext.BeanContextSupport.writeChildren(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedInputStream read methods + pointcut bufferedInputStreamReadMethods() : + (execution(* java.io.BufferedInputStream.read(..)) || + execution(* java.io.BufferedInputStream.skip(long)) || + execution(* java.io.BufferedInputStream.available()) || + execution(* java.io.BufferedInputStream.reset()) || + execution(* java.io.BufferedInputStream.transferTo(java.io.OutputStream))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedInputStream close method + pointcut bufferedInputStreamCloseMethod() : + execution(* java.io.BufferedInputStream.close(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedOutputStream constructors + pointcut bufferedOutputStreamConstructors() : + execution(java.io.BufferedOutputStream.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedOutputStream write methods + pointcut bufferedOutputStreamWriteMethods() : + (execution(* java.io.BufferedOutputStream.write(..)) || + execution(* java.io.BufferedOutputStream.flush())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedReader read methods + pointcut bufferedReaderReadMethods() : + (execution(* java.io.BufferedReader.read(..)) || + execution(* java.io.BufferedReader.readLine(..)) || + execution(* java.io.BufferedReader.ready()) || + execution(* java.io.BufferedReader.reset()) || + execution(* java.io.BufferedReader.skip(long)) || + execution(* java.io.BufferedReader.mark(int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedReader close method + pointcut bufferedReaderCloseMethod() : + execution(* java.io.BufferedReader.close(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedWriter write methods + pointcut bufferedWriterWriteMethods() : + (execution(* java.io.BufferedWriter.write(..)) || + execution(* java.io.BufferedWriter.flush()) || + execution(* java.io.BufferedWriter.newLine())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for BufferedWriter close method + pointcut bufferedWriterCloseMethod() : + execution(* java.io.BufferedWriter.close(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ByteArrayOutputStream constructors + pointcut byteArrayOutputStreamConstructors() : + execution(java.io.ByteArrayOutputStream.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ByteArrayOutputStream write methods + pointcut byteArrayOutputStreamWriteMethods() : + (execution(* java.io.ByteArrayOutputStream.writeBytes(..)) || + execution(* java.io.ByteArrayOutputStream.writeTo(java.io.OutputStream))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CharArrayReader read methods + pointcut charArrayReaderReadMethods() : + (execution(* java.io.CharArrayReader.read(..)) || + execution(* java.io.CharArrayReader.ready()) || + execution(* java.io.CharArrayReader.mark(int)) || + execution(* java.io.CharArrayReader.reset()) || + execution(* java.io.CharArrayReader.skip(long))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for CharArrayWriter writeTo method + pointcut charArrayWriterWriteToMethod() : + execution(* java.io.CharArrayWriter.writeTo(java.io.Writer)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DataInputStream read methods + pointcut dataInputStreamReadMethods() : + (execution(* java.io.DataInputStream.read(..)) || + execution(* java.io.DataInputStream.readBoolean()) || + execution(* java.io.DataInputStream.readByte()) || + execution(* java.io.DataInputStream.readChar()) || + execution(* java.io.DataInputStream.readDouble()) || + execution(* java.io.DataInputStream.readFloat()) || + execution(* java.io.DataInputStream.readFully(..)) || + execution(* java.io.DataInputStream.readInt()) || + execution(* java.io.DataInputStream.readLine()) || + execution(* java.io.DataInputStream.readLong()) || + execution(* java.io.DataInputStream.readShort()) || + execution(* java.io.DataInputStream.readUTF()) || + execution(* java.io.DataInputStream.readUnsignedByte()) || + execution(* java.io.DataInputStream.readUnsignedShort()) || + execution(* java.io.DataInputStream.skipBytes(int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DataOutputStream constructors + pointcut dataOutputStreamConstructors() : + execution(java.io.DataOutputStream.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DataOutputStream write methods + pointcut dataOutputStreamWriteMethods() : + (execution(* java.io.DataOutputStream.write(..)) || + execution(* java.io.DataOutputStream.writeBoolean(boolean)) || + execution(* java.io.DataOutputStream.writeByte(int)) || + execution(* java.io.DataOutputStream.writeBytes(java.lang.String)) || + execution(* java.io.DataOutputStream.writeChar(int)) || + execution(* java.io.DataOutputStream.writeChars(java.lang.String)) || + execution(* java.io.DataOutputStream.writeDouble(double)) || + execution(* java.io.DataOutputStream.writeFloat(float)) || + execution(* java.io.DataOutputStream.writeInt(int)) || + execution(* java.io.DataOutputStream.writeLong(long)) || + execution(* java.io.DataOutputStream.writeShort(int)) || + execution(* java.io.DataOutputStream.writeUTF(java.lang.String)) || + execution(* java.io.DataOutputStream.flush())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for File execute methods + pointcut fileExecuteMethods() : + (execution(* java.io.File.canExecute()) || + execution(* java.io.File.setExecutable(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for File read methods + pointcut fileReadMethods() : + (execution(* java.io.File.canRead()) || + execution(* java.io.File.getCanonicalFile()) || + execution(* java.io.File.getCanonicalPath()) || + execution(* java.io.File.getFreeSpace()) || + execution(* java.io.File.getTotalSpace()) || + execution(* java.io.File.getUsableSpace()) || + execution(* java.io.File.isDirectory()) || + execution(* java.io.File.isFile()) || + execution(* java.io.File.isHidden()) || + execution(* java.io.File.lastModified()) || + execution(* java.io.File.length()) || + execution(* java.io.File.list(..)) || + execution(* java.io.File.listFiles(..)) || + execution(* java.io.File.exists())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for File write methods + pointcut fileWriteMethods() : + (execution(* java.io.File.canWrite()) || + execution(* java.io.File.createNewFile()) || execution(* java.io.File.createTempFile(..)) || - execution(* java.io.File.delete(..)) || - execution(* java.io.File.deleteOnExit(..)) || - execution(* java.io.File.exists(..)) || - execution(* java.io.File.getFreeSpace(..)) || - execution(* java.io.File.getTotalSpace(..)) || - execution(* java.io.File.getUsableSpace(..)) || - execution(* java.io.File.isDirectory(..)) || - execution(* java.io.File.isFile(..)) || - execution(* java.io.File.isHidden(..)) || - execution(* java.io.File.lastModified(..)) || - execution(* java.io.File.length(..)) || - execution(* java.io.File.mkdir(..)) || - execution(* java.io.File.normalizedList(..)) || - execution(* java.io.File.renameTo(..)) || - execution(* java.io.File.setExecutable(..)) || - execution(* java.io.File.setLastModified(..)) || - execution(* java.io.File.setReadOnly(..)) || + execution(* java.io.File.setLastModified(long)) || + execution(* java.io.File.setReadOnly()) || execution(* java.io.File.setReadable(..)) || - execution(* java.io.File.setWritable(..))) && + execution(* java.io.File.setWritable(..)) || + execution(* java.io.File.mkdir()) || + execution(* java.io.File.mkdirs()) || + execution(* java.io.File.renameTo(java.io.File))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectInputFilter$Config methods - pointcut objectInputFilterConfigMethods() : - (execution(* java.io.ObjectInputFilter$Config.setSerialFilter(..)) || - execution(* java.io.ObjectInputFilter$Config.setSerialFilterFactory(..))) && + // Pointcut for File delete methods + pointcut fileDeleteMethods() : + (execution(* java.io.File.delete()) || + execution(* java.io.File.deleteOnExit())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectInputStream methods - pointcut objectInputStreamMethods() : - (execution(* java.io.ObjectInputStream.enableResolveObject(..)) || - execution(* java.io.ObjectInputStream.setObjectInputFilter(..)) || - execution(* java.io.ObjectInputStream.verifySubclass(..))) && + // Pointcut for File conversion methods + pointcut fileConversionMethods() : + (execution(* java.io.File.toPath()) || + execution(* java.io.File.toURI()) || + execution(* java.io.File.toURL())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectOutputStream methods - pointcut objectOutputStreamMethods() : - (execution(* java.io.ObjectOutputStream.enableReplaceObject(..)) || - execution(* java.io.ObjectOutputStream.verifySubclass(..))) && + // Pointcut for FileInputStream read methods + pointcut fileInputStreamReadMethods() : + (execution(* java.io.FileInputStream.readAllBytes()) || + execution(* java.io.FileInputStream.readNBytes(int)) || + execution(* java.io.FileInputStream.transferTo(java.io.OutputStream))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectInputStream constructors - pointcut objectInputStreamConstructorMethods() : - (execution(java.io.ObjectInputStream.new(..))) && + // Pointcut for FileInputStream resource methods + pointcut fileInputStreamResourceMethods() : + (execution(* java.io.FileInputStream.getChannel()) || + execution(* java.io.FileInputStream.getFD()) || + execution(* java.io.FileInputStream.close())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectOutputStream constructors - pointcut objectOutputStreamConstructorMethods() : - (execution(java.io.ObjectOutputStream.new(..))) && + // Pointcut for FileOutputStream write methods + pointcut fileOutputStreamWriteMethods() : + (execution(* java.io.FileOutputStream.write(..))) && !within(de.tum.cit.ase.ares.api..*); + // Pointcut for FileOutputStream resource methods + pointcut fileOutputStreamResourceMethods() : + (execution(* java.io.FileOutputStream.getChannel()) || + execution(* java.io.FileOutputStream.getFD()) || + execution(* java.io.FileOutputStream.close())) && + !within(de.tum.cit.ase.ares.api..*); + // Pointcut for FileReader read methods + pointcut fileReaderReadMethods() : + (execution(* java.io.FileReader.read(..))) && + !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectStreamClass methods - pointcut objectStreamClassMethods() : - (execution(* java.io.ObjectStreamClass.forClass(..)) || - execution(* java.io.ObjectStreamClass.getProtectionDomains(..))) && + // Pointcut for FileWriter write methods + pointcut fileWriterWriteMethods() : + (execution(* java.io.FileWriter.write(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ObjectStreamField methods - pointcut objectStreamFieldMethods() : - (execution(* java.io.ObjectStreamField.getType(..))) && + // Pointcut for FilterInputStream read methods + pointcut filterInputStreamReadMethods() : + (execution(* java.io.FilterInputStream.read(..)) || + execution(* java.io.FilterInputStream.skip(long)) || + execution(* java.io.FilterInputStream.available())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixFileSystem methods - pointcut unixFileSystemMethods() : - (execution(* java.io.UnixFileSystem.listRoots(..)) || - execution(* java.io.UnixFileSystem.resolve(..)) || execution(* sun.nio.fs.UnixFileSystem.copy(..)) || - execution(* sun.nio.fs.UnixFileSystem.getFileStores(..)) || - execution(* sun.nio.fs.UnixFileSystem.move(..))) && + // Pointcut for FilterInputStream resource methods + pointcut filterInputStreamResourceMethods() : + (execution(* java.io.FilterInputStream.close()) || + execution(* java.io.FilterInputStream.reset())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for URL constructors - pointcut urlConstructorMethods() : - (execution(java.net.URL.new(..))) && + // Pointcut for FilterOutputStream write methods + pointcut filterOutputStreamWriteMethods() : + (execution(* java.io.FilterOutputStream.write(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for URL methods - pointcut urlMethodExecutions() : - (execution(* java.net.URL.setURLStreamHandlerFactory(..))) && + // Pointcut for FilterOutputStream resource methods + pointcut filterOutputStreamResourceMethods() : + (execution(* java.io.FilterOutputStream.close()) || + execution(* java.io.FilterOutputStream.flush())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for URLConnection methods - pointcut urlConnectionMethods() : - (execution(* java.net.URLConnection.setFileNameMap(..))) && + // Pointcut for FilterReader read methods + pointcut filterReaderReadMethods() : + (execution(* java.io.FilterReader.read(..)) || + execution(* java.io.FilterReader.skip(long)) || + execution(* java.io.FilterReader.ready())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for URLStreamHandlerProvider methods - pointcut urlStreamHandlerProviderMethods() : - (execution(* java.net.spi.URLStreamHandlerProvider.checkPermission(..))) && + // Pointcut for FilterReader resource methods + pointcut filterReaderResourceMethods() : + (execution(* java.io.FilterReader.close()) || + execution(* java.io.FilterReader.mark(int)) || + execution(* java.io.FilterReader.reset())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileTreeWalker methods - pointcut fileTreeWalkerMethods() : - (execution(* java.nio.file.FileTreeWalker.getAttributes(..))) && + // Pointcut for FilterWriter write methods + pointcut filterWriterWriteMethods() : + (execution(* java.io.FilterWriter.write(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for TempFileHelper methods - pointcut tempFileHelperMethods() : - (execution(* java.nio.file.TempFileHelper.create(..))) && + // Pointcut for FilterWriter resource methods + pointcut filterWriterResourceMethods() : + (execution(* java.io.FilterWriter.close()) || + execution(* java.io.FilterWriter.flush())) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileSystemProvider methods - pointcut fileSystemProviderMethods() : - (execution(* java.nio.file.spi.FileSystemProvider.checkPermission(..))) && + // Pointcut for InputStream read methods + pointcut inputStreamReadMethods() : + (execution(* java.io.InputStream.read(..)) || + execution(* java.io.InputStream.skip(long)) || + execution(* java.io.InputStream.reset()) || + execution(* java.io.InputStream.transferTo(java.io.OutputStream))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for InputStreamReader read methods + pointcut inputStreamReaderReadMethods() : + (execution(* java.io.InputStreamReader.read(..)) || + execution(* java.io.InputStreamReader.ready())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for InputStreamReader resource methods + pointcut inputStreamReaderResourceMethods() : + (execution(* java.io.InputStreamReader.close())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for LineNumberInputStream read methods + pointcut lineNumberInputStreamReadMethods() : + (execution(* java.io.LineNumberInputStream.read(..)) || + execution(* java.io.LineNumberInputStream.skip(long)) || + execution(* java.io.LineNumberInputStream.reset())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for LineNumberReader read methods + pointcut lineNumberReaderReadMethods() : + (execution(* java.io.LineNumberReader.read(..)) || + execution(* java.io.LineNumberReader.readLine()) || + execution(* java.io.LineNumberReader.ready())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for LineNumberReader resource methods + pointcut lineNumberReaderResourceMethods() : + (execution(* java.io.LineNumberReader.close()) || + execution(* java.io.LineNumberReader.mark(int)) || + execution(* java.io.LineNumberReader.reset())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputStream read methods + pointcut objectInputStreamReadMethods() : + (execution(* java.io.ObjectInputStream.read(..)) || + execution(* java.io.ObjectInputStream.readBoolean()) || + execution(* java.io.ObjectInputStream.readByte()) || + execution(* java.io.ObjectInputStream.readChar()) || + execution(* java.io.ObjectInputStream.readDouble()) || + execution(* java.io.ObjectInputStream.readFields()) || + execution(* java.io.ObjectInputStream.readFloat()) || + execution(* java.io.ObjectInputStream.readFully(..)) || + execution(* java.io.ObjectInputStream.readInt()) || + execution(* java.io.ObjectInputStream.readLine()) || + execution(* java.io.ObjectInputStream.readLong()) || + execution(* java.io.ObjectInputStream.readObject()) || + execution(* java.io.ObjectInputStream.readShort()) || + execution(* java.io.ObjectInputStream.readUTF()) || + execution(* java.io.ObjectInputStream.readUnshared()) || + execution(* java.io.ObjectInputStream.readUnsignedByte()) || + execution(* java.io.ObjectInputStream.readUnsignedShort()) || + execution(* java.io.ObjectInputStream.skipBytes(int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectInputStream resource methods + pointcut objectInputStreamResourceMethods() : + (execution(* java.io.ObjectInputStream.close()) || + execution(* java.io.ObjectInputStream.available()) || + execution(* java.io.ObjectInputStream.defaultReadObject()) || + execution(* java.io.ObjectInputStream.registerValidation(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectOutputStream write methods + pointcut objectOutputStreamWriteMethods() : + (execution(* java.io.ObjectOutputStream.write(..)) || + execution(* java.io.ObjectOutputStream.writeBoolean(boolean)) || + execution(* java.io.ObjectOutputStream.writeByte(int)) || + execution(* java.io.ObjectOutputStream.writeBytes(java.lang.String)) || + execution(* java.io.ObjectOutputStream.writeChar(int)) || + execution(* java.io.ObjectOutputStream.writeChars(java.lang.String)) || + execution(* java.io.ObjectOutputStream.writeDouble(double)) || + execution(* java.io.ObjectOutputStream.writeFields()) || + execution(* java.io.ObjectOutputStream.writeFloat(float)) || + execution(* java.io.ObjectOutputStream.writeInt(int)) || + execution(* java.io.ObjectOutputStream.writeLong(long)) || + execution(* java.io.ObjectOutputStream.writeObject(java.lang.Object)) || + execution(* java.io.ObjectOutputStream.writeShort(int)) || + execution(* java.io.ObjectOutputStream.writeUTF(java.lang.String)) || + execution(* java.io.ObjectOutputStream.writeUnshared(java.lang.Object))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ObjectOutputStream resource methods + pointcut objectOutputStreamResourceMethods() : + (execution(* java.io.ObjectOutputStream.close()) || + execution(* java.io.ObjectOutputStream.defaultWriteObject()) || + execution(* java.io.ObjectOutputStream.flush()) || + execution(* java.io.ObjectOutputStream.putFields()) || + execution(* java.io.ObjectOutputStream.reset())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for OutputStream write methods + pointcut outputStreamWriteMethods() : + (execution(* java.io.OutputStream.write(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for OutputStream resource methods + pointcut outputStreamResourceMethods() : + (execution(* java.io.OutputStream.nullOutputStream()) || + execution(* java.io.OutputStreamWriter.close()) || + execution(* java.io.OutputStreamWriter.flush())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PipedInputStream read methods + pointcut pipedInputStreamReadMethods() : + (execution(* java.io.PipedInputStream.read(..)) || + execution(* java.io.PipedInputStream.read(byte[], int, int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PipedOutputStream write methods + pointcut pipedOutputStreamWriteMethods() : + (execution(* java.io.PipedOutputStream.write(..)) || + execution(* java.io.PipedOutputStream.write(int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PipedReader read methods + pointcut pipedReaderReadMethods() : + (execution(* java.io.PipedReader.read(..)) || + execution(* java.io.PipedReader.read(char[], int, int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PipedWriter write methods + pointcut pipedWriterWriteMethods() : + (execution(* java.io.PipedWriter.write(..)) || + execution(* java.io.PipedWriter.write(int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PrintStream write methods + pointcut printStreamWriteMethods() : + (execution(* java.io.PrintStream.write(..)) || + execution(* java.io.PrintStream.print(..)) || + execution(* java.io.PrintStream.println(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PipedInputStream read methods + pointcut pipedInputStreamReadMethods() : + (execution(* java.io.PipedInputStream.read(..)) || + execution(* java.io.PipedInputStream.read(byte[], int, int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PipedOutputStream write methods + pointcut pipedOutputStreamWriteMethods() : + (execution(* java.io.PipedOutputStream.write(..)) || + execution(* java.io.PipedOutputStream.write(int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PipedReader read methods + pointcut pipedReaderReadMethods() : + (execution(* java.io.PipedReader.read(..)) || + execution(* java.io.PipedReader.read(char[], int, int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PipedWriter write methods + pointcut pipedWriterWriteMethods() : + (execution(* java.io.PipedWriter.write(..)) || + execution(* java.io.PipedWriter.write(int))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PrintStream write methods + pointcut printStreamWriteMethods() : + (execution(* java.io.PrintStream.write(..)) || + execution(* java.io.PrintStream.print(..)) || + execution(* java.io.PrintStream.println(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PrintWriter write methods + pointcut printWriterWriteMethods() : + (execution(* java.io.PrintWriter.write(..)) || + execution(* java.io.PrintWriter.print(..)) || + execution(* java.io.PrintWriter.println(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PushbackInputStream read methods + pointcut pushbackInputStreamReadMethods() : + (execution(* java.io.PushbackInputStream.read(..)) || + execution(* java.io.PushbackInputStream.transferTo(..)) || + execution(* java.io.PushbackInputStream.unread(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for PushbackReader read methods + pointcut pushbackReaderReadMethods() : + (execution(* java.io.PushbackReader.read(..)) || + execution(* java.io.PushbackReader.unread(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for RandomAccessFile read methods + pointcut randomAccessFileReadMethods() : + (execution(* java.io.RandomAccessFile.read(..)) || + execution(* java.io.RandomAccessFile.readFully(..)) || + execution(* java.io.RandomAccessFile.readLine()) || + execution(* java.io.RandomAccessFile.readUnsignedByte()) || + execution(* java.io.RandomAccessFile.readUnsignedShort()) || + execution(* java.io.RandomAccessFile.seek(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for RandomAccessFile write methods + pointcut randomAccessFileWriteMethods() : + execution(* java.io.RandomAccessFile.writeUTF(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Reader read methods + pointcut readerReadMethods() : + (execution(* java.io.Reader.read(..)) || + execution(* java.io.Reader.mark(..)) || + execution(* java.io.Reader.reset(..)) || + execution(* java.io.Reader.skip(..)) || + execution(* java.io.Reader.transferTo(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SequenceInputStream read methods + pointcut sequenceInputStreamReadMethods() : + (execution(* java.io.SequenceInputStream.read(..)) || + execution(* java.io.SequenceInputStream.available()) || + execution(* java.io.SequenceInputStream.close()) || + execution(* java.io.SequenceInputStream.transferTo(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for StringReader read methods + pointcut stringReaderReadMethods() : + (execution(* java.io.StringReader.read(..)) || + execution(* java.io.StringReader.mark(..)) || + execution(* java.io.StringReader.reset(..)) || + execution(* java.io.StringReader.skip(..)) || + execution(* java.io.StringReader.ready())) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Writer write methods + pointcut writerWriteMethods() : + (execution(* java.io.Writer.write(..)) || + execution(* java.io.Writer.append(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Authenticator read methods + pointcut authenticatorReadMethods() : + (execution(* java.net.Authenticator.getDefault(..)) || + execution(* java.net.Authenticator.requestPasswordAuthentication(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileTypeDetector methods - pointcut fileTypeDetectorMethods() : - (execution(* java.nio.file.spi.FileTypeDetector.checkPermission(..))) && + // Pointcut for Authenticator write methods + pointcut authenticatorWriteMethods() : + execution(* java.net.Authenticator.setDefault(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DatagramSocket initialization methods + pointcut datagramSocketInitMethods() : + execution(java.net.DatagramSocket.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for DatagramSocket write methods + pointcut datagramSocketWriteMethods() : + execution(* java.net.DatagramSocket.setDatagramSocketImplFactory(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for HttpURLConnection read methods + pointcut httpURLConnectionReadMethods() : + (execution(* java.net.HttpURLConnection.getHeaderFieldDate(..)) || + execution(* java.net.HttpURLConnection.getPermission(..)) || + execution(* java.net.HttpURLConnection.getResponseCode(..)) || + execution(* java.net.HttpURLConnection.getResponseMessage(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for HttpURLConnection write methods + pointcut httpURLConnectionWriteMethods() : + execution(* java.net.HttpURLConnection.setRequestMethod(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for IDN read methods + pointcut idnReadMethods() : + (execution(* java.net.IDN.toASCII(..)) || + execution(* java.net.IDN.toUnicode(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for InetAddress read methods + pointcut inetAddressReadMethods() : + (execution(* java.net.Inet6Address.getByAddress(..)) || + execution(* java.net.InetAddress.getAllByName(..)) || + execution(* java.net.InetAddress.getByAddress(..)) || + execution(* java.net.InetAddress.getByName(..)) || + execution(* java.net.InetAddress.getCanonicalHostName(..)) || + execution(* java.net.InetAddress.getHostName(..)) || + execution(* java.net.InetAddress.getLocalHost(..)) || + execution(* java.net.InetSocketAddress.getHostName(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for JarURLConnection read methods + pointcut jarURLConnectionReadMethods() : + (execution(* java.net.JarURLConnection.getAttributes(..)) || + execution(* java.net.JarURLConnection.getCertificates(..)) || + execution(* java.net.JarURLConnection.getJarEntry(..)) || + execution(* java.net.JarURLConnection.getMainAttributes(..)) || + execution(* java.net.JarURLConnection.getManifest(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for MulticastSocket read methods + pointcut multicastSocketReadMethods() : + (execution(* java.net.MulticastSocket.getInterface(..)) || + execution(* java.net.MulticastSocket.getLoopbackMode(..)) || + execution(* java.net.MulticastSocket.getNetworkInterface(..)) || + execution(* java.net.MulticastSocket.getTTL(..)) || + execution(* java.net.MulticastSocket.getTimeToLive(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for MulticastSocket write methods + pointcut multicastSocketWriteMethods() : + (execution(* java.net.MulticastSocket.setInterface(..)) || + execution(* java.net.MulticastSocket.setLoopbackMode(..)) || + execution(* java.net.MulticastSocket.setNetworkInterface(..)) || + execution(* java.net.MulticastSocket.setTTL(..)) || + execution(* java.net.MulticastSocket.setTimeToLive(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ServerSocket read methods + pointcut serverSocketReadMethods() : + (execution(* java.net.ServerSocket.accept(..)) || + execution(* java.net.ServerSocket.getInetAddress(..)) || + execution(* java.net.ServerSocket.getLocalPort(..)) || + execution(* java.net.ServerSocket.getLocalSocketAddress(..)) || + execution(* java.net.ServerSocket.getOption(..)) || + execution(* java.net.ServerSocket.getReceiveBufferSize(..)) || + execution(* java.net.ServerSocket.getReuseAddress(..)) || + execution(* java.net.ServerSocket.getSoTimeout(..)) || + execution(* java.net.ServerSocket.supportedOptions(..)) || + execution(* java.net.ServerSocket.toString(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ServerSocket write methods + pointcut serverSocketWriteMethods() : + (execution(* java.net.ServerSocket.bind(..)) || + execution(* java.net.ServerSocket.close(..)) || + execution(* java.net.ServerSocket.setOption(..)) || + execution(* java.net.ServerSocket.setReceiveBufferSize(..)) || + execution(* java.net.ServerSocket.setReuseAddress(..)) || + execution(* java.net.ServerSocket.setSoTimeout(..)) || + execution(* java.net.ServerSocket.setSocketFactory(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Socket read methods + pointcut socketReadMethods() : + (execution(* java.net.Socket.getInetAddress(..)) || + execution(* java.net.Socket.getInputStream(..)) || + execution(* java.net.Socket.getKeepAlive(..)) || + execution(* java.net.Socket.getLocalAddress(..)) || + execution(* java.net.Socket.getLocalPort(..)) || + execution(* java.net.Socket.getLocalSocketAddress(..)) || + execution(* java.net.Socket.getOOBInline(..)) || + execution(* java.net.Socket.getOption(..)) || + execution(* java.net.Socket.getOutputStream(..)) || + execution(* java.net.Socket.getPort(..)) || + execution(* java.net.Socket.getReceiveBufferSize(..)) || + execution(* java.net.Socket.getRemoteSocketAddress(..)) || + execution(* java.net.Socket.getReuseAddress(..)) || + execution(* java.net.Socket.getSendBufferSize(..)) || + execution(* java.net.Socket.getSoLinger(..)) || + execution(* java.net.Socket.getSoTimeout(..)) || + execution(* java.net.Socket.getTcpNoDelay(..)) || + execution(* java.net.Socket.getTrafficClass(..)) || + execution(* java.net.Socket.supportedOptions(..)) || + execution(* java.net.Socket.toString(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for Socket write methods + pointcut socketWriteMethods() : + (execution(* java.net.Socket.bind(..)) || + execution(* java.net.Socket.close(..)) || + execution(* java.net.Socket.connect(..)) || + execution(* java.net.Socket.sendUrgentData(..)) || + execution(* java.net.Socket.setKeepAlive(..)) || + execution(* java.net.Socket.setOOBInline(..)) || + execution(* java.net.Socket.setOption(..)) || + execution(* java.net.Socket.setReceiveBufferSize(..)) || + execution(* java.net.Socket.setReuseAddress(..)) || + execution(* java.net.Socket.setSendBufferSize(..)) || + execution(* java.net.Socket.setSoLinger(..)) || + execution(* java.net.Socket.setSoTimeout(..)) || + execution(* java.net.Socket.setSocketImplFactory(..)) || + execution(* java.net.Socket.setTcpNoDelay(..)) || + execution(* java.net.Socket.setTrafficClass(..)) || + execution(* java.net.Socket.shutdownInput(..)) || + execution(* java.net.Socket.shutdownOutput(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for URI read methods + pointcut uriReadMethods() : + (execution(* java.net.URI.getRawSchemeSpecificPart(..)) || + execution(* java.net.URI.getSchemeSpecificPart(..)) || + execution(* java.net.URI.parseServerAuthority(..)) || + execution(* java.net.URI.resolve(..)) || + execution(* java.net.URI.toASCIIString(..)) || + execution(* java.net.URI.toURL(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for URL read methods + pointcut urlReadMethods() : + (execution(* java.net.URL.getContent(..)) || + execution(* java.net.URL.hashCode(..)) || + execution(* java.net.URL.openConnection(..)) || + execution(* java.net.URL.openStream(..)) || + execution(* java.net.URL.sameFile(..)) || + execution(* java.net.URL.toURI(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for URLClassLoader read methods + pointcut urlClassLoaderReadMethods() : + (execution(* java.net.URLClassLoader.findResource(..)) || + execution(* java.net.URLClassLoader.getResourceAsStream(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for LogStream methods - pointcut logStreamMethods() : - (execution(* java.rmi.server.LogStream.setDefaultStream(..))) && + // Pointcut for URLConnection read methods + pointcut urlConnectionReadMethods() : + (execution(* java.net.URLConnection.getContent(..)) || + execution(* java.net.URLConnection.getContentEncoding(..)) || + execution(* java.net.URLConnection.getContentLength(..)) || + execution(* java.net.URLConnection.getContentLengthLong(..)) || + execution(* java.net.URLConnection.getContentType(..)) || + execution(* java.net.URLConnection.getDate(..)) || + execution(* java.net.URLConnection.getExpiration(..)) || + execution(* java.net.URLConnection.getHeaderFieldDate(..)) || + execution(* java.net.URLConnection.getHeaderFieldInt(..)) || + execution(* java.net.URLConnection.getHeaderFieldLong(..)) || + execution(* java.net.URLConnection.getInputStream(..)) || + execution(* java.net.URLConnection.getLastModified(..)) || + execution(* java.net.URLConnection.guessContentTypeFromStream(..))) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for DriverManager methods - pointcut driverManagerMethods() : - (execution(* java.sql.DriverManager.setLogStream(..)) || - execution(* java.sql.DriverManager.setLogWriter(..))) && + // Pointcut for HttpRequest$BodyPublishers write methods + pointcut httpRequestBodyPublishersWriteMethods() : + execution(* java.net.http.HttpRequest$BodyPublishers.ofFile(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ZipFile constructors - pointcut zipFileConstructorMethods() : - (execution(java.util.zip.ZipFile.new(..))) && + // Pointcut for HttpResponse$BodyHandlers read methods + pointcut httpResponseBodyHandlersReadMethods() : + (execution(* java.net.http.HttpResponse$BodyHandlers.ofFile(..)) || + execution(* java.net.http.HttpResponse$BodyHandlers.ofFileDownload(..)) || + execution(* java.net.http.HttpResponse$BodyHandlers.ofPublisher(..))) && !within(de.tum.cit.ase.ares.api..*); + // Pointcut for HttpResponse$BodySubscribers read methods + pointcut httpResponseBodySubscribersReadMethods() : + (execution(* java.net.http.HttpResponse$BodySubscribers.ofFile(..)) || + execution(* java.net.http.HttpResponse$BodySubscribers.ofPublisher(..))) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AsynchronousSocketChannel write methods + pointcut asynchronousSocketChannelWriteMethods() : + execution(* java.nio.channels.AsynchronousSocketChannel.write(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for AsynchronousSocketChannel read methods + pointcut asynchronousSocketChannelReadMethods() : + execution(* java.nio.channels.AsynchronousSocketChannel.read(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileChannel write methods + pointcut fileChannelWriteMethods() : + execution(* java.nio.channels.FileChannel.write(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for FileChannel read methods + pointcut fileChannelReadMethods() : + execution(* java.nio.channels.FileChannel.read(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SelectableChannel register methods + pointcut selectableChannelRegisterMethods() : + execution(* java.nio.channels.SelectableChannel.register(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ServerSocketChannel bind methods + pointcut serverSocketChannelBindMethods() : + execution(* java.nio.channels.ServerSocketChannel.bind(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for ServerSocketChannel setOption methods + pointcut serverSocketChannelSetOptionMethods() : + execution(* java.nio.channels.ServerSocketChannel.setOption(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SocketChannel bind methods + pointcut socketChannelBindMethods() : + execution(* java.nio.channels.SocketChannel.bind(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SocketChannel open methods + pointcut socketChannelOpenMethods() : + execution(* java.nio.channels.SocketChannel.open(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for SocketChannel read methods + pointcut socketChannelReadMethods() : + execution(* java.nio.channels.SocketChannel.read(..)) && + !within(de.tum.cit.ase.ares.api..*); - // Pointcut for StreamPrintServiceFactory methods - pointcut streamPrintServiceFactoryMethods() : - (execution(* javax.print.StreamPrintServiceFactory$1.run(..))) && + // Pointcut for SocketChannel setOption methods + pointcut socketChannelSetOptionMethods() : + execution(* java.nio.channels.SocketChannel.setOption(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for XPathFactoryFinder methods - pointcut xPathFactoryFinderMethods() : - (execution(* javax.xml.xpath.XPathFactoryFinder.createClass(..))) && + // Pointcut for SocketChannel write methods + pointcut socketChannelWriteMethods() : + execution(* java.nio.channels.SocketChannel.write(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for JrtFileSystemProvider methods - pointcut jrtFileSystemProviderMethods() : - (execution(* jdk.internal.jrtfs.JrtFileSystemProvider.checkPermission(..))) && + // Pointcut for AccessDeniedException constructors + pointcut accessDeniedExceptionInitMethods() : + execution(* java.nio.file.AccessDeniedException.(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for BuiltinClassLoader methods - pointcut builtinClassLoaderMethods() : - (execution(* jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(..)) || - execution(* jdk.internal.loader.BuiltinClassLoader.findResourceAsStream(..)) || - execution(* jdk.internal.loader.BuiltinClassLoader.findResourceOnClassPath(..)) || - execution(* jdk.internal.loader.BuiltinClassLoader.findResourcesOnClassPath(..))) && + // Pointcut for AtomicMoveNotSupportedException constructors + pointcut atomicMoveNotSupportedExceptionInitMethods() : + execution(* java.nio.file.AtomicMoveNotSupportedException.(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for URLClassPath methods - pointcut urlClassPathMethods() : - (execution(* jdk.internal.loader.URLClassPath$JarLoader.checkJar(..)) || - execution(* jdk.internal.loader.URLClassPath.check(..))) && + // Pointcut for DirectoryNotEmptyException constructors + pointcut directoryNotEmptyExceptionInitMethods() : + execution(* java.nio.file.DirectoryNotEmptyException.(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ModuleReferences$ExplodedModuleReader constructor - pointcut moduleReferencesExplodedModuleReaderConstructorMethods() : - (execution(jdk.internal.module.ModuleReferences$ExplodedModuleReader.new(..))) && + // Pointcut for FileAlreadyExistsException constructors + pointcut fileAlreadyExistsExceptionInitMethods() : + execution(* java.nio.file.FileAlreadyExistsException.(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for SystemModuleFinders$SystemModuleReader methods - pointcut systemModuleFindersSystemModuleReaderMethods() : - (execution(* jdk.internal.module.SystemModuleFinders$SystemModuleReader.checkPermissionToConnect(..))) && + // Pointcut for FileSystemException constructors + pointcut fileSystemExceptionInitMethods() : + execution(* java.nio.file.FileSystemException.(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for RequestPublishers$FilePublisher methods - pointcut requestPublishersFilePublisherMethods() : - (execution(* jdk.internal.net.http.RequestPublishers$FilePublisher.create(..))) && + // Pointcut for FileSystemLoopException constructors + pointcut fileSystemLoopExceptionInitMethods() : + execution(* java.nio.file.FileSystemLoopException.(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ResponseBodyHandlers methods - pointcut responseBodyHandlersMethods() : - (execution(* jdk.internal.net.http.ResponseBodyHandlers$FileDownloadBodyHandler.create(..)) || - execution(* jdk.internal.net.http.ResponseBodyHandlers$PathBodyHandler.create(..))) && + // Pointcut for FileSystems getFileSystem methods + pointcut fileSystemsGetFileSystemMethods() : + execution(* java.nio.file.FileSystems.getFileSystem(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ResponseSubscribers methods - pointcut responseSubscribersMethods() : - (execution(* jdk.internal.net.http.ResponseSubscribers$PathSubscriber.create(..))) && + // Pointcut for FileSystems newFileSystem methods + pointcut fileSystemsNewFileSystemMethods() : + execution(* java.nio.file.FileSystems.newFileSystem(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for WriteableUserPath methods - pointcut writeableUserPathMethods() : - (execution(* jdk.jfr.internal.WriteableUserPath.doPrivilegedIO(..))) && + // Pointcut for java.nio.file.Files copy methods + pointcut filesCopyMethods() : + execution(* java.nio.file.Files.copy(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Channels methods - pointcut channelsMethods() : - (execution(* jdk.nio.Channels.readWriteSelectableChannel(..))) && + // Pointcut for java.nio.file.Files create methods + pointcut filesCreateMethods() : + execution(* java.nio.file.Files.create*(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for Main methods - pointcut mainMethods() : - (execution(* jdk.tools.jlink.internal.Main.run(..))) && + // Pointcut for java.nio.file.Files delete methods + pointcut filesDeleteMethods() : + execution(* java.nio.file.Files.delete(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for DataTransferer methods - pointcut dataTransfererMethods() : - (execution(* sun.awt.datatransfer.DataTransferer.castToFiles(..))) && + // Pointcut for java.nio.file.Files deleteIfExists methods + pointcut filesDeleteIfExistsMethods() : + execution(* java.nio.file.Files.deleteIfExists(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileImageSource constructor - pointcut fileImageSourceConstructorMethods() : - (execution(sun.awt.image.FileImageSource.new(..))) && + // Pointcut for java.nio.file.Files exists methods + pointcut filesExistsMethods() : + execution(* java.nio.file.Files.exists(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ImageConsumerQueue constructor - pointcut imageConsumerQueueConstructorMethods() : - (execution(sun.awt.image.ImageConsumerQueue.new(..))) && + // Pointcut for java.nio.file.Files find methods + pointcut filesFindMethods() : + execution(* java.nio.file.Files.find(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for InputStreamImageSource methods - pointcut inputStreamImageSourceMethods() : - (execution(* sun.awt.image.InputStreamImageSource.addConsumer(..))) && + // Pointcut for java.nio.file.Files getAttribute methods + pointcut filesGetAttributeMethods() : + execution(* java.nio.file.Files.getAttribute(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ShellFolderManager methods - pointcut shellFolderManagerMethods() : - (execution(* sun.awt.shell.ShellFolderManager.checkFile(..)) || - execution(* sun.awt.shell.ShellFolderManager.checkFiles(..))) && + // Pointcut for java.nio.file.Files getFileStore methods + pointcut filesGetFileStoreMethods() : + execution(* java.nio.file.Files.getFileStore(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileFont methods - pointcut fileFontMethods() : - (execution(* sun.font.FileFont.getPublicFileName(..))) && + // Pointcut for java.nio.file.Files getLastModifiedTime methods + pointcut filesGetLastModifiedTimeMethods() : + execution(* java.nio.file.Files.getLastModifiedTime(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for FileServerHandler constructor - pointcut fileServerHandlerConstructorMethods() : - (execution(sun.net.httpserver.simpleserver.FileServerHandler.new(..))) && + // Pointcut for java.nio.file.Files getPosixFilePermissions methods + pointcut filesGetPosixFilePermissionsMethods() : + execution(* java.nio.file.Files.getPosixFilePermissions(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for MimeTable methods - pointcut mimeTableMethods() : - (execution(* sun.net.www.MimeTable.saveAsProperties(..))) && + // Pointcut for java.nio.file.Files isDirectory methods + pointcut filesIsDirectoryMethods() : + execution(* java.nio.file.Files.isDirectory(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for HttpURLConnection methods - pointcut httpURLConnectionMethods() : - (execution(* sun.net.www.protocol.http.HttpURLConnection.checkURLFile(..))) && + // Pointcut for java.nio.file.Files isExecutable methods + pointcut filesIsExecutableMethods() : + execution(* java.nio.file.Files.isExecutable(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for JarFileFactory methods - pointcut jarFileFactoryMethods() : - (execution(* sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(..))) && + // Pointcut for java.nio.file.Files isReadable methods + pointcut filesIsReadableMethods() : + execution(* java.nio.file.Files.isReadable(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ServerSocketChannelImpl methods - pointcut serverSocketChannelImplMethods() : - (execution(* sun.nio.ch.ServerSocketChannelImpl.finishAccept(..))) && + // Pointcut for java.nio.file.Files isRegularFile methods + pointcut filesIsRegularFileMethods() : + execution(* java.nio.file.Files.isRegularFile(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixAsynchronousServerSocketChannelImpl methods - pointcut unixAsynchronousServerSocketChannelImplMethods() : - (execution(* sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.finishAccept(..))) && + // Pointcut for java.nio.file.Files isSameFile methods + pointcut filesIsSameFileMethods() : + execution(* java.nio.file.Files.isSameFile(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for AbstractUserDefinedFileAttributeView methods - pointcut abstractUserDefinedFileAttributeViewMethods() : - (execution(* sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(..))) && + // Pointcut for java.nio.file.Files isSymbolicLink methods + pointcut filesIsSymbolicLinkMethods() : + execution(* java.nio.file.Files.isSymbolicLink(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixChannelFactory methods - pointcut unixChannelFactoryMethods() : - (execution(* sun.nio.fs.UnixChannelFactory.open(..))) && + // Pointcut for java.nio.file.Files isWritable methods + pointcut filesIsWritableMethods() : + execution(* java.nio.file.Files.isWritable(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixFileAttributeViews$Posix methods - pointcut unixFileAttributeViewsPosixMethods() : - (execution(* sun.nio.fs.UnixFileAttributeViews$Posix.checkReadExtended(..)) || - execution(* sun.nio.fs.UnixFileAttributeViews$Posix.checkWriteExtended(..))) && + // Pointcut for java.nio.file.Files lines methods + pointcut filesLinesMethods() : + execution(* java.nio.file.Files.lines(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixFileSystem$1 methods - pointcut unixFileSystem1Methods() : - (execution(* sun.nio.fs.UnixFileSystem$1.iterator(..))) && + // Pointcut for java.nio.file.Files list methods + pointcut filesListMethods() : + execution(* java.nio.file.Files.list(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixFileSystem$FileStoreIterator methods - pointcut unixFileSystemFileStoreIteratorMethods() : - (execution(* sun.nio.fs.UnixFileSystem$FileStoreIterator.readNext(..))) && + // Pointcut for java.nio.file.Files mismatch methods + pointcut filesMismatchMethods() : + execution(* java.nio.file.Files.mismatch(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixPath methods - pointcut unixPathMethods() : - (execution(* sun.nio.fs.UnixPath.checkDelete(..)) || - execution(* sun.nio.fs.UnixPath.checkRead(..)) || - execution(* sun.nio.fs.UnixPath.checkWrite(..)) || - execution(* sun.nio.fs.UnixPath.toAbsolutePath(..))) && + // Pointcut for java.nio.file.Files move methods + pointcut filesMoveMethods() : + execution(* java.nio.file.Files.move(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixSecureDirectoryStream$BasicFileAttributeViewImpl methods - pointcut unixSecureDirectoryStreamBasicFileAttributeViewImplMethods() : - (execution(* sun.nio.fs.UnixSecureDirectoryStream$BasicFileAttributeViewImpl.checkWriteAccess(..)) || - execution(* sun.nio.fs.UnixSecureDirectoryStream$BasicFileAttributeViewImpl.readAttributes(..))) && + // Pointcut for java.nio.file.Files newBufferedReader methods + pointcut filesNewBufferedReaderMethods() : + execution(* java.nio.file.Files.newBufferedReader(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixSecureDirectoryStream$PosixFileAttributeViewImpl methods - pointcut unixSecureDirectoryStreamPosixFileAttributeViewImplMethods() : - (execution(* sun.nio.fs.UnixSecureDirectoryStream$PosixFileAttributeViewImpl.checkWriteAndUserAccess(..)) || - execution(* sun.nio.fs.UnixSecureDirectoryStream$PosixFileAttributeViewImpl.readAttributes(..))) && + // Pointcut for java.nio.file.Files newBufferedWriter methods + pointcut filesNewBufferedWriterMethods() : + execution(* java.nio.file.Files.newBufferedWriter(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixSecureDirectoryStream methods - pointcut unixSecureDirectoryStreamMethods() : - (execution(* sun.nio.fs.UnixSecureDirectoryStream.implDelete(..)) || - execution(* sun.nio.fs.UnixSecureDirectoryStream.move(..)) || - execution(* sun.nio.fs.UnixSecureDirectoryStream.newDirectoryStream(..))) && + // Pointcut for java.nio.file.Files newByteChannel methods + pointcut filesNewByteChannelMethods() : + execution(* java.nio.file.Files.newByteChannel(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for UnixUserDefinedFileAttributeView methods - pointcut unixUserDefinedFileAttributeViewMethods() : - (execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.delete(..)) || - execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.list(..)) || - execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.read(..)) || - execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.size(..)) || - execution(* sun.nio.fs.UnixUserDefinedFileAttributeView.write(..))) && + // Pointcut for java.nio.file.Files newDirectoryStream methods + pointcut filesNewDirectoryStreamMethods() : + execution(* java.nio.file.Files.newDirectoryStream(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for PrintJob2D methods - pointcut printJob2DMethods() : - (execution(* sun.print.PrintJob2D.throwPrintToFile(..))) && + // Pointcut for java.nio.file.Files newInputStream methods + pointcut filesNewInputStreamMethods() : + execution(* java.nio.file.Files.newInputStream(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for RasterPrinterJob methods - pointcut rasterPrinterJobMethods() : - (execution(* sun.print.RasterPrinterJob.throwPrintToFile(..))) && + // Pointcut for java.nio.file.Files newOutputStream methods + pointcut filesNewOutputStreamMethods() : + execution(* java.nio.file.Files.newOutputStream(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ServiceDialog$PrintServicePanel methods - pointcut serviceDialogPrintServicePanelMethods() : - (execution(* sun.print.ServiceDialog$PrintServicePanel.throwPrintToFile(..))) && + // Pointcut for java.nio.file.Files notExists methods + pointcut filesNotExistsMethods() : + execution(* java.nio.file.Files.notExists(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for RegistryImpl constructors - pointcut registryImplConstructorMethods() : - (execution(sun.rmi.registry.RegistryImpl.new(..))) && + // Pointcut for java.nio.file.Files probeContentType methods + pointcut filesProbeContentTypeMethods() : + execution(* java.nio.file.Files.probeContentType(..)) && !within(de.tum.cit.ase.ares.api..*); - // Pointcut for ConfigFile$Spi methods - pointcut configFileSpiMethods() : - (execution(* sun.security.provider.ConfigFile$Spi.engineRefresh(..))) && + // Pointcut for java.nio.file.Files readAllBytes methods + pointcut filesReadAllBytesMethods() : + execution(* java.nio.file.Files.readAllBytes(..)) && !within(de.tum.cit.ase.ares.api..*); + // Pointcut for java.nio.file.Files readAllLines methods + pointcut filesReadAllLinesMethods() : + execution(* java.nio.file.Files.readAllLines(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files readAttributes methods + pointcut filesReadAttributesMethods() : + execution(* java.nio.file.Files.readAttributes(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files readString methods + pointcut filesReadStringMethods() : + execution(* java.nio.file.Files.readString(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files readSymbolicLink methods + pointcut filesReadSymbolicLinkMethods() : + execution(* java.nio.file.Files.readSymbolicLink(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files setAttribute methods + pointcut filesSetAttributeMethods() : + execution(* java.nio.file.Files.setAttribute(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files size methods + pointcut filesSizeMethods() : + execution(* java.nio.file.Files.size(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files walk methods + pointcut filesWalkMethods() : + execution(* java.nio.file.Files.walk(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files walkFileTree methods + pointcut filesWalkFileTreeMethods() : + execution(* java.nio.file.Files.walkFileTree(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files write methods + pointcut filesWriteMethods() : + execution(* java.nio.file.Files.write(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.Files writeString methods + pointcut filesWriteStringMethods() : + execution(* java.nio.file.Files.writeString(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // Pointcut for java.nio.file.LinkPermission constructors + pointcut linkPermissionMethods() : + execution(java.nio.file.LinkPermission.new(String)) || + execution(java.nio.file.LinkPermission.new(String, String)); + + // Pointcut for java.nio.file.NoSuchFileException constructors + pointcut noSuchFileExceptionMethods() : + execution(java.nio.file.NoSuchFileException.new(String)) || + execution(java.nio.file.NoSuchFileException.new(String, String, String)); + + // Pointcut for java.nio.file.NotDirectoryException constructors + pointcut notDirectoryExceptionMethods() : + execution(java.nio.file.NotDirectoryException.new(String)); + + // Pointcut for java.nio.file.NotLinkException constructors + pointcut notLinkExceptionMethods() : + execution(java.nio.file.NotLinkException.new(String)) || + execution(java.nio.file.NotLinkException.new(String, String, String)); + + // Pointcut for java.nio.file.Path methods + pointcut pathMethods() : + execution(* java.nio.file.Path.endsWith(String)) || + execution(* java.nio.file.Path.of(String, String[])) || + execution(* java.nio.file.Path.of(java.net.URI)) || + execution(* java.nio.file.Path.resolve(String)) || + execution(* java.nio.file.Path.resolveSibling(String)) || + execution(* java.nio.file.Path.startsWith(String)); + + // Pointcut for java.nio.file.Paths methods + pointcut pathsMethods() : + execution(* java.nio.file.Paths.get(String, String[])) || + execution(* java.nio.file.Paths.get(java.net.URI)); + + // Pointcut for java.nio.file.attribute.UserPrincipalNotFoundException constructor + pointcut userPrincipalNotFoundExceptionMethods() : + execution(java.nio.file.attribute.UserPrincipalNotFoundException.new(String)); + + // Pointcut for java.nio.file.spi.FileSystemProvider methods + pointcut fileSystemProviderMethods() : + execution(* java.nio.file.spi.FileSystemProvider.deleteIfExists(java.nio.file.Path)) || + execution(* java.nio.file.spi.FileSystemProvider.exists(java.nio.file.Path, java.nio.file.LinkOption[])) || + execution(* java.nio.file.spi.FileSystemProvider.newInputStream(java.nio.file.Path, java.nio.file.OpenOption[])) || + execution(* java.nio.file.spi.FileSystemProvider.newOutputStream(java.nio.file.Path, java.nio.file.OpenOption[])) || + execution(* java.nio.file.spi.FileSystemProvider.readAttributesIfExists(java.nio.file.Path, Class, java.nio.file.LinkOption[])); } \ No newline at end of file From 7bebd753f7d9c9cbd16d95531257e5892dc1225d Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Sun, 28 Jul 2024 15:00:41 +0200 Subject: [PATCH 13/30] new approach --- pom.xml | 42 +- .../java/AdviceDefinition.aj | 2784 +---------------- .../resources/META-INF/aop.xml | 10 + .../subject/pathaccess/PathAccessPenguin.java | 1 + 4 files changed, 32 insertions(+), 2805 deletions(-) create mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/resources/META-INF/aop.xml diff --git a/pom.xml b/pom.xml index 58201295..d57e4ea8 100644 --- a/pom.xml +++ b/pom.xml @@ -363,42 +363,24 @@ - - dev.aspectj - aspectj-maven-plugin - 1.14 - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - 21 - - - - - compile - test-compile - - - - process-integration-test-classes - process-test-classes - - compile - - - - org.apache.maven.plugins maven-surefire-plugin 3.3.0 + + -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar @{argLine} -Dfile.encoding=UTF-8 + alphabetical + + + + src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/resources + + META-INF/aop.xml + + + Ares A JUnit 5 Extension for secure Artemis Java Testing. diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index 6a534aa7..0d31a0e1 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -38,2783 +38,17 @@ public aspect AdviceDefinition { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - Object around() : PointcutDefinitions.appletMethods() { - if (handleAroundAdvice(thisJoinPoint, "read") || - handleAroundAdvice(thisJoinPoint, "write") || - handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.awtEventMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.awtExceptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.awtPermissionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.basicStrokeMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.borderLayoutMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.buttonMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.canvasMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.cardLayoutMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.checkboxMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.checkboxMenuItemMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.choiceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.componentReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.componentWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.componentExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.componentOrientationMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.containerReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.containerWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.containerExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.containerOrderFocusTraversalPolicyMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.cursorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.defaultKeyboardFocusManagerMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.desktopReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.desktopWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.desktopExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dialogMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute") || - handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.eventQueueMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileDialogConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileDialogWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileDialogExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fontConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fontReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fontWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.flowLayoutMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.focusTraversalPolicyMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fontMetricsReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.frameConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.frameWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.frameExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.gradientPaintMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.graphicsConfigurationWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.graphicsDeviceReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.graphicsDeviceWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.graphicsEnvironmentReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.layoutContainerWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.imageWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.imageReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.keyboardFocusManagerConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.keyboardFocusManagerWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.keyboardFocusManagerExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.labelConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.labelAddNotifyMethod() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.linearGradientPaintCreateContextMethod() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.listConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.listAddNotifyMethod() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.mediaTrackerReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.menuConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.menuWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.menuBarConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.menuBarWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.menuComponentConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.menuComponentWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.menuItemConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.menuItemWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.mouseInfoReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.panelConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.panelAddNotifyMethod() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.popupMenuConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.popupMenuWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.radialGradientPaintCreateContextMethod() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.renderingHintsCloneMethod() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.robotConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.robotWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.scrollPaneConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.scrollPaneWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.scrollPaneAdjustableWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.scrollbarConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.scrollbarWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.splashScreenWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.splashScreenReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.systemTrayWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.systemTrayReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.taskbarReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.textAreaConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.textAreaAddNotifyMethod() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.textComponentWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.textFieldConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.textFieldAddNotifyMethod() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.texturePaintWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.toolkitWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.toolkitReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.trayIconConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.trayIconReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.windowConstructorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.windowWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.windowReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.iccProfileReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.iccProfileWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.clipboardWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.clipboardReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dataFlavorMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { // Assuming most DataFlavor methods are read operations - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.mimeTypeParseExceptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { // Assuming constructors are considered as execute - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.stringSelectionMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { // Assuming getTransferData is a read operation - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.systemFlavorMapMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { // Assuming most SystemFlavorMap methods are write operations - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.unsupportedFlavorExceptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { // Assuming constructors are considered as execute - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.desktopEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dragGestureEventStartDragMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dragGestureRecognizerAddListenerMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dragSourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dragSourceContextMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dropTargetMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.actionEventMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.adjustmentEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.componentEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.containerEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.focusEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.hierarchyEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.inputEventMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.inputMethodEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.invocationEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.itemEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.keyEventMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.mouseEventMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.mouseWheelEventMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.paintEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.textEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.windowEventConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.glyphVectorMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.imageGraphicAttributeConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.lineBreakMeasurerMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.shapeGraphicAttributeMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.textLayoutMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.textMeasurerMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.affineTransformMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.areaMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.cubicCurve2DMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.noninvertibleTransformExceptionConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.inputContextMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.abstractMultiResolutionImageMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.affineTransformOpMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.baseMultiResolutionImageMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedImageMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.colorConvertOpMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.convolveOpMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.lookupOpMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.pixelGrabberConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.rescaleOpMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.volatileImageMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.printerExceptionConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.printerJobMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.beanDescriptorConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.beansMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.encoderMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.eventHandlerMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.eventSetDescriptorConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.eventSetDescriptorMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.expressionConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.expressionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.featureDescriptorMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.indexedPropertyDescriptorConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.indexedPropertyDescriptorMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.introspectionExceptionConstructor() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.introspectorMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.methodDescriptorConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.methodDescriptorMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.persistenceDelegateMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.propertyChangeSupportMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.propertyDescriptorConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.propertyDescriptorMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.propertyVetoExceptionConstructor() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.simpleBeanInfoMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.statementConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.statementExecuteMethod() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.xmlDecoderConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.xmlDecoderMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.xmlEncoderConstructors() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.xmlEncoderMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.beanContextChildSupportMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.beanContextServicesSupportMethods() { - if (handleAroundAdvice(thisJoinPoint, "read") || handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.beanContextSupportMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedInputStreamCloseMethod() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedOutputStreamConstructors() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedOutputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedReaderCloseMethod() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedWriterWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.bufferedWriterCloseMethod() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.byteArrayOutputStreamConstructors() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.byteArrayOutputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.charArrayReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.charArrayWriterWriteToMethod() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dataInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dataOutputStreamConstructors() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.dataOutputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileConversionMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileInputStreamResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileOutputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileOutputStreamResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.fileWriterWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.filterInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.filterInputStreamResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.filterOutputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.filterOutputStreamResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.filterReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.filterReaderResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.filterWriterWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.filterWriterResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.inputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.inputStreamReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.inputStreamReaderResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.lineNumberInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.lineNumberReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.lineNumberReaderResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.objectInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.objectInputStreamResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.objectOutputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.objectOutputStreamResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.outputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.outputStreamResourceMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.pipedInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.pipedOutputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.pipedReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - Object around() : PointcutDefinitions.pipedWriterWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for PipedInputStream read methods - Object around() : PointcutDefinitions.pipedInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for PipedOutputStream write methods - Object around() : PointcutDefinitions.pipedOutputStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for PipedReader read methods - Object around() : PointcutDefinitions.pipedReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for PipedWriter write methods - Object around() : PointcutDefinitions.pipedWriterWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for PrintStream write methods - Object around() : PointcutDefinitions.printStreamWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for PrintWriter write methods - Object around() : PointcutDefinitions.printWriterWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for PushbackInputStream read methods - Object around() : PointcutDefinitions.pushbackInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for PushbackReader read methods - Object around() : PointcutDefinitions.pushbackReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for RandomAccessFile read methods - Object around() : PointcutDefinitions.randomAccessFileReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for RandomAccessFile write methods - Object around() : PointcutDefinitions.randomAccessFileWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for Reader read methods - Object around() : PointcutDefinitions.readerReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for SequenceInputStream read methods - Object around() : PointcutDefinitions.sequenceInputStreamReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for StringReader read methods - Object around() : PointcutDefinitions.stringReaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for Writer write methods - Object around() : PointcutDefinitions.writerWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for Authenticator read methods - Object around() : PointcutDefinitions.authenticatorReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for Authenticator write methods - Object around() : PointcutDefinitions.authenticatorWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for DatagramSocket initialization methods - Object around() : PointcutDefinitions.datagramSocketInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for DatagramSocket write methods - Object around() : PointcutDefinitions.datagramSocketWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } + // Advice for System.getSecurityManager() + before(): execution(public static java.lang.SecurityManager System.getSecurityManager()) { + System.out.println("Intercepted call to System.getSecurityManager()"); + // You can add additional logic here, such as logging or throwing an exception } - // Around advice for HttpURLConnection read methods - Object around() : PointcutDefinitions.httpURLConnectionReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for HttpURLConnection write methods - Object around() : PointcutDefinitions.httpURLConnectionWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for IDN read methods - Object around() : PointcutDefinitions.idnReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for InetAddress read methods - Object around() : PointcutDefinitions.inetAddressReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for JarURLConnection read methods - Object around() : PointcutDefinitions.jarURLConnectionReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for MulticastSocket read methods - Object around() : PointcutDefinitions.multicastSocketReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for MulticastSocket write methods - Object around() : PointcutDefinitions.multicastSocketWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for ServerSocket read methods - Object around() : PointcutDefinitions.serverSocketReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for ServerSocket write methods - Object around() : PointcutDefinitions.serverSocketWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for Socket read methods - Object around() : PointcutDefinitions.socketReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for Socket write methods - Object around() : PointcutDefinitions.socketWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for URI read methods - Object around() : PointcutDefinitions.uriReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for URL read methods - Object around() : PointcutDefinitions.urlReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for URLClassLoader read methods - Object around() : PointcutDefinitions.urlClassLoaderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for URLConnection read methods - Object around() : PointcutDefinitions.urlConnectionReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for HttpRequest$BodyPublishers write methods - Object around() : PointcutDefinitions.httpRequestBodyPublishersWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for HttpResponse$BodyHandlers read methods - Object around() : PointcutDefinitions.httpResponseBodyHandlersReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for HttpResponse$BodySubscribers read methods - Object around() : PointcutDefinitions.httpResponseBodySubscribersReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for AsynchronousSocketChannel write methods - Object around() : PointcutDefinitions.asynchronousSocketChannelWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for AsynchronousSocketChannel read methods - Object around() : PointcutDefinitions.asynchronousSocketChannelReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for FileChannel write methods - Object around() : PointcutDefinitions.fileChannelWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for FileChannel read methods - Object around() : PointcutDefinitions.fileChannelReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for SelectableChannel register methods - Object around() : PointcutDefinitions.selectableChannelRegisterMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for ServerSocketChannel bind methods - Object around() : PointcutDefinitions.serverSocketChannelBindMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for ServerSocketChannel setOption methods - Object around() : PointcutDefinitions.serverSocketChannelSetOptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for SocketChannel bind methods - Object around() : PointcutDefinitions.socketChannelBindMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for SocketChannel open methods - Object around() : PointcutDefinitions.socketChannelOpenMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for SocketChannel read methods - Object around() : PointcutDefinitions.socketChannelReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for SocketChannel setOption methods - Object around() : PointcutDefinitions.socketChannelSetOptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for SocketChannel write methods - Object around() : PointcutDefinitions.socketChannelWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for AccessDeniedException constructors - Object around() : PointcutDefinitions.accessDeniedExceptionInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for AtomicMoveNotSupportedException constructors - Object around() : PointcutDefinitions.atomicMoveNotSupportedExceptionInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for DirectoryNotEmptyException constructors - Object around() : PointcutDefinitions.directoryNotEmptyExceptionInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for FileAlreadyExistsException constructors - Object around() : PointcutDefinitions.fileAlreadyExistsExceptionInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for FileSystemException constructors - Object around() : PointcutDefinitions.fileSystemExceptionInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for FileSystemLoopException constructors - Object around() : PointcutDefinitions.fileSystemLoopExceptionInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for FileSystems getFileSystem methods - Object around() : PointcutDefinitions.fileSystemsGetFileSystemMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for FileSystems newFileSystem methods - Object around() : PointcutDefinitions.fileSystemsNewFileSystemMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice for java.nio.file.Files copy methods - Object around() : PointcutDefinitions.filesCopyMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files create methods - Object around() : PointcutDefinitions.filesCreateMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files delete methods - Object around() : PointcutDefinitions.filesDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files deleteIfExists methods - Object around() : PointcutDefinitions.filesDeleteIfExistsMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files exists methods - Object around() : PointcutDefinitions.filesExistsMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files find methods - Object around() : PointcutDefinitions.filesFindMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files getAttribute methods - Object around() : PointcutDefinitions.filesGetAttributeMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files getFileStore methods - Object around() : PointcutDefinitions.filesGetFileStoreMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files getLastModifiedTime methods - Object around() : PointcutDefinitions.filesGetLastModifiedTimeMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files getPosixFilePermissions methods - Object around() : PointcutDefinitions.filesGetPosixFilePermissionsMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files isDirectory methods - Object around() : PointcutDefinitions.filesIsDirectoryMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files isExecutable methods - Object around() : PointcutDefinitions.filesIsExecutableMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files isReadable methods - Object around() : PointcutDefinitions.filesIsReadableMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files isRegularFile methods - Object around() : PointcutDefinitions.filesIsRegularFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files isSameFile methods - Object around() : PointcutDefinitions.filesIsSameFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files isSymbolicLink methods - Object around() : PointcutDefinitions.filesIsSymbolicLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files isWritable methods - Object around() : PointcutDefinitions.filesIsWritableMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files lines methods - Object around() : PointcutDefinitions.filesLinesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files list methods - Object around() : PointcutDefinitions.filesListMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files mismatch methods - Object around() : PointcutDefinitions.filesMismatchMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files move methods - Object around() : PointcutDefinitions.filesMoveMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files newBufferedReader methods - Object around() : PointcutDefinitions.filesNewBufferedReaderMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files newBufferedWriter methods - Object around() : PointcutDefinitions.filesNewBufferedWriterMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files newByteChannel methods - Object around() : PointcutDefinitions.filesNewByteChannelMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files newDirectoryStream methods - Object around() : PointcutDefinitions.filesNewDirectoryStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files newInputStream methods - Object around() : PointcutDefinitions.filesNewInputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files newOutputStream methods - Object around() : PointcutDefinitions.filesNewOutputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files notExists methods - Object around() : PointcutDefinitions.filesNotExistsMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files probeContentType methods - Object around() : PointcutDefinitions.filesProbeContentTypeMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files readAllBytes methods - Object around() : PointcutDefinitions.filesReadAllBytesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files readAllLines methods - Object around() : PointcutDefinitions.filesReadAllLinesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files readAttributes methods - Object around() : PointcutDefinitions.filesReadAttributesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files readString methods - Object around() : PointcutDefinitions.filesReadStringMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files readSymbolicLink methods - Object around() : PointcutDefinitions.filesReadSymbolicLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files setAttribute methods - Object around() : PointcutDefinitions.filesSetAttributeMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files size methods - Object around() : PointcutDefinitions.filesSizeMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files walk methods - Object around() : PointcutDefinitions.filesWalkMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files walkFileTree methods - Object around() : PointcutDefinitions.filesWalkFileTreeMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files write methods - Object around() : PointcutDefinitions.filesWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Files writeString methods - Object around() : PointcutDefinitions.filesWriteStringMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.LinkPermission methods - Object around() : PointcutDefinitions.linkPermissionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.NoSuchFileException methods - Object around() : PointcutDefinitions.noSuchFileExceptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.NotDirectoryException methods - Object around() : PointcutDefinitions.notDirectoryExceptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.NotLinkException methods - Object around() : PointcutDefinitions.notLinkExceptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Path methods - Object around() : PointcutDefinitions.pathMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.Paths methods - Object around() : PointcutDefinitions.pathsMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.attribute.UserPrincipalNotFoundException methods - Object around() : PointcutDefinitions.userPrincipalNotFoundExceptionMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } - } - - // Around advice for java.nio.file.spi.FileSystemProvider methods - Object around() : PointcutDefinitions.fileSystemProviderMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } else { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); - } + // Advice for file read operations + before(): call(* java.nio.file.Files.read*(..)) || call(* java.io.FileInputStream.read*(..) || call(* java.io.Files.readString(..)) { + System.out.println("Intercepted file read operation"); + throw new SecurityException("File read operation blocked by AspectJ"); + // Add logic to handle the read operation, such as blocking or logging } } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/resources/META-INF/aop.xml b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/resources/META-INF/aop.xml new file mode 100644 index 00000000..2b797361 --- /dev/null +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/resources/META-INF/aop.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java b/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java index d4bf573e..da545bc8 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java @@ -10,6 +10,7 @@ private PathAccessPenguin() { public static void accessPath(Path p) throws IOException { Files.readString(p); + new FileInputStream(p.toFile()); } public static void askForFilePermission(String path) { From e1ca19755590eb22e457bae761ec20645aae1d93 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Sun, 28 Jul 2024 15:27:49 +0200 Subject: [PATCH 14/30] new Load Time Weaving approach --- pom.xml | 16 ++++++++-------- .../aspectconfiguration/java/AdviceDefinition.aj | 3 +-- .../resources/META-INF/aop.xml | 0 3 files changed, 9 insertions(+), 10 deletions(-) rename src/main/{java/de/tum/cit/ase/ares/api/aspectconfiguration => }/resources/META-INF/aop.xml (100%) diff --git a/pom.xml b/pom.xml index d57e4ea8..6d4f6675 100644 --- a/pom.xml +++ b/pom.xml @@ -151,6 +151,14 @@ + + + src/main/resources + + META-INF/aop.xml + + + org.apache.maven.plugins @@ -373,14 +381,6 @@ - - - src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/resources - - META-INF/aop.xml - - - Ares A JUnit 5 Extension for secure Artemis Java Testing. diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index 0d31a0e1..fd23fd86 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -45,9 +45,8 @@ public aspect AdviceDefinition { } // Advice for file read operations - before(): call(* java.nio.file.Files.read*(..)) || call(* java.io.FileInputStream.read*(..) || call(* java.io.Files.readString(..)) { + around(): call(* java.nio.file.Files.read*(..)) || call(* java.io.FileInputStream.read*(..)) || call(* java.nio.file.Files.readString(..)) { System.out.println("Intercepted file read operation"); - throw new SecurityException("File read operation blocked by AspectJ"); // Add logic to handle the read operation, such as blocking or logging } diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/resources/META-INF/aop.xml b/src/main/resources/META-INF/aop.xml similarity index 100% rename from src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/resources/META-INF/aop.xml rename to src/main/resources/META-INF/aop.xml From 4677fa70a8febf7ba1fc0f2eb92469adf24c273c Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Sun, 28 Jul 2024 17:17:04 +0200 Subject: [PATCH 15/30] new Load Time Weaving approach --- pom.xml | 4 ++-- .../ares/api/aspectconfiguration/java/AdviceDefinition.aj | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 6d4f6675..3c64a595 100644 --- a/pom.xml +++ b/pom.xml @@ -266,9 +266,9 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.5 + 3.3.0 - @{argLine} -Dfile.encoding=UTF-8 + -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar @{argLine} -Dfile.encoding=UTF-8 alphabetical diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index fd23fd86..cc1fa13c 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -40,13 +40,15 @@ public aspect AdviceDefinition { // Advice for System.getSecurityManager() before(): execution(public static java.lang.SecurityManager System.getSecurityManager()) { - System.out.println("Intercepted call to System.getSecurityManager()"); + //System.out.println("Intercepted call to System.getSecurityManager()"); + throw new SecurityException("Security Manager operation blocked by AspectJ"); // You can add additional logic here, such as logging or throwing an exception } // Advice for file read operations around(): call(* java.nio.file.Files.read*(..)) || call(* java.io.FileInputStream.read*(..)) || call(* java.nio.file.Files.readString(..)) { - System.out.println("Intercepted file read operation"); + //System.out.println("Intercepted file read operation"); + //throw new SecurityException("File read operation blocked by AspectJ"); // Add logic to handle the read operation, such as blocking or logging } From e38b01ad81c3a098fb4c06dccadac125ab8b9138 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Thu, 1 Aug 2024 23:08:41 +0200 Subject: [PATCH 16/30] added most important methods --- pom.xml | 46 +- .../java/AdviceDefinition.aj | 1474 +++++++- .../java/PointcutDefinitions.aj | 3123 +++++------------ src/main/resources/META-INF/aop.xml | 10 - .../integration/testuser/OnePathAllowed.yaml | 5 + 5 files changed, 2294 insertions(+), 2364 deletions(-) delete mode 100644 src/main/resources/META-INF/aop.xml diff --git a/pom.xml b/pom.xml index 3c64a595..2c1ae6d8 100644 --- a/pom.xml +++ b/pom.xml @@ -151,14 +151,6 @@ - - - src/main/resources - - META-INF/aop.xml - - - org.apache.maven.plugins @@ -268,7 +260,7 @@ maven-surefire-plugin 3.3.0 - -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar @{argLine} -Dfile.encoding=UTF-8 + @{argLine} -Dfile.encoding=UTF-8 alphabetical @@ -371,14 +363,40 @@ + + dev.aspectj + aspectj-maven-plugin + 1.14 + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + 21 + + + + + compile + test-compile + + + + process-integration-test-classes + process-test-classes + + compile + + + + org.apache.maven.plugins maven-surefire-plugin 3.3.0 - - -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar @{argLine} -Dfile.encoding=UTF-8 - alphabetical - @@ -543,4 +561,4 @@ - + \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index cc1fa13c..a34f4718 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -38,18 +38,1468 @@ public aspect AdviceDefinition { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - // Advice for System.getSecurityManager() - before(): execution(public static java.lang.SecurityManager System.getSecurityManager()) { - //System.out.println("Intercepted call to System.getSecurityManager()"); - throw new SecurityException("Security Manager operation blocked by AspectJ"); - // You can add additional logic here, such as logging or throwing an exception - } - - // Advice for file read operations - around(): call(* java.nio.file.Files.read*(..)) || call(* java.io.FileInputStream.read*(..)) || call(* java.nio.file.Files.readString(..)) { - //System.out.println("Intercepted file read operation"); - //throw new SecurityException("File read operation blocked by AspectJ"); - // Add logic to handle the read operation, such as blocking or logging + Object around() : PointcutDefinitions.unixToolkitLoadGtkMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.xDesktopPeerInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.xRobotPeerLoadNativeLibrariesMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.xTaskbarPeerInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.gifImageDecoderParseImageMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.jpegImageDecoderReadImageMethod() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.cupsPrinterInitIDsMethod() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.consoleEchoAndIsttyMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileInputStreamReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileInputStreamSkipMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileOutputStreamWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileOutputStreamCloseMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileOutputStreamGetChannelMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileDescriptorSyncMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileDescriptorCloseMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileCleanableCleanupMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.randomAccessFileReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.randomAccessFileWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.randomAccessFileSeekLengthMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.randomAccessFileOpenMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.nativeImageBufferMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.nativeLibrariesMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.cdsMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.epollMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileChannelImplReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileChannelImplWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileDispatcherImplReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileDispatcherImplWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileDispatcherImplExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileKeyMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.inheritedChannelMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.linuxNativeDispatcherMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixCopyFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherAccessMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherChmodMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherChownMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherCloseMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherClosedirMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherDupMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherExistsMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFchmodMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFchownMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFdopendirMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFgetxattrMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFlistxattrMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFremovexattrMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFsetxattrMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFstatMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFstatatMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFutimensMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherFutimesMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherGetcwdMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherGetlinelenMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherLchownMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherLinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherLstatMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherLutimesMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherMkdirMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherMknodMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherOpenMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherOpenatMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherOpendirMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherReaddirMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherReadlinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherRealpathMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherRenameMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherRenameatMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherRewindMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherRmdirMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherStatMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherStat1Methods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherStatvfsMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherSymlinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherUnlinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherUnlinkatMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherUtimesMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixNativeDispatcherWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.documentHandlerParseMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.templatesImplReadObjectMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.xPathFactoryImplInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.desktopMoveToTrashMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.desktopPrintMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.desktopSetPrintFileHandlerMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fontCheckFontFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.inputEventCanAccessSystemClipboardMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.introspectorSetBeanInfoSearchPathMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.propertyEditorManagerSetEditorSearchPathMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileInputStreamInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileOutputStreamInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.objectInputFilterConfigMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.objectInputStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.objectOutputStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.objectStreamClassMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.randomAccessFileInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.urlInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.urlSetURLStreamHandlerFactoryMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.urlConnectionSetFileNameMapMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.urlStreamHandlerProviderCheckPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileTreeWalkerGetAttributesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.tempFileHelperCreateMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileSystemProviderCheckPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileTypeDetectorCheckPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.logStreamSetDefaultStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.driverManagerSetLogStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.driverManagerSetLogWriterMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.zipFileInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.streamPrintServiceFactoryRunMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.xPathFactoryFinderCreateClassMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.jrtFileSystemProviderCheckPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.builtinClassLoaderFindClassMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.builtinClassLoaderFindResourceMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.urlClassPathJarLoaderCheckJarMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.urlClassPathCheckMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.moduleReferencesExplodedModuleReaderInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.systemModuleFindersSystemModuleReaderCheckPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.requestPublishersFilePublisherCreateMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.responseBodyHandlersFileDownloadBodyHandlerCreateMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.responseBodyHandlersPathBodyHandlerCreateMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.responseSubscribersPathSubscriberCreateMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.writeableUserPathDoPrivilegedIOMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.readWriteSelectableChannelMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.jlinkInternalMainRunMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.dataTransfererCastToFilesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileImageSourceInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.imageConsumerQueueInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.inputStreamImageSourceAddConsumerMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.shellFolderManagerCheckFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.shellFolderManagerCheckFilesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileFontGetPublicFileNameMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileServerHandlerInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.mimeTableSaveAsPropertiesMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.httpURLConnectionCheckURLFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.jarFileFactoryGetCachedJarFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.serverSocketChannelImplFinishAcceptMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixAsynchronousServerSocketChannelImplFinishAcceptMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.abstractUserDefinedFileAttributeViewCheckAccessMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixChannelFactoryOpenMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileAttributeViewsPosixCheckReadExtendedMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileAttributeViewsPosixCheckWriteExtendedMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystem1IteratorMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemFileStoreIteratorReadNextMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemCopyMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemGetFileStoresMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemMoveMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemProviderCheckAccessMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemProviderCreateLinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemProviderCreateSymbolicLinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemProviderGetFileStoreMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixFileSystemProviderReadSymbolicLinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixPathCheckDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixPathCheckReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixPathCheckWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixPathToAbsolutePathMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplCheckWriteAccessMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplReadAttributesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplCheckWriteAndUserAccessMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplReadAttributesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamImplDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamMoveMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixSecureDirectoryStreamNewDirectoryStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewListMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewSizeMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.printJob2DThrowPrintToFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.rasterPrinterJobThrowPrintToFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.serviceDialogPrintServicePanelThrowPrintToFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.registryImplInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.configFileSpiEngineRefreshMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.pathReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.pathWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.pathExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.pathDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileSystemReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileSystemWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileSystemExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.fileSystemDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; } } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj index f760165c..112778c6 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -2,2333 +2,800 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; public aspect PointcutDefinitions { - // Pointcut for Applet constructors and methods - pointcut appletMethods() : - (execution(java.applet.Applet.new(..)) || - execution(* java.applet.Applet.getAudioClip(..)) || - execution(* java.applet.Applet.getImage(..)) || - execution(* java.applet.Applet.play(..)) || - execution(* java.applet.Applet.resize(..)) || - execution(* java.applet.Applet.setStub(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AWTEvent constructors and methods - pointcut awtEventMethods() : - (execution(java.awt.AWTEvent.new(..)) || - execution(* java.awt.AWTEvent.toString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AWTException constructors - pointcut awtExceptionMethods() : - (execution(java.awt.AWTException.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AWTPermission constructors - pointcut awtPermissionMethods() : - (execution(java.awt.AWTPermission.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BasicStroke methods - pointcut basicStrokeMethods() : - (execution(* java.awt.BasicStroke.createStrokedShape(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BorderLayout methods - pointcut borderLayoutMethods() : - (execution(* java.awt.BorderLayout.layoutContainer(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Button constructors and methods - pointcut buttonMethods() : - (execution(java.awt.Button.new(..)) || - execution(* java.awt.Button.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Canvas constructors and methods - pointcut canvasMethods() : - (execution(java.awt.Canvas.new(..)) || - execution(* java.awt.Canvas.addNotify(..)) || - execution(* java.awt.Canvas.createBufferStrategy(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for CardLayout methods - pointcut cardLayoutMethods() : - (execution(* java.awt.CardLayout.addLayoutComponent(..)) || - execution(* java.awt.CardLayout.first(..)) || - execution(* java.awt.CardLayout.last(..)) || - execution(* java.awt.CardLayout.layoutContainer(..)) || - execution(* java.awt.CardLayout.next(..)) || - execution(* java.awt.CardLayout.previous(..)) || - execution(* java.awt.CardLayout.removeLayoutComponent(..)) || - execution(* java.awt.CardLayout.show(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Checkbox constructors and methods - pointcut checkboxMethods() : - (execution(java.awt.Checkbox.new(..)) || - execution(* java.awt.Checkbox.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for CheckboxMenuItem constructors and methods - pointcut checkboxMenuItemMethods() : - (execution(java.awt.CheckboxMenuItem.new(..)) || - execution(* java.awt.CheckboxMenuItem.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Choice constructors and methods - pointcut choiceMethods() : - (execution(java.awt.Choice.new(..)) || - execution(* java.awt.Choice.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Component read methods - pointcut componentReadMethods() : - (execution(* java.awt.Component.getColorModel(..)) || - execution(* java.awt.Component.getCursor(..)) || - execution(* java.awt.Component.getFocusTraversalKeys(..)) || - execution(* java.awt.Component.getFontMetrics(..)) || - execution(* java.awt.Component.getMousePosition(..)) || - execution(* java.awt.Component.getToolkit(..)) || - execution(* java.awt.Component.hasFocus(..)) || - execution(* java.awt.Component.isFocusOwner(..)) || - execution(* java.awt.Component.list(..)) || - execution(* java.awt.Component.imageUpdate(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Component write methods - pointcut componentWriteMethods() : - (execution(* java.awt.Component.add(..)) || - execution(* java.awt.Component.addNotify(..)) || - execution(* java.awt.Component.applyComponentOrientation(..)) || - execution(* java.awt.Component.checkImage(..)) || - execution(* java.awt.Component.createImage(..)) || - execution(* java.awt.Component.enable(..)) || - execution(* java.awt.Component.enableInputMethods(..)) || - execution(* java.awt.Component.firePropertyChange(..)) || - execution(* java.awt.Component.move(..)) || - execution(* java.awt.Component.prepareImage(..)) || - execution(* java.awt.Component.remove(..)) || - execution(* java.awt.Component.removeNotify(..)) || - execution(* java.awt.Component.repaint(..)) || - execution(* java.awt.Component.requestFocus(..)) || - execution(* java.awt.Component.reshape(..)) || - execution(* java.awt.Component.resize(..)) || - execution(* java.awt.Component.revalidate(..)) || - execution(* java.awt.Component.setBackground(..)) || - execution(* java.awt.Component.setBounds(..)) || - execution(* java.awt.Component.setComponentOrientation(..)) || - execution(* java.awt.Component.setEnabled(..)) || - execution(* java.awt.Component.setFocusTraversalKeys(..)) || - execution(* java.awt.Component.setFocusTraversalKeysEnabled(..)) || - execution(* java.awt.Component.setFocusable(..)) || - execution(* java.awt.Component.setFont(..)) || - execution(* java.awt.Component.setForeground(..)) || - execution(* java.awt.Component.setLocale(..)) || - execution(* java.awt.Component.setLocation(..)) || - execution(* java.awt.Component.setMaximumSize(..)) || - execution(* java.awt.Component.setMinimumSize(..)) || - execution(* java.awt.Component.setName(..)) || - execution(* java.awt.Component.setPreferredSize(..)) || - execution(* java.awt.Component.setSize(..)) || - execution(* java.awt.Component.setVisible(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Component execute methods - pointcut componentExecuteMethods() : - (execution(* java.awt.Component.disable(..)) || - execution(* java.awt.Component.dispatchEvent(..)) || - execution(* java.awt.Component.enable(..)) || - execution(* java.awt.Component.hide(..)) || - execution(* java.awt.Component.show(..)) || - execution(* java.awt.Component.transferFocus(..)) || - execution(* java.awt.Component.transferFocusBackward(..)) || - execution(* java.awt.Component.transferFocusUpCycle(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ComponentOrientation methods - pointcut componentOrientationMethods() : - (execution(* java.awt.ComponentOrientation.getOrientation(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Container constructors and read methods - pointcut containerReadMethods() : - (execution(java.awt.Container.new(..)) || - execution(* java.awt.Container.getFocusTraversalKeys(..)) || - execution(* java.awt.Container.getFocusTraversalPolicy(..)) || - execution(* java.awt.Container.getMousePosition(..)) || - execution(* java.awt.Container.list(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Container write methods - pointcut containerWriteMethods() : - (execution(* java.awt.Container.add(..)) || - execution(* java.awt.Container.addNotify(..)) || - execution(* java.awt.Container.applyComponentOrientation(..)) || - execution(* java.awt.Container.doLayout(..)) || - execution(* java.awt.Container.remove(..)) || - execution(* java.awt.Container.removeAll(..)) || - execution(* java.awt.Container.removeNotify(..)) || - execution(* java.awt.Container.setComponentZOrder(..)) || - execution(* java.awt.Container.setFocusCycleRoot(..)) || - execution(* java.awt.Container.setFocusTraversalKeys(..)) || - execution(* java.awt.Container.setFocusTraversalPolicy(..)) || - execution(* java.awt.Container.setFocusTraversalPolicyProvider(..)) || - execution(* java.awt.Container.setFont(..)) || - execution(* java.awt.Container.update(..)) || - execution(* java.awt.Container.validate(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Container execute methods - pointcut containerExecuteMethods() : - (execution(* java.awt.Container.transferFocusDownCycle(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ContainerOrderFocusTraversalPolicy methods - pointcut containerOrderFocusTraversalPolicyMethods() : - (execution(* java.awt.ContainerOrderFocusTraversalPolicy.getComponentAfter(..)) || - execution(* java.awt.ContainerOrderFocusTraversalPolicy.getComponentBefore(..)) || - execution(* java.awt.ContainerOrderFocusTraversalPolicy.getDefaultComponent(..)) || - execution(* java.awt.ContainerOrderFocusTraversalPolicy.getFirstComponent(..)) || - execution(* java.awt.ContainerOrderFocusTraversalPolicy.getLastComponent(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Cursor constructors and methods - pointcut cursorMethods() : - (execution(java.awt.Cursor.new(..)) || - execution(* java.awt.Cursor.getDefaultCursor(..)) || - execution(* java.awt.Cursor.getPredefinedCursor(..)) || - execution(* java.awt.Cursor.getSystemCustomCursor(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DefaultKeyboardFocusManager constructors and methods - pointcut defaultKeyboardFocusManagerMethods() : - (execution(java.awt.DefaultKeyboardFocusManager.new(..)) || - execution(* java.awt.DefaultKeyboardFocusManager.dispatchEvent(..)) || - execution(* java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(..)) || - execution(* java.awt.DefaultKeyboardFocusManager.downFocusCycle(..)) || - execution(* java.awt.DefaultKeyboardFocusManager.focusNextComponent(..)) || - execution(* java.awt.DefaultKeyboardFocusManager.focusPreviousComponent(..)) || - execution(* java.awt.DefaultKeyboardFocusManager.processKeyEvent(..)) || - execution(* java.awt.DefaultKeyboardFocusManager.upFocusCycle(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Desktop read methods - pointcut desktopReadMethods() : - (execution(* java.awt.Desktop.getDesktop(..)) || - execution(* java.awt.Desktop.isDesktopSupported(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Desktop write methods - pointcut desktopWriteMethods() : - (execution(* java.awt.Desktop.setDefaultMenuBar(..)) || - execution(* java.awt.Desktop.setOpenFileHandler(..)) || - execution(* java.awt.Desktop.setOpenURIHandler(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Desktop execute methods - pointcut desktopExecuteMethods() : - (execution(* java.awt.Desktop.browse(..)) || - execution(* java.awt.Desktop.browseFileDirectory(..)) || - execution(* java.awt.Desktop.edit(..)) || - execution(* java.awt.Desktop.mail(..)) || - execution(* java.awt.Desktop.moveToTrash(..)) || - execution(* java.awt.Desktop.open(..)) || - execution(* java.awt.Desktop.openHelpViewer(..)) || - execution(* java.awt.Desktop.print(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Dialog constructors and methods - pointcut dialogMethods() : - (execution(java.awt.Dialog.new(..)) || - execution(* java.awt.Dialog.addNotify(..)) || - execution(* java.awt.Dialog.hide(..)) || - execution(* java.awt.Dialog.setBackground(..)) || - execution(* java.awt.Dialog.setModal(..)) || - execution(* java.awt.Dialog.setModalityType(..)) || - execution(* java.awt.Dialog.setOpacity(..)) || - execution(* java.awt.Dialog.setShape(..)) || - execution(* java.awt.Dialog.setTitle(..)) || - execution(* java.awt.Dialog.setVisible(..)) || - execution(* java.awt.Dialog.show(..)) || - execution(* java.awt.Dialog.toBack(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for EventQueue methods - pointcut eventQueueMethods() : - (execution(* java.awt.EventQueue.createSecondaryLoop(..)) || - execution(* java.awt.EventQueue.getCurrentEvent(..)) || - execution(* java.awt.EventQueue.getMostRecentEventTime(..)) || - execution(* java.awt.EventQueue.getNextEvent(..)) || - execution(* java.awt.EventQueue.invokeAndWait(..)) || - execution(* java.awt.EventQueue.invokeLater(..)) || - execution(* java.awt.EventQueue.isDispatchThread(..)) || - execution(* java.awt.EventQueue.postEvent(..)) || - execution(* java.awt.EventQueue.push(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileDialog constructors and methods - pointcut fileDialogConstructorMethods() : - (execution(java.awt.FileDialog.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDialogWriteMethods() : - (execution(* java.awt.FileDialog.setTitle(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDialogExecuteMethods() : - (execution(* java.awt.FileDialog.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Font constructors and methods - pointcut fontConstructorMethods() : - (execution(java.awt.Font.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fontReadMethods() : - (execution(* java.awt.Font.canDisplay(..)) || - execution(* java.awt.Font.canDisplayUpTo(..)) || - execution(* java.awt.Font.createFont(..)) || - execution(* java.awt.Font.createFonts(..)) || - execution(* java.awt.Font.createGlyphVector(..)) || - execution(* java.awt.Font.deriveFont(..)) || - execution(* java.awt.Font.getAttributes(..)) || - execution(* java.awt.Font.getFont(..)) || - execution(* java.awt.Font.getItalicAngle(..)) || - execution(* java.awt.Font.getLineMetrics(..)) || - execution(* java.awt.Font.getMaxCharBounds(..)) || - execution(* java.awt.Font.getMissingGlyphCode(..)) || - execution(* java.awt.Font.getNumGlyphs(..)) || - execution(* java.awt.Font.getStringBounds(..)) || - execution(* java.awt.Font.getTransform(..)) || - execution(* java.awt.Font.layoutGlyphVector(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fontWriteMethods() : - (execution(* java.awt.Font.equals(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FlowLayout methods - pointcut flowLayoutMethods() : - (execution(* java.awt.FlowLayout.layoutContainer(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FocusTraversalPolicy methods - pointcut focusTraversalPolicyMethods() : - (execution(* java.awt.FocusTraversalPolicy.getInitialComponent(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FontMetrics read methods - pointcut fontMetricsReadMethods() : - (execution(* java.awt.FontMetrics.bytesWidth(..)) || - execution(* java.awt.FontMetrics.charWidth(..)) || - execution(* java.awt.FontMetrics.charsWidth(..)) || - execution(* java.awt.FontMetrics.getLineMetrics(..)) || - execution(* java.awt.FontMetrics.getMaxCharBounds(..)) || - execution(* java.awt.FontMetrics.getStringBounds(..)) || - execution(* java.awt.FontMetrics.getWidths(..)) || - execution(* java.awt.FontMetrics.stringWidth(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Frame constructors - pointcut frameConstructorMethods() : - (execution(java.awt.Frame.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Frame methods - pointcut frameWriteMethods() : - (execution(* java.awt.Frame.addNotify(..)) || - execution(* java.awt.Frame.setBackground(..)) || - execution(* java.awt.Frame.setCursor(..)) || - execution(* java.awt.Frame.setExtendedState(..)) || - execution(* java.awt.Frame.setIconImage(..)) || - execution(* java.awt.Frame.setMenuBar(..)) || - execution(* java.awt.Frame.setOpacity(..)) || - execution(* java.awt.Frame.setResizable(..)) || - execution(* java.awt.Frame.setShape(..)) || - execution(* java.awt.Frame.setState(..)) || - execution(* java.awt.Frame.setTitle(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut frameExecuteMethods() : - (execution(* java.awt.Frame.getCursorType(..)) || - execution(* java.awt.Frame.remove(..)) || - execution(* java.awt.Frame.removeNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for GradientPaint create context method - pointcut gradientPaintMethods() : - (execution(* java.awt.GradientPaint.createContext(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for GraphicsConfiguration create methods - pointcut graphicsConfigurationWriteMethods() : - (execution(* java.awt.GraphicsConfiguration.createCompatibleVolatileImage(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for GraphicsDevice methods - pointcut graphicsDeviceReadMethods() : - (execution(* java.awt.GraphicsDevice.getBestConfiguration(..)) || - execution(* java.awt.GraphicsDevice.getDisplayMode(..)) || - execution(* java.awt.GraphicsDevice.getDisplayModes(..)) || - execution(* java.awt.GraphicsDevice.isWindowTranslucencySupported(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut graphicsDeviceWriteMethods() : - (execution(* java.awt.GraphicsDevice.setFullScreenWindow(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for GraphicsEnvironment methods - pointcut graphicsEnvironmentReadMethods() : - (execution(* java.awt.GraphicsEnvironment.getCenterPoint(..)) || - execution(* java.awt.GraphicsEnvironment.getMaximumWindowBounds(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for GridBagLayout and GridLayout methods - pointcut layoutContainerWriteMethods() : - (execution(* java.awt.GridBagLayout.layoutContainer(..)) || - execution(* java.awt.GridLayout.layoutContainer(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Image methods - pointcut imageWriteMethods() : - (execution(* java.awt.Image.flush(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut imageReadMethods() : - (execution(* java.awt.Image.getScaledInstance(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for KeyboardFocusManager methods - pointcut keyboardFocusManagerConstructorMethods() : - (execution(java.awt.KeyboardFocusManager.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut keyboardFocusManagerWriteMethods() : - (execution(* java.awt.KeyboardFocusManager.clearFocusOwner(..)) || - execution(* java.awt.KeyboardFocusManager.clearGlobalFocusOwner(..)) || - execution(* java.awt.KeyboardFocusManager.downFocusCycle(..)) || - execution(* java.awt.KeyboardFocusManager.focusNextComponent(..)) || - execution(* java.awt.KeyboardFocusManager.focusPreviousComponent(..)) || - execution(* java.awt.KeyboardFocusManager.setCurrentKeyboardFocusManager(..)) || - execution(* java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(..)) || - execution(* java.awt.KeyboardFocusManager.setDefaultFocusTraversalPolicy(..)) || - execution(* java.awt.KeyboardFocusManager.setGlobalCurrentFocusCycleRoot(..)) || - execution(* java.awt.KeyboardFocusManager.upFocusCycle(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut keyboardFocusManagerExecuteMethods() : - (execution(* java.awt.KeyboardFocusManager.getCurrentKeyboardFocusManager(..)) || - execution(* java.awt.KeyboardFocusManager.redispatchEvent(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Label constructor and addNotify method - pointcut labelConstructorMethods() : - (execution(java.awt.Label.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut labelAddNotifyMethod() : - (execution(* java.awt.Label.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for LinearGradientPaint createContext method - pointcut linearGradientPaintCreateContextMethod() : - (execution(* java.awt.LinearGradientPaint.createContext(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for List constructor and addNotify method - pointcut listConstructorMethods() : - (execution(java.awt.List.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut listAddNotifyMethod() : - (execution(* java.awt.List.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MediaTracker check methods - pointcut mediaTrackerReadMethods() : - (execution(* java.awt.MediaTracker.checkAll(..)) || - execution(* java.awt.MediaTracker.checkID(..)) || - execution(* java.awt.MediaTracker.getErrorsAny(..)) || - execution(* java.awt.MediaTracker.getErrorsID(..)) || - execution(* java.awt.MediaTracker.isErrorAny(..)) || - execution(* java.awt.MediaTracker.isErrorID(..)) || - execution(* java.awt.MediaTracker.statusAll(..)) || - execution(* java.awt.MediaTracker.statusID(..)) || - execution(* java.awt.MediaTracker.waitForAll(..)) || - execution(* java.awt.MediaTracker.waitForID(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Menu constructor and methods - pointcut menuConstructorMethods() : - (execution(java.awt.Menu.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut menuWriteMethods() : - (execution(* java.awt.Menu.add(..)) || - execution(* java.awt.Menu.addNotify(..)) || - execution(* java.awt.Menu.addSeparator(..)) || - execution(* java.awt.Menu.insert(..)) || - execution(* java.awt.Menu.remove(..)) || - execution(* java.awt.Menu.removeAll(..)) || - execution(* java.awt.Menu.removeNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MenuBar constructor and methods - pointcut menuBarConstructorMethods() : - (execution(java.awt.MenuBar.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut menuBarWriteMethods() : - (execution(* java.awt.MenuBar.add(..)) || - execution(* java.awt.MenuBar.addNotify(..)) || - execution(* java.awt.MenuBar.remove(..)) || - execution(* java.awt.MenuBar.setHelpMenu(..)) || - execution(* java.awt.MenuBar.removeNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MenuComponent constructor and methods - pointcut menuComponentConstructorMethods() : - (execution(java.awt.MenuComponent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut menuComponentWriteMethods() : - (execution(* java.awt.MenuComponent.dispatchEvent(..)) || - execution(* java.awt.MenuComponent.removeNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MenuItem constructor and methods - pointcut menuItemConstructorMethods() : - (execution(java.awt.MenuItem.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut menuItemWriteMethods() : - (execution(* java.awt.MenuItem.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MouseInfo methods - pointcut mouseInfoReadMethods() : - (execution(* java.awt.MouseInfo.getNumberOfButtons(..)) || - execution(* java.awt.MouseInfo.getPointerInfo(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Panel constructor and addNotify method - pointcut panelConstructorMethods() : - (execution(java.awt.Panel.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut panelAddNotifyMethod() : - (execution(* java.awt.Panel.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PopupMenu constructor and methods - pointcut popupMenuConstructorMethods() : - (execution(java.awt.PopupMenu.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut popupMenuWriteMethods() : - (execution(* java.awt.PopupMenu.addNotify(..)) || - execution(* java.awt.PopupMenu.show(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for RadialGradientPaint createContext method - pointcut radialGradientPaintCreateContextMethod() : - (execution(* java.awt.RadialGradientPaint.createContext(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for RenderingHints clone method - pointcut renderingHintsCloneMethod() : - (execution(* java.awt.RenderingHints.clone(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Robot constructor and methods - pointcut robotConstructorMethods() : - (execution(java.awt.Robot.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut robotWriteMethods() : - (execution(* java.awt.Robot.createMultiResolutionScreenCapture(..)) || - execution(* java.awt.Robot.createScreenCapture(..)) || - execution(* java.awt.Robot.getPixelColor(..)) || - execution(* java.awt.Robot.keyPress(..)) || - execution(* java.awt.Robot.keyRelease(..)) || - execution(* java.awt.Robot.mouseMove(..)) || - execution(* java.awt.Robot.mousePress(..)) || - execution(* java.awt.Robot.mouseRelease(..)) || - execution(* java.awt.Robot.mouseWheel(..)) || - execution(* java.awt.Robot.waitForIdle(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ScrollPane constructors and methods - pointcut scrollPaneConstructorMethods() : - (execution(java.awt.ScrollPane.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut scrollPaneWriteMethods() : - (execution(* java.awt.ScrollPane.addNotify(..)) || - execution(* java.awt.ScrollPane.doLayout(..)) || - execution(* java.awt.ScrollPane.layout(..)) || - execution(* java.awt.ScrollPane.setScrollPosition(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ScrollPaneAdjustable methods - pointcut scrollPaneAdjustableWriteMethods() : - (execution(* java.awt.ScrollPaneAdjustable.setValue(..)) || - execution(* java.awt.ScrollPaneAdjustable.setValueIsAdjusting(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Scrollbar constructors and methods - pointcut scrollbarConstructorMethods() : - (execution(java.awt.Scrollbar.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut scrollbarWriteMethods() : - (execution(* java.awt.Scrollbar.addNotify(..)) || - execution(* java.awt.Scrollbar.setMaximum(..)) || - execution(* java.awt.Scrollbar.setMinimum(..)) || - execution(* java.awt.Scrollbar.setOrientation(..)) || - execution(* java.awt.Scrollbar.setValue(..)) || - execution(* java.awt.Scrollbar.setValueIsAdjusting(..)) || - execution(* java.awt.Scrollbar.setValues(..)) || - execution(* java.awt.Scrollbar.setVisibleAmount(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SplashScreen methods - pointcut splashScreenWriteMethods() : - (execution(* java.awt.SplashScreen.createGraphics(..)) || - execution(* java.awt.SplashScreen.setImageURL(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut splashScreenReadMethods() : - (execution(* java.awt.SplashScreen.getImageURL(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SystemTray methods - pointcut systemTrayWriteMethods() : - (execution(* java.awt.SystemTray.add(..)) || - execution(* java.awt.SystemTray.remove(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut systemTrayReadMethods() : - (execution(* java.awt.SystemTray.getSystemTray(..)) || - execution(* java.awt.SystemTray.isSupported(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Taskbar methods - pointcut taskbarReadMethods() : - (execution(* java.awt.Taskbar.getTaskbar(..)) || - execution(* java.awt.Taskbar.isTaskbarSupported(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for TextArea constructors and addNotify method - pointcut textAreaConstructorMethods() : - (execution(java.awt.TextArea.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut textAreaAddNotifyMethod() : - (execution(* java.awt.TextArea.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for TextComponent methods - pointcut textComponentWriteMethods() : - (execution(* java.awt.TextComponent.addNotify(..)) || - execution(* java.awt.TextComponent.enableInputMethods(..)) || - execution(* java.awt.TextComponent.removeNotify(..)) || - execution(* java.awt.TextComponent.setBackground(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for TextField constructors and methods - pointcut textFieldConstructorMethods() : - (execution(java.awt.TextField.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut textFieldAddNotifyMethod() : - (execution(* java.awt.TextField.addNotify(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for TexturePaint methods - pointcut texturePaintWriteMethods() : - (execution(* java.awt.TexturePaint.createContext(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Toolkit methods - pointcut toolkitWriteMethods() : - (execution(* java.awt.Toolkit.addAWTEventListener(..)) || - execution(* java.awt.Toolkit.createCustomCursor(..)) || - execution(* java.awt.Toolkit.removeAWTEventListener(..)) || - execution(* java.awt.Toolkit.setDynamicLayout(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut toolkitReadMethods() : - (execution(* java.awt.Toolkit.areExtraMouseButtonsEnabled(..)) || - execution(* java.awt.Toolkit.getBestCursorSize(..)) || - execution(* java.awt.Toolkit.getDefaultToolkit(..)) || - execution(* java.awt.Toolkit.getDesktopProperty(..)) || - execution(* java.awt.Toolkit.getMaximumCursorColors(..)) || - execution(* java.awt.Toolkit.getPrintJob(..)) || - execution(* java.awt.Toolkit.getProperty(..)) || - execution(* java.awt.Toolkit.getScreenInsets(..)) || - execution(* java.awt.Toolkit.getSystemSelection(..)) || - execution(* java.awt.Toolkit.isDynamicLayoutActive(..)) || - execution(* java.awt.Toolkit.isFrameStateSupported(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for TrayIcon constructors and methods - pointcut trayIconConstructorMethods() : - (execution(java.awt.TrayIcon.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut trayIconReadMethods() : - (execution(* java.awt.TrayIcon.getSize(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Window constructors and methods related to creation and manipulation - pointcut windowConstructorMethods() : - (execution(java.awt.Window.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut windowWriteMethods() : - (execution(* java.awt.Window.addNotify(..)) || - execution(* java.awt.Window.applyResourceBundle(..)) || - execution(* java.awt.Window.createBufferStrategy(..)) || - execution(* java.awt.Window.dispose(..)) || - execution(* java.awt.Window.hide(..)) || - execution(* java.awt.Window.pack(..)) || - execution(* java.awt.Window.paint(..)) || - execution(* java.awt.Window.removeNotify(..)) || - execution(* java.awt.Window.reshape(..)) || - execution(* java.awt.Window.setAlwaysOnTop(..)) || - execution(* java.awt.Window.setBackground(..)) || - execution(* java.awt.Window.setBounds(..)) || - execution(* java.awt.Window.setCursor(..)) || - execution(* java.awt.Window.setFocusableWindowState(..)) || - execution(* java.awt.Window.setIconImage(..)) || - execution(* java.awt.Window.setIconImages(..)) || - execution(* java.awt.Window.setLocation(..)) || - execution(* java.awt.Window.setLocationRelativeTo(..)) || - execution(* java.awt.Window.setMinimumSize(..)) || - execution(* java.awt.Window.setModalExclusionType(..)) || - execution(* java.awt.Window.setOpacity(..)) || - execution(* java.awt.Window.setShape(..)) || - execution(* java.awt.Window.setSize(..)) || - execution(* java.awt.Window.setVisible(..)) || - execution(* java.awt.Window.show(..)) || - execution(* java.awt.Window.toBack(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut windowReadMethods() : - (execution(* java.awt.Window.getFocusOwner(..)) || - execution(* java.awt.Window.getFocusTraversalKeys(..)) || - execution(* java.awt.Window.getInputContext(..)) || - execution(* java.awt.Window.getMostRecentFocusOwner(..)) || - execution(* java.awt.Window.getToolkit(..)) || - execution(* java.awt.Window.isActive(..)) || - execution(* java.awt.Window.isAlwaysOnTopSupported(..)) || - execution(* java.awt.Window.isFocusableWindow(..)) || - execution(* java.awt.Window.isFocused(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ICC_Profile methods related to reading data - pointcut iccProfileReadMethods() : - (execution(* java.awt.color.ICC_Profile.getColorSpaceType(..)) || - execution(* java.awt.color.ICC_Profile.getData(..)) || - execution(* java.awt.color.ICC_Profile.getInstance(..)) || - execution(* java.awt.color.ICC_Profile.getMajorVersion(..)) || - execution(* java.awt.color.ICC_Profile.getMinorVersion(..)) || - execution(* java.awt.color.ICC_Profile.getNumComponents(..)) || - execution(* java.awt.color.ICC_Profile.getPCSType(..)) || - execution(* java.awt.color.ICC_Profile.getProfileClass(..)) || - execution(* java.awt.color.ICC_ProfileGray.getGamma(..)) || - execution(* java.awt.color.ICC_ProfileGray.getMediaWhitePoint(..)) || - execution(* java.awt.color.ICC_ProfileGray.getTRC(..)) || - execution(* java.awt.color.ICC_ProfileRGB.getGamma(..)) || - execution(* java.awt.color.ICC_ProfileRGB.getMatrix(..)) || - execution(* java.awt.color.ICC_ProfileRGB.getMediaWhitePoint(..)) || - execution(* java.awt.color.ICC_ProfileRGB.getTRC(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ICC_Profile methods related to writing data - pointcut iccProfileWriteMethods() : - (execution(* java.awt.color.ICC_Profile.setData(..)) || - execution(* java.awt.color.ICC_Profile.write(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Clipboard methods related to adding and setting data (write operations) - pointcut clipboardWriteMethods() : - (execution(* java.awt.datatransfer.Clipboard.addFlavorListener(..)) || - execution(* java.awt.datatransfer.Clipboard.setContents(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Clipboard methods related to getting data (read operations) - pointcut clipboardReadMethods() : - (execution(* java.awt.datatransfer.Clipboard.getAvailableDataFlavors(..)) || - execution(* java.awt.datatransfer.Clipboard.getData(..)) || - execution(* java.awt.datatransfer.Clipboard.isDataFlavorAvailable(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DataFlavor constructors and methods - pointcut dataFlavorMethods() : - (execution(java.awt.datatransfer.DataFlavor.new(..)) || - execution(* java.awt.datatransfer.DataFlavor.equals(..)) || - execution(* java.awt.datatransfer.DataFlavor.getReaderForText(..)) || - execution(* java.awt.datatransfer.DataFlavor.getTextPlainUnicodeFlavor(..)) || - execution(* java.awt.datatransfer.DataFlavor.isFlavorRemoteObjectType(..)) || - execution(* java.awt.datatransfer.DataFlavor.isFlavorSerializedObjectType(..)) || - execution(* java.awt.datatransfer.DataFlavor.isMimeTypeEqual(..)) || - execution(* java.awt.datatransfer.DataFlavor.isMimeTypeSerializedObject(..)) || - execution(* java.awt.datatransfer.DataFlavor.readExternal(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MimeTypeParseException constructors - pointcut mimeTypeParseExceptionMethods() : - (execution(java.awt.datatransfer.MimeTypeParseException.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for StringSelection methods - pointcut stringSelectionMethods() : - (execution(* java.awt.datatransfer.StringSelection.getTransferData(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SystemFlavorMap methods - pointcut systemFlavorMapMethods() : - (execution(* java.awt.datatransfer.SystemFlavorMap.addFlavorForUnencodedNative(..)) || - execution(* java.awt.datatransfer.SystemFlavorMap.addUnencodedNativeForFlavor(..)) || - execution(* java.awt.datatransfer.SystemFlavorMap.decodeDataFlavor(..)) || - execution(* java.awt.datatransfer.SystemFlavorMap.getFlavorsForNative(..)) || - execution(* java.awt.datatransfer.SystemFlavorMap.getFlavorsForNatives(..)) || - execution(* java.awt.datatransfer.SystemFlavorMap.getNativesForFlavor(..)) || - execution(* java.awt.datatransfer.SystemFlavorMap.getNativesForFlavors(..)) || - execution(* java.awt.datatransfer.SystemFlavorMap.setFlavorsForNative(..)) || - execution(* java.awt.datatransfer.SystemFlavorMap.setNativesForFlavor(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for UnsupportedFlavorException constructors - pointcut unsupportedFlavorExceptionMethods() : - (execution(java.awt.datatransfer.UnsupportedFlavorException.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for desktop event constructors - pointcut desktopEventConstructors() : - (execution(java.awt.desktop.AboutEvent.new(..)) || - execution(java.awt.desktop.AppForegroundEvent.new(..)) || - execution(java.awt.desktop.AppHiddenEvent.new(..)) || - execution(java.awt.desktop.AppReopenedEvent.new(..)) || - execution(java.awt.desktop.OpenFilesEvent.new(..)) || - execution(java.awt.desktop.OpenURIEvent.new(..)) || - execution(java.awt.desktop.PreferencesEvent.new(..)) || - execution(java.awt.desktop.PrintFilesEvent.new(..)) || - execution(java.awt.desktop.QuitEvent.new(..)) || - execution(java.awt.desktop.ScreenSleepEvent.new(..)) || - execution(java.awt.desktop.SystemSleepEvent.new(..)) || - execution(java.awt.desktop.UserSessionEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DragGestureEvent startDrag methods - pointcut dragGestureEventStartDragMethods() : - (execution(* java.awt.dnd.DragGestureEvent.startDrag(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DragGestureRecognizer addDragGestureListener method - pointcut dragGestureRecognizerAddListenerMethods() : - (execution(* java.awt.dnd.DragGestureRecognizer.addDragGestureListener(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DragSource methods - pointcut dragSourceMethods() : - (execution(* java.awt.dnd.DragSource.createDefaultDragGestureRecognizer(..)) || - execution(* java.awt.dnd.DragSource.createDragGestureRecognizer(..)) || - execution(* java.awt.dnd.DragSource.getDragThreshold(..)) || - execution(* java.awt.dnd.DragSource.isDragImageSupported(..)) || - execution(* java.awt.dnd.DragSource.startDrag(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DragSourceContext constructors and methods - pointcut dragSourceContextMethods() : - (execution(java.awt.dnd.DragSourceContext.new(..)) || - execution(* java.awt.dnd.DragSourceContext.addDragSourceListener(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DropTarget constructors and methods - pointcut dropTargetMethods() : - (execution(java.awt.dnd.DropTarget.new(..)) || - execution(* java.awt.dnd.DropTarget.addDropTargetListener(..)) || - execution(* java.awt.dnd.DropTarget.dragEnter(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ActionEvent constructors and methods - pointcut actionEventMethods() : - (execution(java.awt.event.ActionEvent.new(..)) || - execution(* java.awt.event.ActionEvent.paramString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AdjustmentEvent constructors - pointcut adjustmentEventConstructors() : - (execution(java.awt.event.AdjustmentEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ComponentEvent constructors - pointcut componentEventConstructors() : - (execution(java.awt.event.ComponentEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ContainerEvent constructors - pointcut containerEventConstructors() : - (execution(java.awt.event.ContainerEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FocusEvent constructors - pointcut focusEventConstructors() : - (execution(java.awt.event.FocusEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for HierarchyEvent constructors - pointcut hierarchyEventConstructors() : - (execution(java.awt.event.HierarchyEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for InputEvent methods - pointcut inputEventMethods() : - (execution(* java.awt.event.InputEvent.getModifiersExText(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for InputMethodEvent constructors - pointcut inputMethodEventConstructors() : - (execution(java.awt.event.InputMethodEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for InvocationEvent constructors - pointcut invocationEventConstructors() : - (execution(java.awt.event.InvocationEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ItemEvent constructors - pointcut itemEventConstructors() : - (execution(java.awt.event.ItemEvent.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for KeyEvent constructors and methods - pointcut keyEventMethods() : - (execution(java.awt.event.KeyEvent.new(..)) || - execution(* java.awt.event.KeyEvent.getKeyModifiersText(..)) || - execution(* java.awt.event.KeyEvent.getKeyText(..)) || - execution(* java.awt.event.KeyEvent.paramString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MouseEvent constructors and methods - pointcut mouseEventMethods() : - (execution(java.awt.event.MouseEvent.new(..)) || - execution(* java.awt.event.MouseEvent.getMouseModifiersText(..)) || - execution(* java.awt.event.MouseEvent.paramString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MouseWheelEvent constructors and methods - pointcut mouseWheelEventMethods() : - (execution(java.awt.event.MouseWheelEvent.new(..)) || - execution(* java.awt.event.MouseWheelEvent.paramString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PaintEvent constructors - pointcut paintEventConstructors() : - execution(java.awt.event.PaintEvent.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for TextEvent constructors - pointcut textEventConstructors() : - execution(java.awt.event.TextEvent.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for WindowEvent constructors - pointcut windowEventConstructors() : - execution(java.awt.event.WindowEvent.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for GlyphVector methods - pointcut glyphVectorMethods() : - (execution(* java.awt.font.GlyphVector.getGlyphOutline(..)) || - execution(* java.awt.font.GlyphVector.getGlyphPixelBounds(..)) || - execution(* java.awt.font.GlyphVector.getPixelBounds(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ImageGraphicAttribute constructors - pointcut imageGraphicAttributeConstructors() : - execution(java.awt.font.ImageGraphicAttribute.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for LineBreakMeasurer constructors and methods - pointcut lineBreakMeasurerMethods() : - (execution(java.awt.font.LineBreakMeasurer.new(..)) || - execution(* java.awt.font.LineBreakMeasurer.deleteChar(..)) || - execution(* java.awt.font.LineBreakMeasurer.insertChar(..)) || - execution(* java.awt.font.LineBreakMeasurer.nextLayout(..)) || - execution(* java.awt.font.LineBreakMeasurer.nextOffset(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ShapeGraphicAttribute methods - pointcut shapeGraphicAttributeMethods() : - execution(* java.awt.font.ShapeGraphicAttribute.draw(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for TextLayout constructors and methods - pointcut textLayoutMethods() : - (execution(java.awt.font.TextLayout.new(..)) || - execution(* java.awt.font.TextLayout.getJustifiedLayout(..)) || - execution(* java.awt.font.TextLayout.getPixelBounds(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for TextMeasurer constructors and methods - pointcut textMeasurerMethods() : - (execution(java.awt.font.TextMeasurer.new(..)) || - execution(* java.awt.font.TextMeasurer.deleteChar(..)) || - execution(* java.awt.font.TextMeasurer.getAdvanceBetween(..)) || - execution(* java.awt.font.TextMeasurer.getLayout(..)) || - execution(* java.awt.font.TextMeasurer.getLineBreakIndex(..)) || - execution(* java.awt.font.TextMeasurer.insertChar(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AffineTransform methods - pointcut affineTransformMethods() : - (execution(* java.awt.geom.AffineTransform.createInverse(..)) || - execution(* java.awt.geom.AffineTransform.inverseTransform(..)) || - execution(* java.awt.geom.AffineTransform.invert(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Area constructors and methods - pointcut areaMethods() : - (execution(java.awt.geom.Area.new(..)) || - execution(* java.awt.geom.Area.add(..)) || - execution(* java.awt.geom.Area.clone(..)) || - execution(* java.awt.geom.Area.createTransformedArea(..)) || - execution(* java.awt.geom.Area.equals(..)) || - execution(* java.awt.geom.Area.exclusiveOr(..)) || - execution(* java.awt.geom.Area.intersect(..)) || - execution(* java.awt.geom.Area.subtract(..)) || - execution(* java.awt.geom.Area.transform(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for CubicCurve2D methods - pointcut cubicCurve2DMethods() : - (execution(* java.awt.geom.CubicCurve2D.solveCubic(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for NoninvertibleTransformException constructors - pointcut noninvertibleTransformExceptionConstructors() : - execution(java.awt.geom.NoninvertibleTransformException.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for InputContext methods - pointcut inputContextMethods() : - execution(* java.awt.im.InputContext.getInstance(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AbstractMultiResolutionImage methods - pointcut abstractMultiResolutionImageMethods() : - (execution(* java.awt.image.AbstractMultiResolutionImage.getHeight(..)) || - execution(* java.awt.image.AbstractMultiResolutionImage.getProperty(..)) || - execution(* java.awt.image.AbstractMultiResolutionImage.getSource(..)) || - execution(* java.awt.image.AbstractMultiResolutionImage.getWidth(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AffineTransformOp methods - pointcut affineTransformOpMethods() : - execution(* java.awt.image.AffineTransformOp.filter(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BaseMultiResolutionImage methods - pointcut baseMultiResolutionImageMethods() : - execution(* java.awt.image.BaseMultiResolutionImage.getResolutionVariant(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedImage methods - pointcut bufferedImageMethods() : - (execution(* java.awt.image.BufferedImage.createGraphics(..)) || - execution(* java.awt.image.BufferedImage.getGraphics(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ColorConvertOp methods - pointcut colorConvertOpMethods() : - (execution(* java.awt.image.ColorConvertOp.createCompatibleDestImage(..)) || - execution(* java.awt.image.ColorConvertOp.createCompatibleDestRaster(..)) || - execution(* java.awt.image.ColorConvertOp.filter(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ConvolveOp methods - pointcut convolveOpMethods() : - execution(* java.awt.image.ConvolveOp.filter(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for LookupOp methods - pointcut lookupOpMethods() : - execution(* java.awt.image.LookupOp.filter(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PixelGrabber constructors - pointcut pixelGrabberConstructors() : - execution(java.awt.image.PixelGrabber.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for RescaleOp methods - pointcut rescaleOpMethods() : - execution(* java.awt.image.RescaleOp.filter(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for VolatileImage methods - pointcut volatileImageMethods() : - (execution(* java.awt.image.VolatileImage.getGraphics(..)) || - execution(* java.awt.image.VolatileImage.getSource(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PrinterException and its subclasses constructors - pointcut printerExceptionConstructors() : - (execution(java.awt.print.PrinterAbortException.new(..)) || - execution(java.awt.print.PrinterException.new(..)) || - execution(java.awt.print.PrinterIOException.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PrinterJob methods - pointcut printerJobMethods() : - (execution(* java.awt.print.PrinterJob.defaultPage(..)) || - execution(* java.awt.print.PrinterJob.getPageFormat(..)) || - execution(* java.awt.print.PrinterJob.lookupPrintServices(..)) || - execution(* java.awt.print.PrinterJob.lookupStreamPrintServices(..)) || - execution(* java.awt.print.PrinterJob.pageDialog(..)) || - execution(* java.awt.print.PrinterJob.print(..)) || - execution(* java.awt.print.PrinterJob.printDialog(..)) || - execution(* java.awt.print.PrinterJob.setPrintService(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BeanDescriptor constructors - pointcut beanDescriptorConstructors() : - execution(java.beans.BeanDescriptor.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Beans methods - pointcut beansMethods() : - (execution(* java.beans.Beans.instantiate(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Encoder methods - pointcut encoderMethods() : - (execution(* java.beans.Encoder.get(..)) || - execution(* java.beans.Encoder.getPersistenceDelegate(..)) || - execution(* java.beans.Encoder.remove(..)) || - execution(* java.beans.Encoder.writeExpression(..)) || - execution(* java.beans.Encoder.writeStatement(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for EventHandler constructors and methods - pointcut eventHandlerMethods() : - (execution(java.beans.EventHandler.new(..)) || - execution(* java.beans.EventHandler.create(..)) || - execution(* java.beans.EventHandler.invoke(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for EventSetDescriptor constructors - pointcut eventSetDescriptorConstructors() : - (execution(java.beans.EventSetDescriptor.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for EventSetDescriptor methods - pointcut eventSetDescriptorMethods() : - (execution(* java.beans.EventSetDescriptor.getAddListenerMethod(..)) || - execution(* java.beans.EventSetDescriptor.getGetListenerMethod(..)) || - execution(* java.beans.EventSetDescriptor.getListenerMethods(..)) || - execution(* java.beans.EventSetDescriptor.getRemoveListenerMethod(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Expression constructors - pointcut expressionConstructors() : - (execution(java.beans.Expression.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Expression methods - pointcut expressionMethods() : - (execution(* java.beans.Expression.execute(..)) || - execution(* java.beans.Expression.getValue(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FeatureDescriptor method - pointcut featureDescriptorMethods() : - (execution(* java.beans.FeatureDescriptor.toString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for IndexedPropertyDescriptor constructors - pointcut indexedPropertyDescriptorConstructors() : - (execution(java.beans.IndexedPropertyDescriptor.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for IndexedPropertyDescriptor methods - pointcut indexedPropertyDescriptorMethods() : - (execution(* java.beans.IndexedPropertyDescriptor.equals(..)) || - execution(* java.beans.IndexedPropertyDescriptor.getIndexedPropertyType(..)) || - execution(* java.beans.IndexedPropertyDescriptor.getIndexedReadMethod(..)) || - execution(* java.beans.IndexedPropertyDescriptor.getIndexedWriteMethod(..)) || - execution(* java.beans.IndexedPropertyDescriptor.hashCode(..)) || - execution(* java.beans.IndexedPropertyDescriptor.setIndexedReadMethod(..)) || - execution(* java.beans.IndexedPropertyDescriptor.setIndexedWriteMethod(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for IntrospectionException constructor - pointcut introspectionExceptionConstructor() : - (execution(java.beans.IntrospectionException.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Introspector methods - pointcut introspectorMethods() : - (execution(* java.beans.Introspector.getBeanInfo(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MethodDescriptor constructors - pointcut methodDescriptorConstructors() : - (execution(java.beans.MethodDescriptor.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MethodDescriptor methods - pointcut methodDescriptorMethods() : - (execution(* java.beans.MethodDescriptor.getMethod(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PersistenceDelegate methods - pointcut persistenceDelegateMethods() : - (execution(* java.beans.PersistenceDelegate.writeObject(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PropertyChangeSupport methods - pointcut propertyChangeSupportMethods() : - (execution(* java.beans.PropertyChangeSupport.fireIndexedPropertyChange(..)) || - execution(* java.beans.PropertyChangeSupport.firePropertyChange(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PropertyDescriptor constructors - pointcut propertyDescriptorConstructors() : - (execution(java.beans.PropertyDescriptor.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PropertyDescriptor methods - pointcut propertyDescriptorMethods() : - (execution(* java.beans.PropertyDescriptor.equals(..)) || - execution(* java.beans.PropertyDescriptor.getPropertyType(..)) || - execution(* java.beans.PropertyDescriptor.getReadMethod(..)) || - execution(* java.beans.PropertyDescriptor.getWriteMethod(..)) || - execution(* java.beans.PropertyDescriptor.hashCode(..)) || - execution(* java.beans.PropertyDescriptor.setPropertyEditorClass(..)) || - execution(* java.beans.PropertyDescriptor.setReadMethod(..)) || - execution(* java.beans.PropertyDescriptor.setWriteMethod(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PropertyVetoException constructor - pointcut propertyVetoExceptionConstructor() : - (execution(java.beans.PropertyVetoException.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SimpleBeanInfo methods - pointcut simpleBeanInfoMethods() : - (execution(* java.beans.SimpleBeanInfo.getIcon(..)) || - execution(* java.beans.SimpleBeanInfo.loadImage(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Statement constructors - pointcut statementConstructors() : - (execution(java.beans.Statement.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Statement execute method - pointcut statementExecuteMethod() : - (execution(* java.beans.Statement.execute(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for XMLDecoder constructors - pointcut xmlDecoderConstructors() : - (execution(java.beans.XMLDecoder.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for XMLDecoder methods - pointcut xmlDecoderMethods() : - (execution(* java.beans.XMLDecoder.close(..)) || - execution(* java.beans.XMLDecoder.readObject(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for XMLEncoder constructors - pointcut xmlEncoderConstructors() : - (execution(java.beans.XMLEncoder.new(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for XMLEncoder methods - pointcut xmlEncoderMethods() : - (execution(* java.beans.XMLEncoder.close(..)) || - execution(* java.beans.XMLEncoder.flush(..)) || - execution(* java.beans.XMLEncoder.setOwner(..)) || - execution(* java.beans.XMLEncoder.writeExpression(..)) || - execution(* java.beans.XMLEncoder.writeObject(..)) || - execution(* java.beans.XMLEncoder.writeStatement(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BeanContextChildSupport methods - pointcut beanContextChildSupportMethods() : - (execution(* java.beans.beancontext.BeanContextChildSupport.firePropertyChange(..)) || - execution(* java.beans.beancontext.BeanContextChildSupport.setBeanContext(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BeanContextServicesSupport methods - pointcut beanContextServicesSupportMethods() : - (execution(* java.beans.beancontext.BeanContextServicesSupport.getService(..)) || - execution(* java.beans.beancontext.BeanContextServicesSupport.revokeService(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BeanContextSupport methods - pointcut beanContextSupportMethods() : - (execution(* java.beans.beancontext.BeanContextSupport.instantiateChild(..)) || - execution(* java.beans.beancontext.BeanContextSupport.readChildren(..)) || - execution(* java.beans.beancontext.BeanContextSupport.setDesignTime(..)) || - execution(* java.beans.beancontext.BeanContextSupport.setLocale(..)) || - execution(* java.beans.beancontext.BeanContextSupport.vetoableChange(..)) || - execution(* java.beans.beancontext.BeanContextSupport.writeChildren(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedInputStream read methods - pointcut bufferedInputStreamReadMethods() : - (execution(* java.io.BufferedInputStream.read(..)) || - execution(* java.io.BufferedInputStream.skip(long)) || - execution(* java.io.BufferedInputStream.available()) || - execution(* java.io.BufferedInputStream.reset()) || - execution(* java.io.BufferedInputStream.transferTo(java.io.OutputStream))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedInputStream close method - pointcut bufferedInputStreamCloseMethod() : - execution(* java.io.BufferedInputStream.close(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedOutputStream constructors - pointcut bufferedOutputStreamConstructors() : - execution(java.io.BufferedOutputStream.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedOutputStream write methods - pointcut bufferedOutputStreamWriteMethods() : - (execution(* java.io.BufferedOutputStream.write(..)) || - execution(* java.io.BufferedOutputStream.flush())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedReader read methods - pointcut bufferedReaderReadMethods() : - (execution(* java.io.BufferedReader.read(..)) || - execution(* java.io.BufferedReader.readLine(..)) || - execution(* java.io.BufferedReader.ready()) || - execution(* java.io.BufferedReader.reset()) || - execution(* java.io.BufferedReader.skip(long)) || - execution(* java.io.BufferedReader.mark(int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedReader close method - pointcut bufferedReaderCloseMethod() : - execution(* java.io.BufferedReader.close(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedWriter write methods - pointcut bufferedWriterWriteMethods() : - (execution(* java.io.BufferedWriter.write(..)) || - execution(* java.io.BufferedWriter.flush()) || - execution(* java.io.BufferedWriter.newLine())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for BufferedWriter close method - pointcut bufferedWriterCloseMethod() : - execution(* java.io.BufferedWriter.close(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ByteArrayOutputStream constructors - pointcut byteArrayOutputStreamConstructors() : - execution(java.io.ByteArrayOutputStream.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ByteArrayOutputStream write methods - pointcut byteArrayOutputStreamWriteMethods() : - (execution(* java.io.ByteArrayOutputStream.writeBytes(..)) || - execution(* java.io.ByteArrayOutputStream.writeTo(java.io.OutputStream))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for CharArrayReader read methods - pointcut charArrayReaderReadMethods() : - (execution(* java.io.CharArrayReader.read(..)) || - execution(* java.io.CharArrayReader.ready()) || - execution(* java.io.CharArrayReader.mark(int)) || - execution(* java.io.CharArrayReader.reset()) || - execution(* java.io.CharArrayReader.skip(long))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for CharArrayWriter writeTo method - pointcut charArrayWriterWriteToMethod() : - execution(* java.io.CharArrayWriter.writeTo(java.io.Writer)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DataInputStream read methods - pointcut dataInputStreamReadMethods() : - (execution(* java.io.DataInputStream.read(..)) || - execution(* java.io.DataInputStream.readBoolean()) || - execution(* java.io.DataInputStream.readByte()) || - execution(* java.io.DataInputStream.readChar()) || - execution(* java.io.DataInputStream.readDouble()) || - execution(* java.io.DataInputStream.readFloat()) || - execution(* java.io.DataInputStream.readFully(..)) || - execution(* java.io.DataInputStream.readInt()) || - execution(* java.io.DataInputStream.readLine()) || - execution(* java.io.DataInputStream.readLong()) || - execution(* java.io.DataInputStream.readShort()) || - execution(* java.io.DataInputStream.readUTF()) || - execution(* java.io.DataInputStream.readUnsignedByte()) || - execution(* java.io.DataInputStream.readUnsignedShort()) || - execution(* java.io.DataInputStream.skipBytes(int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DataOutputStream constructors - pointcut dataOutputStreamConstructors() : - execution(java.io.DataOutputStream.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DataOutputStream write methods - pointcut dataOutputStreamWriteMethods() : - (execution(* java.io.DataOutputStream.write(..)) || - execution(* java.io.DataOutputStream.writeBoolean(boolean)) || - execution(* java.io.DataOutputStream.writeByte(int)) || - execution(* java.io.DataOutputStream.writeBytes(java.lang.String)) || - execution(* java.io.DataOutputStream.writeChar(int)) || - execution(* java.io.DataOutputStream.writeChars(java.lang.String)) || - execution(* java.io.DataOutputStream.writeDouble(double)) || - execution(* java.io.DataOutputStream.writeFloat(float)) || - execution(* java.io.DataOutputStream.writeInt(int)) || - execution(* java.io.DataOutputStream.writeLong(long)) || - execution(* java.io.DataOutputStream.writeShort(int)) || - execution(* java.io.DataOutputStream.writeUTF(java.lang.String)) || - execution(* java.io.DataOutputStream.flush())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for File execute methods - pointcut fileExecuteMethods() : - (execution(* java.io.File.canExecute()) || - execution(* java.io.File.setExecutable(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for File read methods - pointcut fileReadMethods() : - (execution(* java.io.File.canRead()) || - execution(* java.io.File.getCanonicalFile()) || - execution(* java.io.File.getCanonicalPath()) || - execution(* java.io.File.getFreeSpace()) || - execution(* java.io.File.getTotalSpace()) || - execution(* java.io.File.getUsableSpace()) || - execution(* java.io.File.isDirectory()) || - execution(* java.io.File.isFile()) || - execution(* java.io.File.isHidden()) || - execution(* java.io.File.lastModified()) || - execution(* java.io.File.length()) || - execution(* java.io.File.list(..)) || - execution(* java.io.File.listFiles(..)) || - execution(* java.io.File.exists())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for File write methods - pointcut fileWriteMethods() : - (execution(* java.io.File.canWrite()) || - execution(* java.io.File.createNewFile()) || - execution(* java.io.File.createTempFile(..)) || - execution(* java.io.File.setLastModified(long)) || - execution(* java.io.File.setReadOnly()) || - execution(* java.io.File.setReadable(..)) || - execution(* java.io.File.setWritable(..)) || - execution(* java.io.File.mkdir()) || - execution(* java.io.File.mkdirs()) || - execution(* java.io.File.renameTo(java.io.File))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for File delete methods - pointcut fileDeleteMethods() : - (execution(* java.io.File.delete()) || - execution(* java.io.File.deleteOnExit())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for File conversion methods - pointcut fileConversionMethods() : - (execution(* java.io.File.toPath()) || - execution(* java.io.File.toURI()) || - execution(* java.io.File.toURL())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileInputStream read methods - pointcut fileInputStreamReadMethods() : - (execution(* java.io.FileInputStream.readAllBytes()) || - execution(* java.io.FileInputStream.readNBytes(int)) || - execution(* java.io.FileInputStream.transferTo(java.io.OutputStream))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileInputStream resource methods - pointcut fileInputStreamResourceMethods() : - (execution(* java.io.FileInputStream.getChannel()) || - execution(* java.io.FileInputStream.getFD()) || - execution(* java.io.FileInputStream.close())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileOutputStream write methods - pointcut fileOutputStreamWriteMethods() : - (execution(* java.io.FileOutputStream.write(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileOutputStream resource methods - pointcut fileOutputStreamResourceMethods() : - (execution(* java.io.FileOutputStream.getChannel()) || - execution(* java.io.FileOutputStream.getFD()) || - execution(* java.io.FileOutputStream.close())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileReader read methods - pointcut fileReaderReadMethods() : - (execution(* java.io.FileReader.read(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileWriter write methods - pointcut fileWriterWriteMethods() : - (execution(* java.io.FileWriter.write(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FilterInputStream read methods - pointcut filterInputStreamReadMethods() : - (execution(* java.io.FilterInputStream.read(..)) || - execution(* java.io.FilterInputStream.skip(long)) || - execution(* java.io.FilterInputStream.available())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FilterInputStream resource methods - pointcut filterInputStreamResourceMethods() : - (execution(* java.io.FilterInputStream.close()) || - execution(* java.io.FilterInputStream.reset())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FilterOutputStream write methods - pointcut filterOutputStreamWriteMethods() : - (execution(* java.io.FilterOutputStream.write(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FilterOutputStream resource methods - pointcut filterOutputStreamResourceMethods() : - (execution(* java.io.FilterOutputStream.close()) || - execution(* java.io.FilterOutputStream.flush())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FilterReader read methods - pointcut filterReaderReadMethods() : - (execution(* java.io.FilterReader.read(..)) || - execution(* java.io.FilterReader.skip(long)) || - execution(* java.io.FilterReader.ready())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FilterReader resource methods - pointcut filterReaderResourceMethods() : - (execution(* java.io.FilterReader.close()) || - execution(* java.io.FilterReader.mark(int)) || - execution(* java.io.FilterReader.reset())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FilterWriter write methods - pointcut filterWriterWriteMethods() : - (execution(* java.io.FilterWriter.write(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FilterWriter resource methods - pointcut filterWriterResourceMethods() : - (execution(* java.io.FilterWriter.close()) || - execution(* java.io.FilterWriter.flush())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for InputStream read methods - pointcut inputStreamReadMethods() : - (execution(* java.io.InputStream.read(..)) || - execution(* java.io.InputStream.skip(long)) || - execution(* java.io.InputStream.reset()) || - execution(* java.io.InputStream.transferTo(java.io.OutputStream))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for InputStreamReader read methods - pointcut inputStreamReaderReadMethods() : - (execution(* java.io.InputStreamReader.read(..)) || - execution(* java.io.InputStreamReader.ready())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for InputStreamReader resource methods - pointcut inputStreamReaderResourceMethods() : - (execution(* java.io.InputStreamReader.close())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for LineNumberInputStream read methods - pointcut lineNumberInputStreamReadMethods() : - (execution(* java.io.LineNumberInputStream.read(..)) || - execution(* java.io.LineNumberInputStream.skip(long)) || - execution(* java.io.LineNumberInputStream.reset())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for LineNumberReader read methods - pointcut lineNumberReaderReadMethods() : - (execution(* java.io.LineNumberReader.read(..)) || - execution(* java.io.LineNumberReader.readLine()) || - execution(* java.io.LineNumberReader.ready())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for LineNumberReader resource methods - pointcut lineNumberReaderResourceMethods() : - (execution(* java.io.LineNumberReader.close()) || - execution(* java.io.LineNumberReader.mark(int)) || - execution(* java.io.LineNumberReader.reset())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ObjectInputStream read methods - pointcut objectInputStreamReadMethods() : - (execution(* java.io.ObjectInputStream.read(..)) || - execution(* java.io.ObjectInputStream.readBoolean()) || - execution(* java.io.ObjectInputStream.readByte()) || - execution(* java.io.ObjectInputStream.readChar()) || - execution(* java.io.ObjectInputStream.readDouble()) || - execution(* java.io.ObjectInputStream.readFields()) || - execution(* java.io.ObjectInputStream.readFloat()) || - execution(* java.io.ObjectInputStream.readFully(..)) || - execution(* java.io.ObjectInputStream.readInt()) || - execution(* java.io.ObjectInputStream.readLine()) || - execution(* java.io.ObjectInputStream.readLong()) || - execution(* java.io.ObjectInputStream.readObject()) || - execution(* java.io.ObjectInputStream.readShort()) || - execution(* java.io.ObjectInputStream.readUTF()) || - execution(* java.io.ObjectInputStream.readUnshared()) || - execution(* java.io.ObjectInputStream.readUnsignedByte()) || - execution(* java.io.ObjectInputStream.readUnsignedShort()) || - execution(* java.io.ObjectInputStream.skipBytes(int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ObjectInputStream resource methods - pointcut objectInputStreamResourceMethods() : - (execution(* java.io.ObjectInputStream.close()) || - execution(* java.io.ObjectInputStream.available()) || - execution(* java.io.ObjectInputStream.defaultReadObject()) || - execution(* java.io.ObjectInputStream.registerValidation(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ObjectOutputStream write methods - pointcut objectOutputStreamWriteMethods() : - (execution(* java.io.ObjectOutputStream.write(..)) || - execution(* java.io.ObjectOutputStream.writeBoolean(boolean)) || - execution(* java.io.ObjectOutputStream.writeByte(int)) || - execution(* java.io.ObjectOutputStream.writeBytes(java.lang.String)) || - execution(* java.io.ObjectOutputStream.writeChar(int)) || - execution(* java.io.ObjectOutputStream.writeChars(java.lang.String)) || - execution(* java.io.ObjectOutputStream.writeDouble(double)) || - execution(* java.io.ObjectOutputStream.writeFields()) || - execution(* java.io.ObjectOutputStream.writeFloat(float)) || - execution(* java.io.ObjectOutputStream.writeInt(int)) || - execution(* java.io.ObjectOutputStream.writeLong(long)) || - execution(* java.io.ObjectOutputStream.writeObject(java.lang.Object)) || - execution(* java.io.ObjectOutputStream.writeShort(int)) || - execution(* java.io.ObjectOutputStream.writeUTF(java.lang.String)) || - execution(* java.io.ObjectOutputStream.writeUnshared(java.lang.Object))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ObjectOutputStream resource methods - pointcut objectOutputStreamResourceMethods() : - (execution(* java.io.ObjectOutputStream.close()) || - execution(* java.io.ObjectOutputStream.defaultWriteObject()) || - execution(* java.io.ObjectOutputStream.flush()) || - execution(* java.io.ObjectOutputStream.putFields()) || - execution(* java.io.ObjectOutputStream.reset())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for OutputStream write methods - pointcut outputStreamWriteMethods() : - (execution(* java.io.OutputStream.write(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for OutputStream resource methods - pointcut outputStreamResourceMethods() : - (execution(* java.io.OutputStream.nullOutputStream()) || - execution(* java.io.OutputStreamWriter.close()) || - execution(* java.io.OutputStreamWriter.flush())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PipedInputStream read methods - pointcut pipedInputStreamReadMethods() : - (execution(* java.io.PipedInputStream.read(..)) || - execution(* java.io.PipedInputStream.read(byte[], int, int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PipedOutputStream write methods - pointcut pipedOutputStreamWriteMethods() : - (execution(* java.io.PipedOutputStream.write(..)) || - execution(* java.io.PipedOutputStream.write(int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PipedReader read methods - pointcut pipedReaderReadMethods() : - (execution(* java.io.PipedReader.read(..)) || - execution(* java.io.PipedReader.read(char[], int, int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PipedWriter write methods - pointcut pipedWriterWriteMethods() : - (execution(* java.io.PipedWriter.write(..)) || - execution(* java.io.PipedWriter.write(int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PrintStream write methods - pointcut printStreamWriteMethods() : - (execution(* java.io.PrintStream.write(..)) || - execution(* java.io.PrintStream.print(..)) || - execution(* java.io.PrintStream.println(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PipedInputStream read methods - pointcut pipedInputStreamReadMethods() : - (execution(* java.io.PipedInputStream.read(..)) || - execution(* java.io.PipedInputStream.read(byte[], int, int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PipedOutputStream write methods - pointcut pipedOutputStreamWriteMethods() : - (execution(* java.io.PipedOutputStream.write(..)) || - execution(* java.io.PipedOutputStream.write(int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PipedReader read methods - pointcut pipedReaderReadMethods() : - (execution(* java.io.PipedReader.read(..)) || - execution(* java.io.PipedReader.read(char[], int, int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PipedWriter write methods - pointcut pipedWriterWriteMethods() : - (execution(* java.io.PipedWriter.write(..)) || - execution(* java.io.PipedWriter.write(int))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PrintStream write methods - pointcut printStreamWriteMethods() : - (execution(* java.io.PrintStream.write(..)) || - execution(* java.io.PrintStream.print(..)) || - execution(* java.io.PrintStream.println(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PrintWriter write methods - pointcut printWriterWriteMethods() : - (execution(* java.io.PrintWriter.write(..)) || - execution(* java.io.PrintWriter.print(..)) || - execution(* java.io.PrintWriter.println(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PushbackInputStream read methods - pointcut pushbackInputStreamReadMethods() : - (execution(* java.io.PushbackInputStream.read(..)) || - execution(* java.io.PushbackInputStream.transferTo(..)) || - execution(* java.io.PushbackInputStream.unread(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for PushbackReader read methods - pointcut pushbackReaderReadMethods() : - (execution(* java.io.PushbackReader.read(..)) || - execution(* java.io.PushbackReader.unread(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for RandomAccessFile read methods - pointcut randomAccessFileReadMethods() : - (execution(* java.io.RandomAccessFile.read(..)) || - execution(* java.io.RandomAccessFile.readFully(..)) || - execution(* java.io.RandomAccessFile.readLine()) || - execution(* java.io.RandomAccessFile.readUnsignedByte()) || - execution(* java.io.RandomAccessFile.readUnsignedShort()) || - execution(* java.io.RandomAccessFile.seek(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for RandomAccessFile write methods - pointcut randomAccessFileWriteMethods() : - execution(* java.io.RandomAccessFile.writeUTF(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Reader read methods - pointcut readerReadMethods() : - (execution(* java.io.Reader.read(..)) || - execution(* java.io.Reader.mark(..)) || - execution(* java.io.Reader.reset(..)) || - execution(* java.io.Reader.skip(..)) || - execution(* java.io.Reader.transferTo(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SequenceInputStream read methods - pointcut sequenceInputStreamReadMethods() : - (execution(* java.io.SequenceInputStream.read(..)) || - execution(* java.io.SequenceInputStream.available()) || - execution(* java.io.SequenceInputStream.close()) || - execution(* java.io.SequenceInputStream.transferTo(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for StringReader read methods - pointcut stringReaderReadMethods() : - (execution(* java.io.StringReader.read(..)) || - execution(* java.io.StringReader.mark(..)) || - execution(* java.io.StringReader.reset(..)) || - execution(* java.io.StringReader.skip(..)) || - execution(* java.io.StringReader.ready())) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Writer write methods - pointcut writerWriteMethods() : - (execution(* java.io.Writer.write(..)) || - execution(* java.io.Writer.append(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Authenticator read methods - pointcut authenticatorReadMethods() : - (execution(* java.net.Authenticator.getDefault(..)) || - execution(* java.net.Authenticator.requestPasswordAuthentication(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Authenticator write methods - pointcut authenticatorWriteMethods() : - execution(* java.net.Authenticator.setDefault(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DatagramSocket initialization methods - pointcut datagramSocketInitMethods() : - execution(java.net.DatagramSocket.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DatagramSocket write methods - pointcut datagramSocketWriteMethods() : - execution(* java.net.DatagramSocket.setDatagramSocketImplFactory(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for HttpURLConnection read methods - pointcut httpURLConnectionReadMethods() : - (execution(* java.net.HttpURLConnection.getHeaderFieldDate(..)) || - execution(* java.net.HttpURLConnection.getPermission(..)) || - execution(* java.net.HttpURLConnection.getResponseCode(..)) || - execution(* java.net.HttpURLConnection.getResponseMessage(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for HttpURLConnection write methods - pointcut httpURLConnectionWriteMethods() : - execution(* java.net.HttpURLConnection.setRequestMethod(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for IDN read methods - pointcut idnReadMethods() : - (execution(* java.net.IDN.toASCII(..)) || - execution(* java.net.IDN.toUnicode(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for InetAddress read methods - pointcut inetAddressReadMethods() : - (execution(* java.net.Inet6Address.getByAddress(..)) || - execution(* java.net.InetAddress.getAllByName(..)) || - execution(* java.net.InetAddress.getByAddress(..)) || - execution(* java.net.InetAddress.getByName(..)) || - execution(* java.net.InetAddress.getCanonicalHostName(..)) || - execution(* java.net.InetAddress.getHostName(..)) || - execution(* java.net.InetAddress.getLocalHost(..)) || - execution(* java.net.InetSocketAddress.getHostName(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for JarURLConnection read methods - pointcut jarURLConnectionReadMethods() : - (execution(* java.net.JarURLConnection.getAttributes(..)) || - execution(* java.net.JarURLConnection.getCertificates(..)) || - execution(* java.net.JarURLConnection.getJarEntry(..)) || - execution(* java.net.JarURLConnection.getMainAttributes(..)) || - execution(* java.net.JarURLConnection.getManifest(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MulticastSocket read methods - pointcut multicastSocketReadMethods() : - (execution(* java.net.MulticastSocket.getInterface(..)) || - execution(* java.net.MulticastSocket.getLoopbackMode(..)) || - execution(* java.net.MulticastSocket.getNetworkInterface(..)) || - execution(* java.net.MulticastSocket.getTTL(..)) || - execution(* java.net.MulticastSocket.getTimeToLive(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for MulticastSocket write methods - pointcut multicastSocketWriteMethods() : - (execution(* java.net.MulticastSocket.setInterface(..)) || - execution(* java.net.MulticastSocket.setLoopbackMode(..)) || - execution(* java.net.MulticastSocket.setNetworkInterface(..)) || - execution(* java.net.MulticastSocket.setTTL(..)) || - execution(* java.net.MulticastSocket.setTimeToLive(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ServerSocket read methods - pointcut serverSocketReadMethods() : - (execution(* java.net.ServerSocket.accept(..)) || - execution(* java.net.ServerSocket.getInetAddress(..)) || - execution(* java.net.ServerSocket.getLocalPort(..)) || - execution(* java.net.ServerSocket.getLocalSocketAddress(..)) || - execution(* java.net.ServerSocket.getOption(..)) || - execution(* java.net.ServerSocket.getReceiveBufferSize(..)) || - execution(* java.net.ServerSocket.getReuseAddress(..)) || - execution(* java.net.ServerSocket.getSoTimeout(..)) || - execution(* java.net.ServerSocket.supportedOptions(..)) || - execution(* java.net.ServerSocket.toString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ServerSocket write methods - pointcut serverSocketWriteMethods() : - (execution(* java.net.ServerSocket.bind(..)) || - execution(* java.net.ServerSocket.close(..)) || - execution(* java.net.ServerSocket.setOption(..)) || - execution(* java.net.ServerSocket.setReceiveBufferSize(..)) || - execution(* java.net.ServerSocket.setReuseAddress(..)) || - execution(* java.net.ServerSocket.setSoTimeout(..)) || - execution(* java.net.ServerSocket.setSocketFactory(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Socket read methods - pointcut socketReadMethods() : - (execution(* java.net.Socket.getInetAddress(..)) || - execution(* java.net.Socket.getInputStream(..)) || - execution(* java.net.Socket.getKeepAlive(..)) || - execution(* java.net.Socket.getLocalAddress(..)) || - execution(* java.net.Socket.getLocalPort(..)) || - execution(* java.net.Socket.getLocalSocketAddress(..)) || - execution(* java.net.Socket.getOOBInline(..)) || - execution(* java.net.Socket.getOption(..)) || - execution(* java.net.Socket.getOutputStream(..)) || - execution(* java.net.Socket.getPort(..)) || - execution(* java.net.Socket.getReceiveBufferSize(..)) || - execution(* java.net.Socket.getRemoteSocketAddress(..)) || - execution(* java.net.Socket.getReuseAddress(..)) || - execution(* java.net.Socket.getSendBufferSize(..)) || - execution(* java.net.Socket.getSoLinger(..)) || - execution(* java.net.Socket.getSoTimeout(..)) || - execution(* java.net.Socket.getTcpNoDelay(..)) || - execution(* java.net.Socket.getTrafficClass(..)) || - execution(* java.net.Socket.supportedOptions(..)) || - execution(* java.net.Socket.toString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Socket write methods - pointcut socketWriteMethods() : - (execution(* java.net.Socket.bind(..)) || - execution(* java.net.Socket.close(..)) || - execution(* java.net.Socket.connect(..)) || - execution(* java.net.Socket.sendUrgentData(..)) || - execution(* java.net.Socket.setKeepAlive(..)) || - execution(* java.net.Socket.setOOBInline(..)) || - execution(* java.net.Socket.setOption(..)) || - execution(* java.net.Socket.setReceiveBufferSize(..)) || - execution(* java.net.Socket.setReuseAddress(..)) || - execution(* java.net.Socket.setSendBufferSize(..)) || - execution(* java.net.Socket.setSoLinger(..)) || - execution(* java.net.Socket.setSoTimeout(..)) || - execution(* java.net.Socket.setSocketImplFactory(..)) || - execution(* java.net.Socket.setTcpNoDelay(..)) || - execution(* java.net.Socket.setTrafficClass(..)) || - execution(* java.net.Socket.shutdownInput(..)) || - execution(* java.net.Socket.shutdownOutput(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for URI read methods - pointcut uriReadMethods() : - (execution(* java.net.URI.getRawSchemeSpecificPart(..)) || - execution(* java.net.URI.getSchemeSpecificPart(..)) || - execution(* java.net.URI.parseServerAuthority(..)) || - execution(* java.net.URI.resolve(..)) || - execution(* java.net.URI.toASCIIString(..)) || - execution(* java.net.URI.toURL(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for URL read methods - pointcut urlReadMethods() : - (execution(* java.net.URL.getContent(..)) || - execution(* java.net.URL.hashCode(..)) || - execution(* java.net.URL.openConnection(..)) || - execution(* java.net.URL.openStream(..)) || - execution(* java.net.URL.sameFile(..)) || - execution(* java.net.URL.toURI(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for URLClassLoader read methods - pointcut urlClassLoaderReadMethods() : - (execution(* java.net.URLClassLoader.findResource(..)) || - execution(* java.net.URLClassLoader.getResourceAsStream(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for URLConnection read methods - pointcut urlConnectionReadMethods() : - (execution(* java.net.URLConnection.getContent(..)) || - execution(* java.net.URLConnection.getContentEncoding(..)) || - execution(* java.net.URLConnection.getContentLength(..)) || - execution(* java.net.URLConnection.getContentLengthLong(..)) || - execution(* java.net.URLConnection.getContentType(..)) || - execution(* java.net.URLConnection.getDate(..)) || - execution(* java.net.URLConnection.getExpiration(..)) || - execution(* java.net.URLConnection.getHeaderFieldDate(..)) || - execution(* java.net.URLConnection.getHeaderFieldInt(..)) || - execution(* java.net.URLConnection.getHeaderFieldLong(..)) || - execution(* java.net.URLConnection.getInputStream(..)) || - execution(* java.net.URLConnection.getLastModified(..)) || - execution(* java.net.URLConnection.guessContentTypeFromStream(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for HttpRequest$BodyPublishers write methods - pointcut httpRequestBodyPublishersWriteMethods() : - execution(* java.net.http.HttpRequest$BodyPublishers.ofFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for HttpResponse$BodyHandlers read methods - pointcut httpResponseBodyHandlersReadMethods() : - (execution(* java.net.http.HttpResponse$BodyHandlers.ofFile(..)) || - execution(* java.net.http.HttpResponse$BodyHandlers.ofFileDownload(..)) || - execution(* java.net.http.HttpResponse$BodyHandlers.ofPublisher(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for HttpResponse$BodySubscribers read methods - pointcut httpResponseBodySubscribersReadMethods() : - (execution(* java.net.http.HttpResponse$BodySubscribers.ofFile(..)) || - execution(* java.net.http.HttpResponse$BodySubscribers.ofPublisher(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AsynchronousSocketChannel write methods - pointcut asynchronousSocketChannelWriteMethods() : - execution(* java.nio.channels.AsynchronousSocketChannel.write(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AsynchronousSocketChannel read methods - pointcut asynchronousSocketChannelReadMethods() : - execution(* java.nio.channels.AsynchronousSocketChannel.read(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileChannel write methods - pointcut fileChannelWriteMethods() : - execution(* java.nio.channels.FileChannel.write(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileChannel read methods - pointcut fileChannelReadMethods() : - execution(* java.nio.channels.FileChannel.read(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SelectableChannel register methods - pointcut selectableChannelRegisterMethods() : - execution(* java.nio.channels.SelectableChannel.register(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ServerSocketChannel bind methods - pointcut serverSocketChannelBindMethods() : - execution(* java.nio.channels.ServerSocketChannel.bind(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for ServerSocketChannel setOption methods - pointcut serverSocketChannelSetOptionMethods() : - execution(* java.nio.channels.ServerSocketChannel.setOption(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SocketChannel bind methods - pointcut socketChannelBindMethods() : - execution(* java.nio.channels.SocketChannel.bind(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SocketChannel open methods - pointcut socketChannelOpenMethods() : - execution(* java.nio.channels.SocketChannel.open(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SocketChannel read methods - pointcut socketChannelReadMethods() : - execution(* java.nio.channels.SocketChannel.read(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SocketChannel setOption methods - pointcut socketChannelSetOptionMethods() : - execution(* java.nio.channels.SocketChannel.setOption(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for SocketChannel write methods - pointcut socketChannelWriteMethods() : - execution(* java.nio.channels.SocketChannel.write(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AccessDeniedException constructors - pointcut accessDeniedExceptionInitMethods() : - execution(* java.nio.file.AccessDeniedException.(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for AtomicMoveNotSupportedException constructors - pointcut atomicMoveNotSupportedExceptionInitMethods() : - execution(* java.nio.file.AtomicMoveNotSupportedException.(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for DirectoryNotEmptyException constructors - pointcut directoryNotEmptyExceptionInitMethods() : - execution(* java.nio.file.DirectoryNotEmptyException.(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileAlreadyExistsException constructors - pointcut fileAlreadyExistsExceptionInitMethods() : - execution(* java.nio.file.FileAlreadyExistsException.(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileSystemException constructors - pointcut fileSystemExceptionInitMethods() : - execution(* java.nio.file.FileSystemException.(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileSystemLoopException constructors - pointcut fileSystemLoopExceptionInitMethods() : - execution(* java.nio.file.FileSystemLoopException.(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileSystems getFileSystem methods - pointcut fileSystemsGetFileSystemMethods() : - execution(* java.nio.file.FileSystems.getFileSystem(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for FileSystems newFileSystem methods - pointcut fileSystemsNewFileSystemMethods() : - execution(* java.nio.file.FileSystems.newFileSystem(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files copy methods - pointcut filesCopyMethods() : - execution(* java.nio.file.Files.copy(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files create methods - pointcut filesCreateMethods() : - execution(* java.nio.file.Files.create*(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files delete methods - pointcut filesDeleteMethods() : - execution(* java.nio.file.Files.delete(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files deleteIfExists methods - pointcut filesDeleteIfExistsMethods() : - execution(* java.nio.file.Files.deleteIfExists(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files exists methods - pointcut filesExistsMethods() : - execution(* java.nio.file.Files.exists(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files find methods - pointcut filesFindMethods() : - execution(* java.nio.file.Files.find(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files getAttribute methods - pointcut filesGetAttributeMethods() : - execution(* java.nio.file.Files.getAttribute(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files getFileStore methods - pointcut filesGetFileStoreMethods() : - execution(* java.nio.file.Files.getFileStore(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files getLastModifiedTime methods - pointcut filesGetLastModifiedTimeMethods() : - execution(* java.nio.file.Files.getLastModifiedTime(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files getPosixFilePermissions methods - pointcut filesGetPosixFilePermissionsMethods() : - execution(* java.nio.file.Files.getPosixFilePermissions(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files isDirectory methods - pointcut filesIsDirectoryMethods() : - execution(* java.nio.file.Files.isDirectory(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files isExecutable methods - pointcut filesIsExecutableMethods() : - execution(* java.nio.file.Files.isExecutable(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files isReadable methods - pointcut filesIsReadableMethods() : - execution(* java.nio.file.Files.isReadable(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files isRegularFile methods - pointcut filesIsRegularFileMethods() : - execution(* java.nio.file.Files.isRegularFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files isSameFile methods - pointcut filesIsSameFileMethods() : - execution(* java.nio.file.Files.isSameFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files isSymbolicLink methods - pointcut filesIsSymbolicLinkMethods() : - execution(* java.nio.file.Files.isSymbolicLink(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files isWritable methods - pointcut filesIsWritableMethods() : - execution(* java.nio.file.Files.isWritable(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files lines methods - pointcut filesLinesMethods() : - execution(* java.nio.file.Files.lines(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files list methods - pointcut filesListMethods() : - execution(* java.nio.file.Files.list(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files mismatch methods - pointcut filesMismatchMethods() : - execution(* java.nio.file.Files.mismatch(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files move methods - pointcut filesMoveMethods() : - execution(* java.nio.file.Files.move(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files newBufferedReader methods - pointcut filesNewBufferedReaderMethods() : - execution(* java.nio.file.Files.newBufferedReader(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files newBufferedWriter methods - pointcut filesNewBufferedWriterMethods() : - execution(* java.nio.file.Files.newBufferedWriter(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files newByteChannel methods - pointcut filesNewByteChannelMethods() : - execution(* java.nio.file.Files.newByteChannel(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files newDirectoryStream methods - pointcut filesNewDirectoryStreamMethods() : - execution(* java.nio.file.Files.newDirectoryStream(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files newInputStream methods - pointcut filesNewInputStreamMethods() : - execution(* java.nio.file.Files.newInputStream(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files newOutputStream methods - pointcut filesNewOutputStreamMethods() : - execution(* java.nio.file.Files.newOutputStream(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files notExists methods - pointcut filesNotExistsMethods() : - execution(* java.nio.file.Files.notExists(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files probeContentType methods - pointcut filesProbeContentTypeMethods() : - execution(* java.nio.file.Files.probeContentType(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files readAllBytes methods - pointcut filesReadAllBytesMethods() : - execution(* java.nio.file.Files.readAllBytes(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files readAllLines methods - pointcut filesReadAllLinesMethods() : - execution(* java.nio.file.Files.readAllLines(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files readAttributes methods - pointcut filesReadAttributesMethods() : - execution(* java.nio.file.Files.readAttributes(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files readString methods - pointcut filesReadStringMethods() : - execution(* java.nio.file.Files.readString(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files readSymbolicLink methods - pointcut filesReadSymbolicLinkMethods() : - execution(* java.nio.file.Files.readSymbolicLink(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files setAttribute methods - pointcut filesSetAttributeMethods() : - execution(* java.nio.file.Files.setAttribute(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files size methods - pointcut filesSizeMethods() : - execution(* java.nio.file.Files.size(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files walk methods - pointcut filesWalkMethods() : - execution(* java.nio.file.Files.walk(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files walkFileTree methods - pointcut filesWalkFileTreeMethods() : - execution(* java.nio.file.Files.walkFileTree(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files write methods - pointcut filesWriteMethods() : - execution(* java.nio.file.Files.write(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.Files writeString methods - pointcut filesWriteStringMethods() : - execution(* java.nio.file.Files.writeString(..)) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for java.nio.file.LinkPermission constructors - pointcut linkPermissionMethods() : - execution(java.nio.file.LinkPermission.new(String)) || - execution(java.nio.file.LinkPermission.new(String, String)); - - // Pointcut for java.nio.file.NoSuchFileException constructors - pointcut noSuchFileExceptionMethods() : - execution(java.nio.file.NoSuchFileException.new(String)) || - execution(java.nio.file.NoSuchFileException.new(String, String, String)); - - // Pointcut for java.nio.file.NotDirectoryException constructors - pointcut notDirectoryExceptionMethods() : - execution(java.nio.file.NotDirectoryException.new(String)); - - // Pointcut for java.nio.file.NotLinkException constructors - pointcut notLinkExceptionMethods() : - execution(java.nio.file.NotLinkException.new(String)) || - execution(java.nio.file.NotLinkException.new(String, String, String)); - - // Pointcut for java.nio.file.Path methods - pointcut pathMethods() : - execution(* java.nio.file.Path.endsWith(String)) || - execution(* java.nio.file.Path.of(String, String[])) || - execution(* java.nio.file.Path.of(java.net.URI)) || - execution(* java.nio.file.Path.resolve(String)) || - execution(* java.nio.file.Path.resolveSibling(String)) || - execution(* java.nio.file.Path.startsWith(String)); - - // Pointcut for java.nio.file.Paths methods - pointcut pathsMethods() : - execution(* java.nio.file.Paths.get(String, String[])) || - execution(* java.nio.file.Paths.get(java.net.URI)); - - // Pointcut for java.nio.file.attribute.UserPrincipalNotFoundException constructor - pointcut userPrincipalNotFoundExceptionMethods() : - execution(java.nio.file.attribute.UserPrincipalNotFoundException.new(String)); - - // Pointcut for java.nio.file.spi.FileSystemProvider methods - pointcut fileSystemProviderMethods() : - execution(* java.nio.file.spi.FileSystemProvider.deleteIfExists(java.nio.file.Path)) || - execution(* java.nio.file.spi.FileSystemProvider.exists(java.nio.file.Path, java.nio.file.LinkOption[])) || - execution(* java.nio.file.spi.FileSystemProvider.newInputStream(java.nio.file.Path, java.nio.file.OpenOption[])) || - execution(* java.nio.file.spi.FileSystemProvider.newOutputStream(java.nio.file.Path, java.nio.file.OpenOption[])) || - execution(* java.nio.file.spi.FileSystemProvider.readAttributesIfExists(java.nio.file.Path, Class, java.nio.file.LinkOption[])); + pointcut unixToolkitLoadGtkMethods() : + call(* sun.awt.UNIXToolkit.load_gtk(..)) || + call(* sun.awt.UNIXToolkit.load_gtk_icon(..)) || + call(* sun.awt.UNIXToolkit.unload_gtk(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut xDesktopPeerInitMethods() : + call(* sun.awt.X11.XDesktopPeer.init(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut xRobotPeerLoadNativeLibrariesMethods() : + call(* sun.awt.X11.XRobotPeer.loadNativeLibraries(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut xTaskbarPeerInitMethods() : + call(* sun.awt.X11.XTaskbarPeer.init(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut gifImageDecoderParseImageMethods() : + call(* sun.awt.image.GifImageDecoder.parseImage(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut jpegImageDecoderReadImageMethod() : + call(* sun.awt.image.JPEGImageDecoder.readImage(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut cupsPrinterInitIDsMethod() : + call(* sun.print.CUPSPrinter.initIDs(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut consoleEchoAndIsttyMethods() : + call(* java.io.Console.echo(..)) || + call(* java.io.Console.istty(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileInputStreamReadMethods() : + call(* java.io.FileInputStream.read(..)) || + call(* java.io.FileInputStream.available(..)) || + call(* java.io.FileInputStream.getFD(..)) || + call(* java.io.FileInputStream.getChannel(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileInputStreamSkipMethods() : + call(* java.io.FileInputStream.skip(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileInputStreamCloseMethods() : + call(* java.io.FileInputStream.close(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileOutputStreamWriteMethods() : + call(* java.io.FileOutputStream.write(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileOutputStreamCloseMethods() : + call(* java.io.FileOutputStream.close(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileOutputStreamGetChannelMethods() : + call(* java.io.FileOutputStream.getChannel(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileDescriptorSyncMethods() : + call(* java.io.FileDescriptor.sync(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileDescriptorCloseMethods() : + call(* java.io.FileDescriptor.close(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileCleanableCleanupMethods() : + call(* java.io.FileCleanable.cleanup(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut randomAccessFileReadMethods() : + call(* java.io.RandomAccessFile.read(..)) || + call(* java.io.RandomAccessFile.readBytes(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut randomAccessFileWriteMethods() : + call(* java.io.RandomAccessFile.write(..)) || + call(* java.io.RandomAccessFile.writeBytes(..)) || + call(* java.io.RandomAccessFile.setLength(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut randomAccessFileSeekLengthMethods() : + call(* java.io.RandomAccessFile.seek(..)) || + call(* java.io.RandomAccessFile.getFilePointer(..)) || + call(* java.io.RandomAccessFile.length(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut randomAccessFileOpenMethods() : + call(java.io.RandomAccessFile.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemReadMethods() : + call(* java.io.UnixFileSystem.canonicalize(..)) || + call(* java.io.UnixFileSystem.checkAccess(..)) || + call(* java.io.UnixFileSystem.getBooleanAttributes(..)) || + call(* java.io.UnixFileSystem.getLastModifiedTime(..)) || + call(* java.io.UnixFileSystem.getLength(..)) || + call(* java.io.UnixFileSystem.getNameMax(..)) || + call(* java.io.UnixFileSystem.getSpace(..)) || + call(* java.io.UnixFileSystem.list(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemWriteMethods() : + call(* java.io.UnixFileSystem.createDirectory(..)) || + call(* java.io.UnixFileSystem.createFileExclusively(..)) || + call(* java.io.UnixFileSystem.setLastModifiedTime(..)) || + call(* java.io.UnixFileSystem.setPermission(..)) || + call(* java.io.UnixFileSystem.setReadOnly(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemDeleteMethods() : + call(* java.io.UnixFileSystem.delete(..)) || + call(* java.io.UnixFileSystem.rename(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut nativeImageBufferMethods() : + call(* jdk.internal.jimage.NativeImageBuffer.getNativeMap(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut nativeLibrariesMethods() : + call(* jdk.internal.loader.NativeLibraries.findBuiltinLib(..)) || + call(* jdk.internal.loader.NativeLibraries.load(..)) || + call(* jdk.internal.loader.NativeLibraries.unload(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut cdsMethods() : + call(* jdk.internal.misc.CDS.dumpClassList(..)) || + call(* jdk.internal.misc.CDS.dumpDynamicArchive(..)) || + call(* jdk.internal.misc.CDS.isDumpingClassList(..)) || + call(* jdk.internal.misc.CDS.logLambdaFormInvoker(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut epollMethods() : + call(* sun.nio.ch.EPoll.create(..)) || + call(* sun.nio.ch.EPoll.ctl(..)) || + call(* sun.nio.ch.EPoll.wait(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileChannelImplReadMethods() : + call(* sun.nio.ch.FileChannelImpl.unmap(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileChannelImplWriteMethods() : + call(* sun.nio.ch.FileChannelImpl.transferTo(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileDispatcherImplReadMethods() : + call(* sun.nio.ch.FileDispatcherImpl.pread(..)) || + call(* sun.nio.ch.FileDispatcherImpl.read(..)) || + call(* sun.nio.ch.FileDispatcherImpl.readv(..)) || + call(* sun.nio.ch.FileDispatcherImpl.size(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileDispatcherImplWriteMethods() : + call(* sun.nio.ch.FileDispatcherImpl.force(..)) || + call(* sun.nio.ch.FileDispatcherImpl.pwrite(..)) || + call(* sun.nio.ch.FileDispatcherImpl.truncate(..)) || + call(* sun.nio.ch.FileDispatcherImpl.write(..)) || + call(* sun.nio.ch.FileDispatcherImpl.writev(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileDispatcherImplExecuteMethods() : + call(* sun.nio.ch.FileDispatcherImpl.close(..)) || + call(* sun.nio.ch.FileDispatcherImpl.closeIntFD(..)) || + call(* sun.nio.ch.FileDispatcherImpl.dup0(..)) || + call(* sun.nio.ch.FileDispatcherImpl.lock(..)) || + call(* sun.nio.ch.FileDispatcherImpl.preClose(..)) || + call(* sun.nio.ch.FileDispatcherImpl.release(..)) || + call(* sun.nio.ch.FileDispatcherImpl.seek(..)) || + call(* sun.nio.ch.FileDispatcherImpl.setDirect0(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileKeyMethods() : + call(* sun.nio.ch.FileKey.init(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut inheritedChannelMethods() : + call(* sun.nio.ch.InheritedChannel.open(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut linuxNativeDispatcherMethods() : + call(* sun.nio.fs.LinuxNativeDispatcher.endmntent(..)) || + call(* sun.nio.fs.LinuxNativeDispatcher.getmntent(..)) || + call(* sun.nio.fs.LinuxNativeDispatcher.setmntent(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixCopyFileMethods() : + call(* sun.nio.fs.UnixCopyFile.transfer(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherAccessMethods() : call(* sun.nio.fs.UnixNativeDispatcher.access(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherChmodMethods() : call(* sun.nio.fs.UnixNativeDispatcher.chmod(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherChownMethods() : call(* sun.nio.fs.UnixNativeDispatcher.chown(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherCloseMethods() : call(* sun.nio.fs.UnixNativeDispatcher.close(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherClosedirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.closedir(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherDupMethods() : call(* sun.nio.fs.UnixNativeDispatcher.dup(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherExistsMethods() : call(* sun.nio.fs.UnixNativeDispatcher.exists(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFchmodMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fchmod(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFchownMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fchown(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFdopendirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fdopendir(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFgetxattrMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fgetxattr(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFlistxattrMethods() : call(* sun.nio.fs.UnixNativeDispatcher.flistxattr(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFremovexattrMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fremovexattr(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFsetxattrMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fsetxattr(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFstatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fstat(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFstatatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fstatat(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFutimensMethods() : call(* sun.nio.fs.UnixNativeDispatcher.futimens(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherFutimesMethods() : call(* sun.nio.fs.UnixNativeDispatcher.futimes(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherGetcwdMethods() : call(* sun.nio.fs.UnixNativeDispatcher.getcwd(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherGetlinelenMethods() : call(* sun.nio.fs.UnixNativeDispatcher.getlinelen(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherLchownMethods() : call(* sun.nio.fs.UnixNativeDispatcher.lchown(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherLinkMethods() : call(* sun.nio.fs.UnixNativeDispatcher.link(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherLstatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.lstat(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherLutimesMethods() : call(* sun.nio.fs.UnixNativeDispatcher.lutimes(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherMkdirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.mkdir(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherMknodMethods() : call(* sun.nio.fs.UnixNativeDispatcher.mknod(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherOpenMethods() : call(* sun.nio.fs.UnixNativeDispatcher.open(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherOpenatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.openat(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherOpendirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.opendir(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherReadMethods() : call(* sun.nio.fs.UnixNativeDispatcher.read(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherReaddirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.readdir(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherReadlinkMethods() : call(* sun.nio.fs.UnixNativeDispatcher.readlink(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherRealpathMethods() : call(* sun.nio.fs.UnixNativeDispatcher.realpath(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherRenameMethods() : call(* sun.nio.fs.UnixNativeDispatcher.rename(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherRenameatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.renameat(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherRewindMethods() : call(* sun.nio.fs.UnixNativeDispatcher.rewind(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherRmdirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.rmdir(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherStatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.stat(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherStat1Methods() : call(* sun.nio.fs.UnixNativeDispatcher.stat1(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherStatvfsMethods() : call(* sun.nio.fs.UnixNativeDispatcher.statvfs(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherSymlinkMethods() : call(* sun.nio.fs.UnixNativeDispatcher.symlink(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherUnlinkMethods() : call(* sun.nio.fs.UnixNativeDispatcher.unlink(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherUnlinkatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.unlinkat(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherUtimesMethods() : call(* sun.nio.fs.UnixNativeDispatcher.utimes(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixNativeDispatcherWriteMethods() : call(* sun.nio.fs.UnixNativeDispatcher.write(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut documentHandlerParseMethods() : call(* com.sun.beans.decoder.DocumentHandler.parse(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut templatesImplReadObjectMethods() : call(* com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl.readObject(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut xPathFactoryImplInitMethods() : call(com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut desktopMoveToTrashMethods() : call(* java.awt.Desktop.moveToTrash(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut desktopPrintMethods() : call(* java.awt.Desktop.print(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut desktopSetPrintFileHandlerMethods() : call(* java.awt.Desktop.setPrintFileHandler(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fontCheckFontFileMethods() : call(* java.awt.Font.checkFontFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut inputEventCanAccessSystemClipboardMethods() : call(* java.awt.event.InputEvent.canAccessSystemClipboard(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut introspectorSetBeanInfoSearchPathMethods() : call(* java.beans.Introspector.setBeanInfoSearchPath(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut propertyEditorManagerSetEditorSearchPathMethods() : call(* java.beans.PropertyEditorManager.setEditorSearchPath(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileTempDirectoryGenerateFileMethods() : call(* java.io.File$TempDirectory.generateFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileCanExecuteMethods() : call(* java.io.File.canExecute(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileCanReadMethods() : call(* java.io.File.canRead(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileCanWriteMethods() : call(* java.io.File.canWrite(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileCreateNewFileMethods() : call(* java.io.File.createNewFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileCreateTempFileMethods() : call(* java.io.File.createTempFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileDeleteMethods() : call(* java.io.File.delete(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileDeleteOnExitMethods() : call(* java.io.File.deleteOnExit(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileExistsMethods() : call(* java.io.File.exists(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileGetFreeSpaceMethods() : call(* java.io.File.getFreeSpace(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileGetTotalSpaceMethods() : call(* java.io.File.getTotalSpace(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileGetUsableSpaceMethods() : call(* java.io.File.getUsableSpace(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileIsDirectoryMethods() : call(* java.io.File.isDirectory(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileIsFileMethods() : call(* java.io.File.isFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileIsHiddenMethods() : call(* java.io.File.isHidden(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileLastModifiedMethods() : call(* java.io.File.lastModified(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileLengthMethods() : call(* java.io.File.length(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileMkdirMethods() : call(* java.io.File.mkdir(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileNormalizedListMethods() : call(* java.io.File.normalizedList(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileRenameToMethods() : call(* java.io.File.renameTo(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSetExecutableMethods() : call(* java.io.File.setExecutable(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSetLastModifiedMethods() : call(* java.io.File.setLastModified(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSetReadOnlyMethods() : call(* java.io.File.setReadOnly(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSetReadableMethods() : call(* java.io.File.setReadable(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSetWritableMethods() : call(* java.io.File.setWritable(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileInputStreamInitMethods() : call(java.io.FileInputStream.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileOutputStreamInitMethods() : call(java.io.FileOutputStream.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut objectInputFilterConfigMethods() : call(* java.io.ObjectInputFilter$Config.setSerialFilter(..)) || call(* java.io.ObjectInputFilter$Config.setSerialFilterFactory(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut objectInputStreamMethods() : call(java.io.ObjectInputStream.new(..)) || call(* java.io.ObjectInputStream.enableResolveObject(..)) || call(* java.io.ObjectInputStream.setObjectInputFilter(..)) || call(* java.io.ObjectInputStream.verifySubclass(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut objectOutputStreamMethods() : call(java.io.ObjectOutputStream.new(..)) || call(* java.io.ObjectOutputStream.enableReplaceObject(..)) || call(* java.io.ObjectOutputStream.verifySubclass(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut objectStreamClassMethods() : call(* java.io.ObjectStreamClass.forClass(..)) || call(* java.io.ObjectStreamClass.getProtectionDomains(..)) || call(* java.io.ObjectStreamField.getType(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut randomAccessFileInitMethods() : call(java.io.RandomAccessFile.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemMethods() : call(* java.io.UnixFileSystem.listRoots(..)) || call(* java.io.UnixFileSystem.resolve(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut urlInitMethods() : call(java.net.URL.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut urlSetURLStreamHandlerFactoryMethods() : call(* java.net.URL.setURLStreamHandlerFactory(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut urlConnectionSetFileNameMapMethods() : call(* java.net.URLConnection.setFileNameMap(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut urlStreamHandlerProviderCheckPermissionMethods() : call(* java.net.spi.URLStreamHandlerProvider.checkPermission(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileTreeWalkerGetAttributesMethods() : call(* java.nio.file.FileTreeWalker.getAttributes(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut tempFileHelperCreateMethods() : call(* java.nio.file.TempFileHelper.create(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemProviderCheckPermissionMethods() : call(* java.nio.file.spi.FileSystemProvider.checkPermission(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileTypeDetectorCheckPermissionMethods() : call(* java.nio.file.spi.FileTypeDetector.checkPermission(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut logStreamSetDefaultStreamMethods() : call(* java.rmi.server.LogStream.setDefaultStream(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut driverManagerSetLogStreamMethods() : call(* java.sql.DriverManager.setLogStream(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut driverManagerSetLogWriterMethods() : call(* java.sql.DriverManager.setLogWriter(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut zipFileInitMethods() : call(java.util.zip.ZipFile.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut streamPrintServiceFactoryRunMethods() : call(* javax.print.StreamPrintServiceFactory$1.run(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut xPathFactoryFinderCreateClassMethods() : call(* javax.xml.xpath.XPathFactoryFinder.createClass(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut jrtFileSystemProviderCheckPermissionMethods() : call(* jdk.internal.jrtfs.JrtFileSystemProvider.checkPermission(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut builtinClassLoaderFindClassMethods() : call(* jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut builtinClassLoaderFindResourceMethods() : call(* jdk.internal.loader.BuiltinClassLoader.findResourceAsStream(..)) || call(* jdk.internal.loader.BuiltinClassLoader.findResourceOnClassPath(..)) || call(* jdk.internal.loader.BuiltinClassLoader.findResourcesOnClassPath(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut urlClassPathJarLoaderCheckJarMethods() : call(* jdk.internal.loader.URLClassPath$JarLoader.checkJar(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut urlClassPathCheckMethods() : call(* jdk.internal.loader.URLClassPath.check(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut moduleReferencesExplodedModuleReaderInitMethods() : call(jdk.internal.module.ModuleReferences$ExplodedModuleReader.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut systemModuleFindersSystemModuleReaderCheckPermissionMethods() : call(* jdk.internal.module.SystemModuleFinders$SystemModuleReader.checkPermissionToConnect(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut requestPublishersFilePublisherCreateMethods() : call(* jdk.internal.net.http.RequestPublishers$FilePublisher.create(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut responseBodyHandlersFileDownloadBodyHandlerCreateMethods() : call(* jdk.internal.net.http.ResponseBodyHandlers$FileDownloadBodyHandler.create(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut responseBodyHandlersPathBodyHandlerCreateMethods() : call(* jdk.internal.net.http.ResponseBodyHandlers$PathBodyHandler.create(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut responseSubscribersPathSubscriberCreateMethods() : call(* jdk.internal.net.http.ResponseSubscribers$PathSubscriber.create(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut writeableUserPathDoPrivilegedIOMethods() : call(* jdk.jfr.internal.WriteableUserPath.doPrivilegedIO(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut readWriteSelectableChannelMethods() : call(* jdk.nio.Channels.readWriteSelectableChannel(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut jlinkInternalMainRunMethods() : call(* jdk.tools.jlink.internal.Main.run(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut dataTransfererCastToFilesMethods() : call(* sun.awt.datatransfer.DataTransferer.castToFiles(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileImageSourceInitMethods() : call(sun.awt.image.FileImageSource.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut imageConsumerQueueInitMethods() : call(sun.awt.image.ImageConsumerQueue.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut inputStreamImageSourceAddConsumerMethods() : call(* sun.awt.image.InputStreamImageSource.addConsumer(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut shellFolderManagerCheckFileMethods() : call(* sun.awt.shell.ShellFolderManager.checkFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut shellFolderManagerCheckFilesMethods() : call(* sun.awt.shell.ShellFolderManager.checkFiles(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileFontGetPublicFileNameMethods() : call(* sun.font.FileFont.getPublicFileName(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileServerHandlerInitMethods() : call(sun.net.httpserver.simpleserver.FileServerHandler.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut mimeTableSaveAsPropertiesMethods() : call(* sun.net.www.MimeTable.saveAsProperties(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut httpURLConnectionCheckURLFileMethods() : call(* sun.net.www.protocol.http.HttpURLConnection.checkURLFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut jarFileFactoryGetCachedJarFileMethods() : call(* sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut serverSocketChannelImplFinishAcceptMethods() : call(* sun.nio.ch.ServerSocketChannelImpl.finishAccept(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixAsynchronousServerSocketChannelImplFinishAcceptMethods() : call(* sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.finishAccept(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut abstractUserDefinedFileAttributeViewCheckAccessMethods() : call(* sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixChannelFactoryOpenMethods() : call(* sun.nio.fs.UnixChannelFactory.open(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileAttributeViewsPosixCheckReadExtendedMethods() : call(* sun.nio.fs.UnixFileAttributeViews$Posix.checkReadExtended(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileAttributeViewsPosixCheckWriteExtendedMethods() : call(* sun.nio.fs.UnixFileAttributeViews$Posix.checkWriteExtended(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystem1IteratorMethods() : call(* sun.nio.fs.UnixFileSystem$1.iterator(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemFileStoreIteratorReadNextMethods() : call(* sun.nio.fs.UnixFileSystem$FileStoreIterator.readNext(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemCopyMethods() : call(* sun.nio.fs.UnixFileSystem.copy(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemGetFileStoresMethods() : call(* sun.nio.fs.UnixFileSystem.getFileStores(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemMoveMethods() : call(* sun.nio.fs.UnixFileSystem.move(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemProviderCheckAccessMethods() : call(* sun.nio.fs.UnixFileSystemProvider.checkAccess(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemProviderCreateLinkMethods() : call(* sun.nio.fs.UnixFileSystemProvider.createLink(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemProviderCreateSymbolicLinkMethods() : call(* sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemProviderGetFileStoreMethods() : call(* sun.nio.fs.UnixFileSystemProvider.getFileStore(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixFileSystemProviderReadSymbolicLinkMethods() : call(* sun.nio.fs.UnixFileSystemProvider.readSymbolicLink(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixPathCheckDeleteMethods() : call(* sun.nio.fs.UnixPath.checkDelete(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixPathCheckReadMethods() : call(* sun.nio.fs.UnixPath.checkRead(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixPathCheckWriteMethods() : call(* sun.nio.fs.UnixPath.checkWrite(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixPathToAbsolutePathMethods() : call(* sun.nio.fs.UnixPath.toAbsolutePath(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixSecureDirectoryStreamBasicFileAttributeViewImplCheckWriteAccessMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream$BasicFileAttributeViewImpl.checkWriteAccess(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixSecureDirectoryStreamBasicFileAttributeViewImplReadAttributesMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream$BasicFileAttributeViewImpl.readAttributes(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixSecureDirectoryStreamPosixFileAttributeViewImplCheckWriteAndUserAccessMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream$PosixFileAttributeViewImpl.checkWriteAndUserAccess(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixSecureDirectoryStreamPosixFileAttributeViewImplReadAttributesMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream$PosixFileAttributeViewImpl.readAttributes(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixSecureDirectoryStreamImplDeleteMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream.implDelete(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixSecureDirectoryStreamMoveMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream.move(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixSecureDirectoryStreamNewDirectoryStreamMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream.newDirectoryStream(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixUserDefinedFileAttributeViewDeleteMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.delete(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixUserDefinedFileAttributeViewListMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.list(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixUserDefinedFileAttributeViewReadMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.read(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixUserDefinedFileAttributeViewSizeMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.size(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut unixUserDefinedFileAttributeViewWriteMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.write(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut printJob2DThrowPrintToFileMethods() : call(* sun.print.PrintJob2D.throwPrintToFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut rasterPrinterJobThrowPrintToFileMethods() : call(* sun.print.RasterPrinterJob.throwPrintToFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut serviceDialogPrintServicePanelThrowPrintToFileMethods() : call(* sun.print.ServiceDialog$PrintServicePanel.throwPrintToFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut registryImplInitMethods() : call(sun.rmi.registry.RegistryImpl.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut configFileSpiEngineRefreshMethods() : call(* sun.security.provider.ConfigFile$Spi.engineRefresh(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut filesReadMethods() : + call(* java.nio.file.Files.readAllBytes(..)) || + call(* java.nio.file.Files.readAllLines(..)) || + call(* java.nio.file.Files.lines(..)) || + call(* java.nio.file.Files.newBufferedReader(..)) || + call(* java.nio.file.Files.newInputStream(..)) || + call(* java.nio.file.Files.probeContentType(..)) || + call(* java.nio.file.Files.isReadable(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut filesWriteMethods() : + call(* java.nio.file.Files.write(..)) || + call(* java.nio.file.Files.writeString(..)) || + call(* java.nio.file.Files.newBufferedWriter(..)) || + call(* java.nio.file.Files.newOutputStream(..)) || + call(* java.nio.file.Files.setAttribute(..)) || + call(* java.nio.file.Files.setLastModifiedTime(..)) || + call(* java.nio.file.Files.setOwner(..)) || + call(* java.nio.file.Files.setPosixFilePermissions(..)) || + call(* java.nio.file.Files.isWritable(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut filesExecuteMethods() : + call(* java.nio.file.Files.walk(..)) || + call(* java.nio.file.Files.walkFileTree(..)) || + call(* java.nio.file.Files.find(..)) || + call(* java.nio.file.Files.list(..)) || + call(* java.nio.file.Files.copy(..)) || + call(* java.nio.file.Files.move(..)) || + call(* java.nio.file.Files.createDirectory(..)) || + call(* java.nio.file.Files.createDirectories(..)) || + call(* java.nio.file.Files.createFile(..)) || + call(* java.nio.file.Files.createLink(..)) || + call(* java.nio.file.Files.createSymbolicLink(..)) || + call(* java.nio.file.Files.isExecutable(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut filesDeleteMethods() : + call(* java.nio.file.Files.delete(..)) || + call(* java.nio.file.Files.deleteIfExists(..)) || + call(* java.nio.file.Files.isDirectory(..)) || + call(* java.nio.file.Files.isRegularFile(..)) || + call(* java.nio.file.Files.isSameFile(..)) || + call(* java.nio.file.Files.isSymbolicLink(..)) || + call(* java.nio.file.Files.notExists(..)) || + call(* java.nio.file.Files.size(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut pathReadMethods() : + call(* java.nio.file.Path.toFile(..)) || + call(* java.nio.file.Path.getFileName(..)) || + call(* java.nio.file.Path.getName(..)) || + call(* java.nio.file.Path.getNameCount(..)) || + call(* java.nio.file.Path.getParent(..)) || + call(* java.nio.file.Path.getRoot(..)) || + call(* java.nio.file.Path.iterator(..)) || + call(* java.nio.file.Path.subpath(..)) || + call(* java.nio.file.Path.toAbsolutePath(..)) || + call(* java.nio.file.Path.toRealPath(..)) || + call(* java.nio.file.Path.toUri(..)) || + call(* java.nio.file.Path.toString(..)) || + call(* java.nio.file.Path.resolve(..)) || + call(* java.nio.file.Path.resolveSibling(..)) || + call(* java.nio.file.Path.relativize(..)) || + call(* java.nio.file.Path.normalize(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut pathWriteMethods() : + call(* java.nio.file.Path.register(..)) || + call(* java.nio.file.Path.toFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut pathExecuteMethods() : + call(* java.nio.file.Path.compareTo(..)) || + call(* java.nio.file.Path.endsWith(..)) || + call(* java.nio.file.Path.startsWith(..)) || + call(* java.nio.file.Path.equals(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut pathDeleteMethods() : + call(* java.nio.file.Path.deleteIfExists(..)) || + call(* java.nio.file.Path.delete(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemReadMethods() : + call(* java.nio.file.FileSystem.getFileStores(..)) || + call(* java.nio.file.FileSystem.getPath(..)) || + call(* java.nio.file.FileSystem.getPathMatcher(..)) || + call(* java.nio.file.FileSystem.getRootDirectories(..)) || + call(* java.nio.file.FileSystem.provider(..)) || + call(* java.nio.file.FileSystem.supportedFileAttributeViews(..)) || + call(* java.nio.file.FileSystem.isOpen(..)) || + call(* java.nio.file.FileSystem.isReadOnly(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemWriteMethods() : + call(* java.nio.file.FileSystem.newWatchService(..)) || + call(* java.nio.file.FileSystem.close(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemExecuteMethods() : + call(* java.nio.file.FileSystem.equals(..)) || + call(* java.nio.file.FileSystem.hashCode(..)) || + call(* java.nio.file.FileSystem.toString(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemDeleteMethods() : + call(* java.nio.file.FileSystem.close(..)) && + !within(de.tum.cit.ase.ares.api..*); } \ No newline at end of file diff --git a/src/main/resources/META-INF/aop.xml b/src/main/resources/META-INF/aop.xml deleted file mode 100644 index 2b797361..00000000 --- a/src/main/resources/META-INF/aop.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml index 0c935d3a..86d254ac 100644 --- a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml +++ b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml @@ -6,6 +6,11 @@ iAllowTheFollowingFileSystemInteractionsForTheStudents: studentsAreAllowedToOverwriteAllFiles: false studentsAreAllowedToExecuteAllFiles: false studentsAreAllowedToDeleteAllFiles: false + - onThisPathAndAllPathsBelow: "de/tum/cit/ase/ares/api/PathType.java" + studentsAreAllowedToReadAllFiles: true + studentsAreAllowedToOverwriteAllFiles: true + studentsAreAllowedToExecuteAllFiles: true + studentsAreAllowedToDeleteAllFiles: true iAllowTheFollowingNetworkConnectionsForTheStudents: [] iAllowTheFollowingCommandExecutionsForTheStudents: [] iAllowTheFollowingThreadCreationsForTheStudents: [] From 3472f126d013ea34f49e8981fea9403810bf3cc6 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Thu, 1 Aug 2024 23:11:49 +0200 Subject: [PATCH 17/30] added import --- .../java/JavaSecurityTestCaseFactoryAndBuilder.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java index b39bebc5..20c9e6a3 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java @@ -1,9 +1,14 @@ package de.tum.cit.ase.ares.api.securitytest.java; +import de.tum.cit.ase.ares.api.architecturetest.java.JavaArchitectureTestCase; +import de.tum.cit.ase.ares.api.architecturetest.java.JavaSupportedArchitectureTestCase; +import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaAspectConfiguration; +import de.tum.cit.ase.ares.api.aspectconfiguration.java.JavaSupportedAspectConfiguration; import de.tum.cit.ase.ares.api.policy.SecurityPolicy; import de.tum.cit.ase.ares.api.securitytest.SecurityTestCaseAbstractFactoryAndBuilder; import de.tum.cit.ase.ares.api.util.ProjectSourcesFinder; +import java.io.File; import java.io.IOException; import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; From 6c97bdd045f9463bbee80aafb9fe36d3529f501e Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Thu, 1 Aug 2024 23:21:50 +0200 Subject: [PATCH 18/30] fixed bug --- .../java/AdviceDefinition.aj | 33 +++++ .../java/PointcutDefinitions.aj | 118 +++++++++--------- .../subject/pathaccess/PathAccessPenguin.java | 1 - .../integration/testuser/OnePathAllowed.yaml | 5 - 4 files changed, 93 insertions(+), 64 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj index a34f4718..f4285e0a 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj @@ -1438,6 +1438,39 @@ public aspect AdviceDefinition { return null; } + Object around() : PointcutDefinitions.filesReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.filesWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.filesExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.filesDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : PointcutDefinitions.pathReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj index 112778c6..8d5b95a4 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj @@ -3,9 +3,9 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; public aspect PointcutDefinitions { pointcut unixToolkitLoadGtkMethods() : - call(* sun.awt.UNIXToolkit.load_gtk(..)) || + (call(* sun.awt.UNIXToolkit.load_gtk(..)) || call(* sun.awt.UNIXToolkit.load_gtk_icon(..)) || - call(* sun.awt.UNIXToolkit.unload_gtk(..)) && + call(* sun.awt.UNIXToolkit.unload_gtk(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut xDesktopPeerInitMethods() : @@ -38,10 +38,10 @@ public aspect PointcutDefinitions { !within(de.tum.cit.ase.ares.api..*); pointcut fileInputStreamReadMethods() : - call(* java.io.FileInputStream.read(..)) || + (call(* java.io.FileInputStream.read(..)) || call(* java.io.FileInputStream.available(..)) || call(* java.io.FileInputStream.getFD(..)) || - call(* java.io.FileInputStream.getChannel(..)) && + call(* java.io.FileInputStream.getChannel(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileInputStreamSkipMethods() : @@ -77,20 +77,20 @@ public aspect PointcutDefinitions { !within(de.tum.cit.ase.ares.api..*); pointcut randomAccessFileReadMethods() : - call(* java.io.RandomAccessFile.read(..)) || - call(* java.io.RandomAccessFile.readBytes(..)) && + (call(* java.io.RandomAccessFile.read(..)) || + call(* java.io.RandomAccessFile.readBytes(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut randomAccessFileWriteMethods() : - call(* java.io.RandomAccessFile.write(..)) || + (call(* java.io.RandomAccessFile.write(..)) || call(* java.io.RandomAccessFile.writeBytes(..)) || - call(* java.io.RandomAccessFile.setLength(..)) && + call(* java.io.RandomAccessFile.setLength(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut randomAccessFileSeekLengthMethods() : - call(* java.io.RandomAccessFile.seek(..)) || + (call(* java.io.RandomAccessFile.seek(..)) || call(* java.io.RandomAccessFile.getFilePointer(..)) || - call(* java.io.RandomAccessFile.length(..)) && + call(* java.io.RandomAccessFile.length(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut randomAccessFileOpenMethods() : @@ -98,27 +98,27 @@ public aspect PointcutDefinitions { !within(de.tum.cit.ase.ares.api..*); pointcut unixFileSystemReadMethods() : - call(* java.io.UnixFileSystem.canonicalize(..)) || + (call(* java.io.UnixFileSystem.canonicalize(..)) || call(* java.io.UnixFileSystem.checkAccess(..)) || call(* java.io.UnixFileSystem.getBooleanAttributes(..)) || call(* java.io.UnixFileSystem.getLastModifiedTime(..)) || call(* java.io.UnixFileSystem.getLength(..)) || call(* java.io.UnixFileSystem.getNameMax(..)) || call(* java.io.UnixFileSystem.getSpace(..)) || - call(* java.io.UnixFileSystem.list(..)) && + call(* java.io.UnixFileSystem.list(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut unixFileSystemWriteMethods() : - call(* java.io.UnixFileSystem.createDirectory(..)) || + (call(* java.io.UnixFileSystem.createDirectory(..)) || call(* java.io.UnixFileSystem.createFileExclusively(..)) || call(* java.io.UnixFileSystem.setLastModifiedTime(..)) || call(* java.io.UnixFileSystem.setPermission(..)) || - call(* java.io.UnixFileSystem.setReadOnly(..)) && + call(* java.io.UnixFileSystem.setReadOnly(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut unixFileSystemDeleteMethods() : - call(* java.io.UnixFileSystem.delete(..)) || - call(* java.io.UnixFileSystem.rename(..)) && + (call(* java.io.UnixFileSystem.delete(..)) || + call(* java.io.UnixFileSystem.rename(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut nativeImageBufferMethods() : @@ -126,22 +126,22 @@ public aspect PointcutDefinitions { !within(de.tum.cit.ase.ares.api..*); pointcut nativeLibrariesMethods() : - call(* jdk.internal.loader.NativeLibraries.findBuiltinLib(..)) || + (call(* jdk.internal.loader.NativeLibraries.findBuiltinLib(..)) || call(* jdk.internal.loader.NativeLibraries.load(..)) || - call(* jdk.internal.loader.NativeLibraries.unload(..)) && + call(* jdk.internal.loader.NativeLibraries.unload(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut cdsMethods() : - call(* jdk.internal.misc.CDS.dumpClassList(..)) || + (call(* jdk.internal.misc.CDS.dumpClassList(..)) || call(* jdk.internal.misc.CDS.dumpDynamicArchive(..)) || call(* jdk.internal.misc.CDS.isDumpingClassList(..)) || - call(* jdk.internal.misc.CDS.logLambdaFormInvoker(..)) && + call(* jdk.internal.misc.CDS.logLambdaFormInvoker(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut epollMethods() : - call(* sun.nio.ch.EPoll.create(..)) || + (call(* sun.nio.ch.EPoll.create(..)) || call(* sun.nio.ch.EPoll.ctl(..)) || - call(* sun.nio.ch.EPoll.wait(..)) && + call(* sun.nio.ch.EPoll.wait(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileChannelImplReadMethods() : @@ -153,29 +153,29 @@ public aspect PointcutDefinitions { !within(de.tum.cit.ase.ares.api..*); pointcut fileDispatcherImplReadMethods() : - call(* sun.nio.ch.FileDispatcherImpl.pread(..)) || + (call(* sun.nio.ch.FileDispatcherImpl.pread(..)) || call(* sun.nio.ch.FileDispatcherImpl.read(..)) || call(* sun.nio.ch.FileDispatcherImpl.readv(..)) || - call(* sun.nio.ch.FileDispatcherImpl.size(..)) && + call(* sun.nio.ch.FileDispatcherImpl.size(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileDispatcherImplWriteMethods() : - call(* sun.nio.ch.FileDispatcherImpl.force(..)) || + (call(* sun.nio.ch.FileDispatcherImpl.force(..)) || call(* sun.nio.ch.FileDispatcherImpl.pwrite(..)) || call(* sun.nio.ch.FileDispatcherImpl.truncate(..)) || call(* sun.nio.ch.FileDispatcherImpl.write(..)) || - call(* sun.nio.ch.FileDispatcherImpl.writev(..)) && + call(* sun.nio.ch.FileDispatcherImpl.writev(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileDispatcherImplExecuteMethods() : - call(* sun.nio.ch.FileDispatcherImpl.close(..)) || + (call(* sun.nio.ch.FileDispatcherImpl.close(..)) || call(* sun.nio.ch.FileDispatcherImpl.closeIntFD(..)) || call(* sun.nio.ch.FileDispatcherImpl.dup0(..)) || call(* sun.nio.ch.FileDispatcherImpl.lock(..)) || call(* sun.nio.ch.FileDispatcherImpl.preClose(..)) || call(* sun.nio.ch.FileDispatcherImpl.release(..)) || call(* sun.nio.ch.FileDispatcherImpl.seek(..)) || - call(* sun.nio.ch.FileDispatcherImpl.setDirect0(..)) && + call(* sun.nio.ch.FileDispatcherImpl.setDirect0(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileKeyMethods() : @@ -187,9 +187,9 @@ public aspect PointcutDefinitions { !within(de.tum.cit.ase.ares.api..*); pointcut linuxNativeDispatcherMethods() : - call(* sun.nio.fs.LinuxNativeDispatcher.endmntent(..)) || + (call(* sun.nio.fs.LinuxNativeDispatcher.endmntent(..)) || call(* sun.nio.fs.LinuxNativeDispatcher.getmntent(..)) || - call(* sun.nio.fs.LinuxNativeDispatcher.setmntent(..)) && + call(* sun.nio.fs.LinuxNativeDispatcher.setmntent(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut unixCopyFileMethods() : @@ -442,22 +442,22 @@ public aspect PointcutDefinitions { pointcut fileOutputStreamInitMethods() : call(java.io.FileOutputStream.new(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut objectInputFilterConfigMethods() : call(* java.io.ObjectInputFilter$Config.setSerialFilter(..)) || call(* java.io.ObjectInputFilter$Config.setSerialFilterFactory(..)) && + pointcut objectInputFilterConfigMethods() : (call(* java.io.ObjectInputFilter$Config.setSerialFilter(..)) || call(* java.io.ObjectInputFilter$Config.setSerialFilterFactory(..))) && !within(de.tum.cit.ase.ares.api..*); - pointcut objectInputStreamMethods() : call(java.io.ObjectInputStream.new(..)) || call(* java.io.ObjectInputStream.enableResolveObject(..)) || call(* java.io.ObjectInputStream.setObjectInputFilter(..)) || call(* java.io.ObjectInputStream.verifySubclass(..)) && + pointcut objectInputStreamMethods() : (call(java.io.ObjectInputStream.new(..)) || call(* java.io.ObjectInputStream.enableResolveObject(..)) || call(* java.io.ObjectInputStream.setObjectInputFilter(..)) || call(* java.io.ObjectInputStream.verifySubclass(..))) && !within(de.tum.cit.ase.ares.api..*); - pointcut objectOutputStreamMethods() : call(java.io.ObjectOutputStream.new(..)) || call(* java.io.ObjectOutputStream.enableReplaceObject(..)) || call(* java.io.ObjectOutputStream.verifySubclass(..)) && + pointcut objectOutputStreamMethods() : (call(java.io.ObjectOutputStream.new(..)) || call(* java.io.ObjectOutputStream.enableReplaceObject(..)) || call(* java.io.ObjectOutputStream.verifySubclass(..))) && !within(de.tum.cit.ase.ares.api..*); - pointcut objectStreamClassMethods() : call(* java.io.ObjectStreamClass.forClass(..)) || call(* java.io.ObjectStreamClass.getProtectionDomains(..)) || call(* java.io.ObjectStreamField.getType(..)) && + pointcut objectStreamClassMethods() : (call(* java.io.ObjectStreamClass.forClass(..)) || call(* java.io.ObjectStreamClass.getProtectionDomains(..)) || call(* java.io.ObjectStreamField.getType(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut randomAccessFileInitMethods() : call(java.io.RandomAccessFile.new(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut unixFileSystemMethods() : call(* java.io.UnixFileSystem.listRoots(..)) || call(* java.io.UnixFileSystem.resolve(..)) && + pointcut unixFileSystemMethods() : (call(* java.io.UnixFileSystem.listRoots(..)) || call(* java.io.UnixFileSystem.resolve(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut urlInitMethods() : call(java.net.URL.new(..)) && @@ -508,7 +508,7 @@ public aspect PointcutDefinitions { pointcut builtinClassLoaderFindClassMethods() : call(* jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut builtinClassLoaderFindResourceMethods() : call(* jdk.internal.loader.BuiltinClassLoader.findResourceAsStream(..)) || call(* jdk.internal.loader.BuiltinClassLoader.findResourceOnClassPath(..)) || call(* jdk.internal.loader.BuiltinClassLoader.findResourcesOnClassPath(..)) && + pointcut builtinClassLoaderFindResourceMethods() : (call(* jdk.internal.loader.BuiltinClassLoader.findResourceAsStream(..)) || call(* jdk.internal.loader.BuiltinClassLoader.findResourceOnClassPath(..)) || call(* jdk.internal.loader.BuiltinClassLoader.findResourcesOnClassPath(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut urlClassPathJarLoaderCheckJarMethods() : call(* jdk.internal.loader.URLClassPath$JarLoader.checkJar(..)) && @@ -689,17 +689,19 @@ public aspect PointcutDefinitions { !within(de.tum.cit.ase.ares.api..*); pointcut filesReadMethods() : - call(* java.nio.file.Files.readAllBytes(..)) || + (call(* java.nio.file.Files.readAllBytes(..)) || call(* java.nio.file.Files.readAllLines(..)) || + call(* java.nio.file.Files.readString(..)) || + call(* java.nio.file.Files.readAttributes(..)) || call(* java.nio.file.Files.lines(..)) || call(* java.nio.file.Files.newBufferedReader(..)) || call(* java.nio.file.Files.newInputStream(..)) || call(* java.nio.file.Files.probeContentType(..)) || - call(* java.nio.file.Files.isReadable(..)) && + call(* java.nio.file.Files.isReadable(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut filesWriteMethods() : - call(* java.nio.file.Files.write(..)) || + (call(* java.nio.file.Files.write(..)) || call(* java.nio.file.Files.writeString(..)) || call(* java.nio.file.Files.newBufferedWriter(..)) || call(* java.nio.file.Files.newOutputStream(..)) || @@ -707,11 +709,11 @@ public aspect PointcutDefinitions { call(* java.nio.file.Files.setLastModifiedTime(..)) || call(* java.nio.file.Files.setOwner(..)) || call(* java.nio.file.Files.setPosixFilePermissions(..)) || - call(* java.nio.file.Files.isWritable(..)) && + call(* java.nio.file.Files.isWritable(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut filesExecuteMethods() : - call(* java.nio.file.Files.walk(..)) || + (call(* java.nio.file.Files.walk(..)) || call(* java.nio.file.Files.walkFileTree(..)) || call(* java.nio.file.Files.find(..)) || call(* java.nio.file.Files.list(..)) || @@ -722,22 +724,22 @@ public aspect PointcutDefinitions { call(* java.nio.file.Files.createFile(..)) || call(* java.nio.file.Files.createLink(..)) || call(* java.nio.file.Files.createSymbolicLink(..)) || - call(* java.nio.file.Files.isExecutable(..)) && + call(* java.nio.file.Files.isExecutable(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut filesDeleteMethods() : - call(* java.nio.file.Files.delete(..)) || + (call(* java.nio.file.Files.delete(..)) || call(* java.nio.file.Files.deleteIfExists(..)) || call(* java.nio.file.Files.isDirectory(..)) || call(* java.nio.file.Files.isRegularFile(..)) || call(* java.nio.file.Files.isSameFile(..)) || call(* java.nio.file.Files.isSymbolicLink(..)) || call(* java.nio.file.Files.notExists(..)) || - call(* java.nio.file.Files.size(..)) && + call(* java.nio.file.Files.size(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut pathReadMethods() : - call(* java.nio.file.Path.toFile(..)) || + (call(* java.nio.file.Path.toFile(..)) || call(* java.nio.file.Path.getFileName(..)) || call(* java.nio.file.Path.getName(..)) || call(* java.nio.file.Path.getNameCount(..)) || @@ -752,46 +754,46 @@ public aspect PointcutDefinitions { call(* java.nio.file.Path.resolve(..)) || call(* java.nio.file.Path.resolveSibling(..)) || call(* java.nio.file.Path.relativize(..)) || - call(* java.nio.file.Path.normalize(..)) && + call(* java.nio.file.Path.normalize(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut pathWriteMethods() : - call(* java.nio.file.Path.register(..)) || - call(* java.nio.file.Path.toFile(..)) && + (call(* java.nio.file.Path.register(..)) || + call(* java.nio.file.Path.toFile(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut pathExecuteMethods() : - call(* java.nio.file.Path.compareTo(..)) || + (call(* java.nio.file.Path.compareTo(..)) || call(* java.nio.file.Path.endsWith(..)) || call(* java.nio.file.Path.startsWith(..)) || - call(* java.nio.file.Path.equals(..)) && + call(* java.nio.file.Path.equals(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut pathDeleteMethods() : - call(* java.nio.file.Path.deleteIfExists(..)) || - call(* java.nio.file.Path.delete(..)) && + (call(* java.nio.file.Path.deleteIfExists(..)) || + call(* java.nio.file.Path.delete(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileSystemReadMethods() : - call(* java.nio.file.FileSystem.getFileStores(..)) || + (call(* java.nio.file.FileSystem.getFileStores(..)) || call(* java.nio.file.FileSystem.getPath(..)) || call(* java.nio.file.FileSystem.getPathMatcher(..)) || call(* java.nio.file.FileSystem.getRootDirectories(..)) || call(* java.nio.file.FileSystem.provider(..)) || call(* java.nio.file.FileSystem.supportedFileAttributeViews(..)) || call(* java.nio.file.FileSystem.isOpen(..)) || - call(* java.nio.file.FileSystem.isReadOnly(..)) && + call(* java.nio.file.FileSystem.isReadOnly(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileSystemWriteMethods() : - call(* java.nio.file.FileSystem.newWatchService(..)) || - call(* java.nio.file.FileSystem.close(..)) && + (call(* java.nio.file.FileSystem.newWatchService(..)) || + call(* java.nio.file.FileSystem.close(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileSystemExecuteMethods() : - call(* java.nio.file.FileSystem.equals(..)) || + (call(* java.nio.file.FileSystem.equals(..)) || call(* java.nio.file.FileSystem.hashCode(..)) || - call(* java.nio.file.FileSystem.toString(..)) && + call(* java.nio.file.FileSystem.toString(..))) && !within(de.tum.cit.ase.ares.api..*); pointcut fileSystemDeleteMethods() : diff --git a/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java b/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java index da545bc8..d4bf573e 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPenguin.java @@ -10,7 +10,6 @@ private PathAccessPenguin() { public static void accessPath(Path p) throws IOException { Files.readString(p); - new FileInputStream(p.toFile()); } public static void askForFilePermission(String path) { diff --git a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml index 86d254ac..0c935d3a 100644 --- a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml +++ b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml @@ -6,11 +6,6 @@ iAllowTheFollowingFileSystemInteractionsForTheStudents: studentsAreAllowedToOverwriteAllFiles: false studentsAreAllowedToExecuteAllFiles: false studentsAreAllowedToDeleteAllFiles: false - - onThisPathAndAllPathsBelow: "de/tum/cit/ase/ares/api/PathType.java" - studentsAreAllowedToReadAllFiles: true - studentsAreAllowedToOverwriteAllFiles: true - studentsAreAllowedToExecuteAllFiles: true - studentsAreAllowedToDeleteAllFiles: true iAllowTheFollowingNetworkConnectionsForTheStudents: [] iAllowTheFollowingCommandExecutionsForTheStudents: [] iAllowTheFollowingThreadCreationsForTheStudents: [] From 7d70edda316c2b45a00200fcb197e8f1c3032923 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Tue, 6 Aug 2024 16:13:10 +0200 Subject: [PATCH 19/30] optimized FileSystem Pointcuts and Advices and Renamed files --- .../java/AdviceDefinitionExample.aj | 74 -- ...ition.aj => FileSystemAdviceDefinition.aj} | 742 +++++------------- ...ns.aj => FileSystemPointcutDefinitions.aj} | 556 ++++++------- .../java/PointcutDefinitionsExample.aj | 20 - ...JavaSecurityTestCaseFactoryAndBuilder.java | 24 +- 5 files changed, 442 insertions(+), 974 deletions(-) delete mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj rename src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/{AdviceDefinition.aj => FileSystemAdviceDefinition.aj} (54%) rename src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/{PointcutDefinitions.aj => FileSystemPointcutDefinitions.aj} (60%) delete mode 100644 src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj deleted file mode 100644 index 0047613d..00000000 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinitionExample.aj +++ /dev/null @@ -1,74 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectconfiguration.java; - -import org.aspectj.lang.JoinPoint; - -import java.nio.file.Path; - -public aspect AdviceDefinitionExample { - /* - private boolean handleAroundAdvice(JoinPoint thisJoinPoint) { - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToOverwriteAllFiles()); - - if (!isAllowed) { - throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + "Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - } - - return true; - } - - // Around advice to capture the path used in Files.write and check permissions - Object around() : PointcutDefinitions.filesWriteMethod() { - if (handleAroundAdvice(thisJoinPoint)) { - return proceed(); - } else { - throwSecuityException(thisJoinPoint); - } - } - - // Around advice to capture the path used in Files.readAllBytes and check permissions - Object around() : PointcutDefinitions.filesReadMethod() { - if (handleAroundAdvice(thisJoinPoint)) { - return proceed(); - } else { - throwSecurityException(thisJoinPoint); - } - } - - // Around advice to capture file deletion and check permissions - Object around() : PointcutDefinitions.filesDeleteMethod() { - Object[] args = thisJoinPoint.getArgs(); - Path path = (Path) args[0]; // Assuming the first argument is the Path - - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - - // Check if the file name is allowed and has delete permission - boolean isAllowed = FileSystemInteractionList.getAllowedFileSystemInteractions().stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && interaction.studentsAreAllowedToDeleteAllFiles()); - - if (!isAllowed) { - System.out.println("Files.delete called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); - throw new SecurityException("Delete operation blocked by AspectJ for path: " + path); - } else { - System.out.println("Files.delete called with path: " + path + " in " + thisJoinPoint.getSourceLocation() + " - Access Granted"); - } - - return proceed(); - } - - // Around advice to capture method executions and check permissions - Object around() : PointcutDefinitions.executionMethod() { - // You can add additional checks or log statements here - System.out.println("Execution of: " + thisJoinPoint.getSignature() + " in " + thisJoinPoint.getSourceLocation()); - - return proceed(); - } - - */ - - -} diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj similarity index 54% rename from src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj rename to src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj index f4285e0a..d140438f 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/AdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj @@ -3,11 +3,15 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; import de.tum.cit.ase.ares.api.policy.FileSystemInteraction; import org.aspectj.lang.JoinPoint; -public aspect AdviceDefinition { +public aspect FileSystemAdviceDefinition { private boolean handleAroundAdvice(JoinPoint thisJoinPoint, String operationType) { String fileName = thisJoinPoint.getSourceLocation().getFileName(); + if (JavaAspectConfigurationLists.allowedFileSystemInteractions.isEmpty()) { + return true; + } + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) && isOperationAllowed(interaction, operationType)); @@ -38,7 +42,7 @@ public aspect AdviceDefinition { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - Object around() : PointcutDefinitions.unixToolkitLoadGtkMethods() { + Object around() : FileSystemPointcutDefinitions.unixToolkitLoadGtkMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -46,7 +50,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.xDesktopPeerInitMethods() { + Object around() : FileSystemPointcutDefinitions.xDesktopPeerInitMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -54,7 +58,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.xRobotPeerLoadNativeLibrariesMethods() { + Object around() : FileSystemPointcutDefinitions.xRobotPeerLoadNativeLibrariesMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -62,7 +66,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.xTaskbarPeerInitMethods() { + Object around() : FileSystemPointcutDefinitions.xTaskbarPeerInitMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -70,7 +74,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.gifImageDecoderParseImageMethods() { + Object around() : FileSystemPointcutDefinitions.gifImageDecoderParseImageMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -78,7 +82,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.jpegImageDecoderReadImageMethod() { + Object around() : FileSystemPointcutDefinitions.jpegImageDecoderReadImageMethod() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -86,7 +90,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.cupsPrinterInitIDsMethod() { + Object around() : FileSystemPointcutDefinitions.cupsPrinterInitIDsMethod() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -94,15 +98,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.consoleEchoAndIsttyMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.fileInputStreamReadMethods() { + Object around() : FileSystemPointcutDefinitions.fileInputStreamReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -110,15 +106,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileInputStreamSkipMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.fileInputStreamCloseMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.fileOutputStreamWriteMethods() { + Object around() : FileSystemPointcutDefinitions.fileOutputStreamWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -126,7 +122,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileOutputStreamCloseMethods() { + Object around() : FileSystemPointcutDefinitions.fileOutputStreamCloseMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -134,7 +130,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileOutputStreamGetChannelMethods() { + Object around() : FileSystemPointcutDefinitions.fileOutputStreamGetChannelMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -142,15 +138,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileDescriptorSyncMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.fileDescriptorCloseMethods() { + Object around() : FileSystemPointcutDefinitions.fileDescriptorMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -158,7 +146,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileCleanableCleanupMethods() { + Object around() : FileSystemPointcutDefinitions.fileCleanableCleanupMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -166,7 +154,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.randomAccessFileReadMethods() { + Object around() : FileSystemPointcutDefinitions.randomAccessFileReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -174,7 +162,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.randomAccessFileWriteMethods() { + Object around() : FileSystemPointcutDefinitions.randomAccessFileWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -182,7 +170,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.randomAccessFileSeekLengthMethods() { + Object around() : FileSystemPointcutDefinitions.randomAccessFileExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -190,15 +178,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.randomAccessFileOpenMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixFileSystemReadMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystemReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -206,7 +186,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixFileSystemWriteMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystemWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -214,7 +194,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixFileSystemDeleteMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystemDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -222,7 +202,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.nativeImageBufferMethods() { + Object around() : FileSystemPointcutDefinitions.nativeImageBufferMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -230,7 +210,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.nativeLibrariesMethods() { + Object around() : FileSystemPointcutDefinitions.epollMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -238,23 +218,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.cdsMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.epollMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.fileChannelImplReadMethods() { + Object around() : FileSystemPointcutDefinitions.fileChannelImplReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -262,7 +226,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileChannelImplWriteMethods() { + Object around() : FileSystemPointcutDefinitions.fileChannelImplWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -270,7 +234,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileDispatcherImplReadMethods() { + Object around() : FileSystemPointcutDefinitions.fileDispatcherImplReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -278,7 +242,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileDispatcherImplWriteMethods() { + Object around() : FileSystemPointcutDefinitions.fileDispatcherImplWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -286,7 +250,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileDispatcherImplExecuteMethods() { + Object around() : FileSystemPointcutDefinitions.fileDispatcherImplExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -294,7 +258,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileKeyMethods() { + Object around() : FileSystemPointcutDefinitions.fileKeyMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -302,7 +266,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.inheritedChannelMethods() { + Object around() : FileSystemPointcutDefinitions.inheritedChannelMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -310,7 +274,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.linuxNativeDispatcherMethods() { + Object around() : FileSystemPointcutDefinitions.linuxNativeDispatcherMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -318,7 +282,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixCopyFileMethods() { + Object around() : FileSystemPointcutDefinitions.unixCopyFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -326,7 +290,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherAccessMethods() { + Object around() : FileSystemPointcutDefinitions.unixNativeDispatcherReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -334,7 +298,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherChmodMethods() { + Object around() : FileSystemPointcutDefinitions.unixNativeDispatcherWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -342,23 +306,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherChownMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixNativeDispatcherCloseMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixNativeDispatcherClosedirMethods() { + Object around() : FileSystemPointcutDefinitions.unixNativeDispatcherExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -366,15 +314,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherDupMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixNativeDispatcherDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherExistsMethods() { + Object around() : FileSystemPointcutDefinitions.documentHandlerParseMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -382,23 +330,23 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFchmodMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.templatesImplReadObjectMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFchownMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.desktopMoveToTrashMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFdopendirMethods() { + Object around() : FileSystemPointcutDefinitions.desktopPrintMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -406,23 +354,23 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFgetxattrMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.desktopSetPrintFileHandlerMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFlistxattrMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.inputEventCanAccessSystemClipboardMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFremovexattrMethods() { + Object around() : FileSystemPointcutDefinitions.introspectorSetBeanInfoSearchPathMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -430,7 +378,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFsetxattrMethods() { + Object around() : FileSystemPointcutDefinitions.propertyEditorManagerSetEditorSearchPathMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -438,15 +386,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFstatMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.fileTempDirectoryGenerateFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFstatatMethods() { + Object around() : FileSystemPointcutDefinitions.fileReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -454,7 +402,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFutimensMethods() { + Object around() : FileSystemPointcutDefinitions.fileWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -462,23 +410,23 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherFutimesMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.fileExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherGetcwdMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.fileDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherGetlinelenMethods() { + Object around() : FileSystemPointcutDefinitions.fileInputStreamInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -486,7 +434,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherLchownMethods() { + Object around() : FileSystemPointcutDefinitions.fileOutputStreamInitMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -494,47 +442,39 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixNativeDispatcherLstatMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.objectInputFilterConfigMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherLutimesMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.objectInputStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherMkdirMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.objectOutputStreamMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherMknodMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.objectStreamClassMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherOpenMethods() { + Object around() : FileSystemPointcutDefinitions.randomAccessFileInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -542,15 +482,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherOpenatMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.unixFileSystemMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherOpendirMethods() { + Object around() : FileSystemPointcutDefinitions.fileTreeWalkerGetAttributesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -558,31 +498,31 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.tempFileHelperCreateMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherReaddirMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.fileSystemProviderCheckPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherReadlinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.fileTypeDetectorCheckPermissionMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherRealpathMethods() { + Object around() : FileSystemPointcutDefinitions.zipFileInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -590,23 +530,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherRenameMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixNativeDispatcherRenameatMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixNativeDispatcherRewindMethods() { + Object around() : FileSystemPointcutDefinitions.streamPrintServiceFactoryRunMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -614,15 +538,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherRmdirMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.xPathFactoryFinderCreateClassMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherStatMethods() { + Object around() : FileSystemPointcutDefinitions.readWriteSelectableChannelMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -630,7 +554,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherStat1Methods() { + Object around() : FileSystemPointcutDefinitions.dataTransfererCastToFilesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -638,7 +562,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherStatvfsMethods() { + Object around() : FileSystemPointcutDefinitions.fileImageSourceInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -646,47 +570,23 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherSymlinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixNativeDispatcherUnlinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixNativeDispatcherUnlinkatMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixNativeDispatcherUtimesMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.imageConsumerQueueInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixNativeDispatcherWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.inputStreamImageSourceAddConsumerMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.documentHandlerParseMethods() { + Object around() : FileSystemPointcutDefinitions.shellFolderManagerCheckFileMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -694,7 +594,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.templatesImplReadObjectMethods() { + Object around() : FileSystemPointcutDefinitions.shellFolderManagerCheckFilesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -702,31 +602,31 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.xPathFactoryImplInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.fileFontGetPublicFileNameMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.desktopMoveToTrashMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { + Object around() : FileSystemPointcutDefinitions.unixChannelFactoryOpenMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.desktopPrintMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixFileAttributeViewsPosixCheckReadExtendedMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.desktopSetPrintFileHandlerMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileAttributeViewsPosixCheckWriteExtendedMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -734,15 +634,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fontCheckFontFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.inputEventCanAccessSystemClipboardMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystem1IteratorMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -750,15 +642,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.introspectorSetBeanInfoSearchPathMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.unixFileSystemFileStoreIteratorReadNextMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.propertyEditorManagerSetEditorSearchPathMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystemCopyMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -766,7 +658,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileInputStreamInitMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystemGetFileStoresMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -774,7 +666,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileOutputStreamInitMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystemMoveMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -782,7 +674,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.objectInputFilterConfigMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderCheckAccessMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -790,31 +682,31 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.objectInputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderCreateLinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.objectOutputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderCreateSymbolicLinkMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.objectStreamClassMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderGetFileStoreMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.randomAccessFileInitMethods() { + Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderReadSymbolicLinkMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -822,31 +714,31 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixFileSystemMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixPathCheckDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.urlInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixPathCheckReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.urlSetURLStreamHandlerFactoryMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixPathCheckWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.urlConnectionSetFileNameMapMethods() { + Object around() : FileSystemPointcutDefinitions.unixPathToAbsolutePathMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -854,15 +746,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.urlStreamHandlerProviderCheckPermissionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplCheckWriteAccessMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.fileTreeWalkerGetAttributesMethods() { + Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplReadAttributesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -870,7 +762,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.tempFileHelperCreateMethods() { + Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplCheckWriteAndUserAccessMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -878,31 +770,31 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileSystemProviderCheckPermissionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplReadAttributesMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.fileTypeDetectorCheckPermissionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamImplDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.logStreamSetDefaultStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamMoveMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.driverManagerSetLogStreamMethods() { + Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamNewDirectoryStreamMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -910,15 +802,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.driverManagerSetLogWriterMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.zipFileInitMethods() { + Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewListMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -926,31 +818,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.streamPrintServiceFactoryRunMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.xPathFactoryFinderCreateClassMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.jrtFileSystemProviderCheckPermissionMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.builtinClassLoaderFindClassMethods() { + Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -958,7 +826,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.builtinClassLoaderFindResourceMethods() { + Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewSizeMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -966,15 +834,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.urlClassPathJarLoaderCheckJarMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.urlClassPathCheckMethods() { + Object around() : FileSystemPointcutDefinitions.printJob2DThrowPrintToFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -982,7 +850,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.moduleReferencesExplodedModuleReaderInitMethods() { + Object around() : FileSystemPointcutDefinitions.rasterPrinterJobThrowPrintToFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -990,7 +858,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.systemModuleFindersSystemModuleReaderCheckPermissionMethods() { + Object around() : FileSystemPointcutDefinitions.serviceDialogPrintServicePanelThrowPrintToFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -998,31 +866,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.requestPublishersFilePublisherCreateMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.responseBodyHandlersFileDownloadBodyHandlerCreateMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.responseBodyHandlersPathBodyHandlerCreateMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.filesReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.responseSubscribersPathSubscriberCreateMethods() { + Object around() : FileSystemPointcutDefinitions.filesWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1030,7 +882,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.writeableUserPathDoPrivilegedIOMethods() { + Object around() : FileSystemPointcutDefinitions.filesExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1038,31 +890,16 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.readWriteSelectableChannelMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.jlinkInternalMainRunMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.filesDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.dataTransfererCastToFilesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - Object around() : PointcutDefinitions.fileImageSourceInitMethods() { + Object around() : FileSystemPointcutDefinitions.pathReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1070,15 +907,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.imageConsumerQueueInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.pathWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.inputStreamImageSourceAddConsumerMethods() { + Object around() : FileSystemPointcutDefinitions.pathExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1086,15 +923,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.shellFolderManagerCheckFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.pathDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.shellFolderManagerCheckFilesMethods() { + Object around() : FileSystemPointcutDefinitions.fileSystemReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1102,15 +939,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileFontGetPublicFileNameMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.fileSystemWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.fileServerHandlerInitMethods() { + Object around() : FileSystemPointcutDefinitions.fileSystemExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1118,23 +955,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.mimeTableSaveAsPropertiesMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.httpURLConnectionCheckURLFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.fileSystemDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.jarFileFactoryGetCachedJarFileMethods() { + Object around() : FileSystemPointcutDefinitions.windowsFileSystemProviderReadSymbolicLinkMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1142,7 +971,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.serverSocketChannelImplFinishAcceptMethods() { + Object around() : FileSystemPointcutDefinitions.desktopSetOpenFileHandlerMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1150,7 +979,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixAsynchronousServerSocketChannelImplFinishAcceptMethods() { + Object around() : FileSystemPointcutDefinitions.desktopExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1158,39 +987,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.abstractUserDefinedFileAttributeViewCheckAccessMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixChannelFactoryOpenMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixFileAttributeViewsPosixCheckReadExtendedMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixFileAttributeViewsPosixCheckWriteExtendedMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixFileSystem1IteratorMethods() { + Object around() : FileSystemPointcutDefinitions.fontCreateMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1198,15 +995,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixFileSystemFileStoreIteratorReadNextMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around() : FileSystemPointcutDefinitions.windowsPathCheckDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixFileSystemCopyMethods() { + Object around() : FileSystemPointcutDefinitions.win32PrintJobGetAttributeValuesMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1214,15 +1011,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixFileSystemGetFileStoresMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixFileSystemMoveMethods() { + Object around() : FileSystemPointcutDefinitions.hotSpotDiagnosticDumpHeapMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1230,7 +1019,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixFileSystemProviderCheckAccessMethods() { + Object around() : FileSystemPointcutDefinitions.processBuilderStartMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1238,23 +1027,23 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixFileSystemProviderCreateLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.processImplInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixFileSystemProviderCreateSymbolicLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.windowsFileSystemProviderCheckAccessMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.unixFileSystemProviderGetFileStoreMethods() { + Object around() : FileSystemPointcutDefinitions.windowsPathCheckReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1262,7 +1051,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixFileSystemProviderReadSymbolicLinkMethods() { + Object around() : FileSystemPointcutDefinitions.windowsPathRegisterMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1270,15 +1059,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixPathCheckDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixPathCheckReadMethods() { + Object around() : FileSystemPointcutDefinitions.windowsFileSystemGetRootDirectoriesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1286,31 +1067,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixPathCheckWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixPathToAbsolutePathMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplCheckWriteAccessMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplReadAttributesMethods() { + Object around() : FileSystemPointcutDefinitions.jarFileFactoryGetCachedJarFileMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1318,15 +1075,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplCheckWriteAndUserAccessMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplReadAttributesMethods() { + Object around() : FileSystemPointcutDefinitions.fileServerHandlerInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1334,39 +1083,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixSecureDirectoryStreamImplDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixSecureDirectoryStreamMoveMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixSecureDirectoryStreamNewDirectoryStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewListMethods() { + Object around() : FileSystemPointcutDefinitions.win32ShellFolderManager2CheckFileMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1374,7 +1091,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewReadMethods() { + Object around() : FileSystemPointcutDefinitions.win32ShellFolder2GetFileSystemPathMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1382,7 +1099,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewSizeMethods() { + Object around() : FileSystemPointcutDefinitions.win32ShellFolder2ListFilesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1390,55 +1107,31 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.unixUserDefinedFileAttributeViewWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.printJob2DThrowPrintToFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.rasterPrinterJobThrowPrintToFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.serviceDialogPrintServicePanelThrowPrintToFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.shellFolderManagerCheckFileMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.registryImplInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.fileImageSourceInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.configFileSpiEngineRefreshMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.zipFileInitMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.filesReadMethods() { + Object around() : FileSystemPointcutDefinitions.winNTFileSystemAccessMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1446,15 +1139,15 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.filesWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { + Object around() : FileSystemPointcutDefinitions.winNTFileSystemResolveMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.filesExecuteMethods() { + Object around() : FileSystemPointcutDefinitions.fileChannelExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1462,16 +1155,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.filesDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - - Object around() : PointcutDefinitions.pathReadMethods() { + Object around() : FileSystemPointcutDefinitions.fileChannelReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1479,7 +1163,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.pathWriteMethods() { + Object around() : FileSystemPointcutDefinitions.fileChannelWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1487,31 +1171,7 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.pathExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.pathDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.fileSystemReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around() : PointcutDefinitions.fileSystemWriteMethods() { + Object around() : FileSystemPointcutDefinitions.fileWriterMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1519,20 +1179,20 @@ public aspect AdviceDefinition { return null; } - Object around() : PointcutDefinitions.fileSystemExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around() : FileSystemPointcutDefinitions.fileHandlerMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around() : PointcutDefinitions.fileSystemDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { + Object around() : FileSystemPointcutDefinitions.midiSystemMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - + } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj similarity index 60% rename from src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj rename to src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj index 8d5b95a4..1d1a7898 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj @@ -1,6 +1,6 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; -public aspect PointcutDefinitions { +public aspect FileSystemPointcutDefinitions { pointcut unixToolkitLoadGtkMethods() : (call(* sun.awt.UNIXToolkit.load_gtk(..)) || @@ -32,22 +32,14 @@ public aspect PointcutDefinitions { call(* sun.print.CUPSPrinter.initIDs(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut consoleEchoAndIsttyMethods() : - call(* java.io.Console.echo(..)) || - call(* java.io.Console.istty(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut fileInputStreamReadMethods() : (call(* java.io.FileInputStream.read(..)) || call(* java.io.FileInputStream.available(..)) || call(* java.io.FileInputStream.getFD(..)) || - call(* java.io.FileInputStream.getChannel(..))) && + call(* java.io.FileInputStream.getChannel(..))) || + call(* java.io.FileInputStream.skip(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut fileInputStreamSkipMethods() : - call(* java.io.FileInputStream.skip(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut fileInputStreamCloseMethods() : call(* java.io.FileInputStream.close(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -64,12 +56,9 @@ public aspect PointcutDefinitions { call(* java.io.FileOutputStream.getChannel(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut fileDescriptorSyncMethods() : - call(* java.io.FileDescriptor.sync(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDescriptorCloseMethods() : - call(* java.io.FileDescriptor.close(..)) && + pointcut fileDescriptorMethods() : + (call(* java.io.FileDescriptor.sync(..)) || + call(* java.io.FileDescriptor.close(..)))&& !within(de.tum.cit.ase.ares.api..*); pointcut fileCleanableCleanupMethods() : @@ -87,16 +76,13 @@ public aspect PointcutDefinitions { call(* java.io.RandomAccessFile.setLength(..))) && !within(de.tum.cit.ase.ares.api..*); - pointcut randomAccessFileSeekLengthMethods() : + pointcut randomAccessFileExecuteMethods() : (call(* java.io.RandomAccessFile.seek(..)) || call(* java.io.RandomAccessFile.getFilePointer(..)) || - call(* java.io.RandomAccessFile.length(..))) && + call(* java.io.RandomAccessFile.length(..)) || + call(java.io.RandomAccessFile.new(..))) && !within(de.tum.cit.ase.ares.api..*); - pointcut randomAccessFileOpenMethods() : - call(java.io.RandomAccessFile.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut unixFileSystemReadMethods() : (call(* java.io.UnixFileSystem.canonicalize(..)) || call(* java.io.UnixFileSystem.checkAccess(..)) || @@ -125,19 +111,6 @@ public aspect PointcutDefinitions { call(* jdk.internal.jimage.NativeImageBuffer.getNativeMap(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut nativeLibrariesMethods() : - (call(* jdk.internal.loader.NativeLibraries.findBuiltinLib(..)) || - call(* jdk.internal.loader.NativeLibraries.load(..)) || - call(* jdk.internal.loader.NativeLibraries.unload(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut cdsMethods() : - (call(* jdk.internal.misc.CDS.dumpClassList(..)) || - call(* jdk.internal.misc.CDS.dumpDynamicArchive(..)) || - call(* jdk.internal.misc.CDS.isDumpingClassList(..)) || - call(* jdk.internal.misc.CDS.logLambdaFormInvoker(..))) && - !within(de.tum.cit.ase.ares.api..*); - pointcut epollMethods() : (call(* sun.nio.ch.EPoll.create(..)) || call(* sun.nio.ch.EPoll.ctl(..)) || @@ -196,140 +169,62 @@ public aspect PointcutDefinitions { call(* sun.nio.fs.UnixCopyFile.transfer(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut unixNativeDispatcherAccessMethods() : call(* sun.nio.fs.UnixNativeDispatcher.access(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherChmodMethods() : call(* sun.nio.fs.UnixNativeDispatcher.chmod(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherChownMethods() : call(* sun.nio.fs.UnixNativeDispatcher.chown(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherCloseMethods() : call(* sun.nio.fs.UnixNativeDispatcher.close(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherClosedirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.closedir(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherDupMethods() : call(* sun.nio.fs.UnixNativeDispatcher.dup(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherExistsMethods() : call(* sun.nio.fs.UnixNativeDispatcher.exists(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFchmodMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fchmod(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFchownMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fchown(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFdopendirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fdopendir(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFgetxattrMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fgetxattr(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFlistxattrMethods() : call(* sun.nio.fs.UnixNativeDispatcher.flistxattr(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFremovexattrMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fremovexattr(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFsetxattrMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fsetxattr(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFstatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fstat(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFstatatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.fstatat(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFutimensMethods() : call(* sun.nio.fs.UnixNativeDispatcher.futimens(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherFutimesMethods() : call(* sun.nio.fs.UnixNativeDispatcher.futimes(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherGetcwdMethods() : call(* sun.nio.fs.UnixNativeDispatcher.getcwd(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherGetlinelenMethods() : call(* sun.nio.fs.UnixNativeDispatcher.getlinelen(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherLchownMethods() : call(* sun.nio.fs.UnixNativeDispatcher.lchown(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherLinkMethods() : call(* sun.nio.fs.UnixNativeDispatcher.link(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherLstatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.lstat(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherLutimesMethods() : call(* sun.nio.fs.UnixNativeDispatcher.lutimes(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherMkdirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.mkdir(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherMknodMethods() : call(* sun.nio.fs.UnixNativeDispatcher.mknod(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherOpenMethods() : call(* sun.nio.fs.UnixNativeDispatcher.open(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherOpenatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.openat(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherOpendirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.opendir(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherReadMethods() : call(* sun.nio.fs.UnixNativeDispatcher.read(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherReaddirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.readdir(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherReadlinkMethods() : call(* sun.nio.fs.UnixNativeDispatcher.readlink(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherRealpathMethods() : call(* sun.nio.fs.UnixNativeDispatcher.realpath(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherRenameMethods() : call(* sun.nio.fs.UnixNativeDispatcher.rename(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherRenameatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.renameat(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherRewindMethods() : call(* sun.nio.fs.UnixNativeDispatcher.rewind(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherRmdirMethods() : call(* sun.nio.fs.UnixNativeDispatcher.rmdir(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherStatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.stat(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherStat1Methods() : call(* sun.nio.fs.UnixNativeDispatcher.stat1(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherStatvfsMethods() : call(* sun.nio.fs.UnixNativeDispatcher.statvfs(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherSymlinkMethods() : call(* sun.nio.fs.UnixNativeDispatcher.symlink(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherUnlinkMethods() : call(* sun.nio.fs.UnixNativeDispatcher.unlink(..)) && - !within(de.tum.cit.ase.ares.api..*); + pointcut unixNativeDispatcherReadMethods() : + (call(* sun.nio.fs.UnixNativeDispatcher.access(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.exists(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.fgetxattr(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.flistxattr(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.fstat(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.fstatat(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.getcwd(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.getlinelen(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.lstat(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.read(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.readdir(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.readlink(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.realpath(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.stat(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.stat1(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.statvfs(..))) && + !within(de.tum.cit.ase.ares.api..*); - pointcut unixNativeDispatcherUnlinkatMethods() : call(* sun.nio.fs.UnixNativeDispatcher.unlinkat(..)) && - !within(de.tum.cit.ase.ares.api..*); + pointcut unixNativeDispatcherWriteMethods() : + (call(* sun.nio.fs.UnixNativeDispatcher.chmod(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.chown(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.fchmod(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.fchown(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.fremovexattr(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.fsetxattr(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.futimens(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.futimes(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.lchown(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.link(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.lutimes(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.mkdir(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.mknod(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.rename(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.renameat(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.rmdir(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.symlink(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.utimes(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.write(..))) && + !within(de.tum.cit.ase.ares.api..*); - pointcut unixNativeDispatcherUtimesMethods() : call(* sun.nio.fs.UnixNativeDispatcher.utimes(..)) && - !within(de.tum.cit.ase.ares.api..*); + pointcut unixNativeDispatcherExecuteMethods() : + (call(* sun.nio.fs.UnixNativeDispatcher.close(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.closedir(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.dup(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.fdopendir(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.open(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.openat(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.opendir(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.rewind(..))) && + !within(de.tum.cit.ase.ares.api..*); - pointcut unixNativeDispatcherWriteMethods() : call(* sun.nio.fs.UnixNativeDispatcher.write(..)) && - !within(de.tum.cit.ase.ares.api..*); + pointcut unixNativeDispatcherDeleteMethods() : + (call(* sun.nio.fs.UnixNativeDispatcher.unlink(..)) || + call(* sun.nio.fs.UnixNativeDispatcher.unlinkat(..))) && + !within(de.tum.cit.ase.ares.api..*); pointcut documentHandlerParseMethods() : call(* com.sun.beans.decoder.DocumentHandler.parse(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -337,9 +232,6 @@ public aspect PointcutDefinitions { pointcut templatesImplReadObjectMethods() : call(* com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl.readObject(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut xPathFactoryImplInitMethods() : call(com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut desktopMoveToTrashMethods() : call(* java.awt.Desktop.moveToTrash(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -349,9 +241,6 @@ public aspect PointcutDefinitions { pointcut desktopSetPrintFileHandlerMethods() : call(* java.awt.Desktop.setPrintFileHandler(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut fontCheckFontFileMethods() : call(* java.awt.Font.checkFontFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut inputEventCanAccessSystemClipboardMethods() : call(* java.awt.event.InputEvent.canAccessSystemClipboard(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -364,77 +253,46 @@ public aspect PointcutDefinitions { pointcut fileTempDirectoryGenerateFileMethods() : call(* java.io.File$TempDirectory.generateFile(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut fileCanExecuteMethods() : call(* java.io.File.canExecute(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileCanReadMethods() : call(* java.io.File.canRead(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileCanWriteMethods() : call(* java.io.File.canWrite(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileCreateNewFileMethods() : call(* java.io.File.createNewFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileCreateTempFileMethods() : call(* java.io.File.createTempFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDeleteMethods() : call(* java.io.File.delete(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDeleteOnExitMethods() : call(* java.io.File.deleteOnExit(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileExistsMethods() : call(* java.io.File.exists(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileGetFreeSpaceMethods() : call(* java.io.File.getFreeSpace(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileGetTotalSpaceMethods() : call(* java.io.File.getTotalSpace(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileGetUsableSpaceMethods() : call(* java.io.File.getUsableSpace(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileIsDirectoryMethods() : call(* java.io.File.isDirectory(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileIsFileMethods() : call(* java.io.File.isFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileIsHiddenMethods() : call(* java.io.File.isHidden(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileLastModifiedMethods() : call(* java.io.File.lastModified(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileLengthMethods() : call(* java.io.File.length(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileMkdirMethods() : call(* java.io.File.mkdir(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileNormalizedListMethods() : call(* java.io.File.normalizedList(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileRenameToMethods() : call(* java.io.File.renameTo(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileSetExecutableMethods() : call(* java.io.File.setExecutable(..)) && - !within(de.tum.cit.ase.ares.api..*); + pointcut fileReadMethods() : + (call(* java.io.File.canRead(..)) || + call(* java.io.File.exists(..)) || + call(* java.io.File.getFreeSpace(..)) || + call(* java.io.File.getTotalSpace(..)) || + call(* java.io.File.getUsableSpace(..)) || + call(* java.io.File.isDirectory(..)) || + call(* java.io.File.isFile(..)) || + call(* java.io.File.isHidden(..)) || + call(* java.io.File.lastModified(..)) || + call(* java.io.File.length(..)) || + call(* java.io.File.normalizedList(..))) && + !within(de.tum.cit.ase.ares.api..*); - pointcut fileSetLastModifiedMethods() : call(* java.io.File.setLastModified(..)) && - !within(de.tum.cit.ase.ares.api..*); + pointcut fileWriteMethods() : + (call(* java.io.File.canWrite(..)) || + call(* java.io.File.createNewFile(..)) || + call(* java.io.File.createTempFile(..)) || + call(* java.io.File.setExecutable(..)) || + call(* java.io.File.setLastModified(..)) || + call(* java.io.File.setReadOnly(..)) || + call(* java.io.File.setReadable(..)) || + call(* java.io.File.setWritable(..)) || + call(* java.io.File.mkdir(..))) && + !within(de.tum.cit.ase.ares.api..*); - pointcut fileSetReadOnlyMethods() : call(* java.io.File.setReadOnly(..)) && - !within(de.tum.cit.ase.ares.api..*); + pointcut fileExecuteMethods() : + (call(* java.io.File.canExecute(..)) || + call(* java.io.File.renameTo(..))|| + call(* java.io.File.toPath(..)) || + call(* java.io.File.toURI(..))|| + call(* java.io.File.mkdirs(..))|| + call(* java.io.File.listFiles(..))) && + !within(de.tum.cit.ase.ares.api..*); - pointcut fileSetReadableMethods() : call(* java.io.File.setReadable(..)) && - !within(de.tum.cit.ase.ares.api..*); + pointcut fileDeleteMethods() : + (call(* java.io.File.delete(..)) || + call(* java.io.File.deleteOnExit(..))) && + !within(de.tum.cit.ase.ares.api..*); - pointcut fileSetWritableMethods() : call(* java.io.File.setWritable(..)) && - !within(de.tum.cit.ase.ares.api..*); pointcut fileInputStreamInitMethods() : call(java.io.FileInputStream.new(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -460,18 +318,6 @@ public aspect PointcutDefinitions { pointcut unixFileSystemMethods() : (call(* java.io.UnixFileSystem.listRoots(..)) || call(* java.io.UnixFileSystem.resolve(..))) && !within(de.tum.cit.ase.ares.api..*); - pointcut urlInitMethods() : call(java.net.URL.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut urlSetURLStreamHandlerFactoryMethods() : call(* java.net.URL.setURLStreamHandlerFactory(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut urlConnectionSetFileNameMapMethods() : call(* java.net.URLConnection.setFileNameMap(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut urlStreamHandlerProviderCheckPermissionMethods() : call(* java.net.spi.URLStreamHandlerProvider.checkPermission(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut fileTreeWalkerGetAttributesMethods() : call(* java.nio.file.FileTreeWalker.getAttributes(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -484,15 +330,6 @@ public aspect PointcutDefinitions { pointcut fileTypeDetectorCheckPermissionMethods() : call(* java.nio.file.spi.FileTypeDetector.checkPermission(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut logStreamSetDefaultStreamMethods() : call(* java.rmi.server.LogStream.setDefaultStream(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut driverManagerSetLogStreamMethods() : call(* java.sql.DriverManager.setLogStream(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut driverManagerSetLogWriterMethods() : call(* java.sql.DriverManager.setLogWriter(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut zipFileInitMethods() : call(java.util.zip.ZipFile.new(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -502,48 +339,9 @@ public aspect PointcutDefinitions { pointcut xPathFactoryFinderCreateClassMethods() : call(* javax.xml.xpath.XPathFactoryFinder.createClass(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut jrtFileSystemProviderCheckPermissionMethods() : call(* jdk.internal.jrtfs.JrtFileSystemProvider.checkPermission(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut builtinClassLoaderFindClassMethods() : call(* jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut builtinClassLoaderFindResourceMethods() : (call(* jdk.internal.loader.BuiltinClassLoader.findResourceAsStream(..)) || call(* jdk.internal.loader.BuiltinClassLoader.findResourceOnClassPath(..)) || call(* jdk.internal.loader.BuiltinClassLoader.findResourcesOnClassPath(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut urlClassPathJarLoaderCheckJarMethods() : call(* jdk.internal.loader.URLClassPath$JarLoader.checkJar(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut urlClassPathCheckMethods() : call(* jdk.internal.loader.URLClassPath.check(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut moduleReferencesExplodedModuleReaderInitMethods() : call(jdk.internal.module.ModuleReferences$ExplodedModuleReader.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut systemModuleFindersSystemModuleReaderCheckPermissionMethods() : call(* jdk.internal.module.SystemModuleFinders$SystemModuleReader.checkPermissionToConnect(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut requestPublishersFilePublisherCreateMethods() : call(* jdk.internal.net.http.RequestPublishers$FilePublisher.create(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut responseBodyHandlersFileDownloadBodyHandlerCreateMethods() : call(* jdk.internal.net.http.ResponseBodyHandlers$FileDownloadBodyHandler.create(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut responseBodyHandlersPathBodyHandlerCreateMethods() : call(* jdk.internal.net.http.ResponseBodyHandlers$PathBodyHandler.create(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut responseSubscribersPathSubscriberCreateMethods() : call(* jdk.internal.net.http.ResponseSubscribers$PathSubscriber.create(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut writeableUserPathDoPrivilegedIOMethods() : call(* jdk.jfr.internal.WriteableUserPath.doPrivilegedIO(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut readWriteSelectableChannelMethods() : call(* jdk.nio.Channels.readWriteSelectableChannel(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut jlinkInternalMainRunMethods() : call(* jdk.tools.jlink.internal.Main.run(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut dataTransfererCastToFilesMethods() : call(* sun.awt.datatransfer.DataTransferer.castToFiles(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -565,27 +363,6 @@ public aspect PointcutDefinitions { pointcut fileFontGetPublicFileNameMethods() : call(* sun.font.FileFont.getPublicFileName(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut fileServerHandlerInitMethods() : call(sun.net.httpserver.simpleserver.FileServerHandler.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut mimeTableSaveAsPropertiesMethods() : call(* sun.net.www.MimeTable.saveAsProperties(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut httpURLConnectionCheckURLFileMethods() : call(* sun.net.www.protocol.http.HttpURLConnection.checkURLFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut jarFileFactoryGetCachedJarFileMethods() : call(* sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut serverSocketChannelImplFinishAcceptMethods() : call(* sun.nio.ch.ServerSocketChannelImpl.finishAccept(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixAsynchronousServerSocketChannelImplFinishAcceptMethods() : call(* sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.finishAccept(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut abstractUserDefinedFileAttributeViewCheckAccessMethods() : call(* sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut unixChannelFactoryOpenMethods() : call(* sun.nio.fs.UnixChannelFactory.open(..)) && !within(de.tum.cit.ase.ares.api..*); @@ -682,12 +459,6 @@ public aspect PointcutDefinitions { pointcut serviceDialogPrintServicePanelThrowPrintToFileMethods() : call(* sun.print.ServiceDialog$PrintServicePanel.throwPrintToFile(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut registryImplInitMethods() : call(sun.rmi.registry.RegistryImpl.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut configFileSpiEngineRefreshMethods() : call(* sun.security.provider.ConfigFile$Spi.engineRefresh(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut filesReadMethods() : (call(* java.nio.file.Files.readAllBytes(..)) || call(* java.nio.file.Files.readAllLines(..)) || @@ -800,4 +571,135 @@ public aspect PointcutDefinitions { call(* java.nio.file.FileSystem.close(..)) && !within(de.tum.cit.ase.ares.api..*); + pointcut windowsFileSystemProviderReadSymbolicLinkMethods() : + call(* sun.nio.fs.WindowsFileSystemProvider.readSymbolicLink(..)) && !within(de.tum.cit.ase.ares.api..*); + + pointcut desktopSetOpenFileHandlerMethods() : + call(* java.awt.Desktop.setOpenFileHandler(..)) && !within(de.tum.cit.ase.ares.api..*); + + pointcut desktopExecuteMethods() : + (call(* java.awt.Desktop.browse(..)) || + call(* java.awt.Desktop.browseFileDirectory(..)) || + call(* java.awt.Desktop.edit(..)) || + call(* java.awt.Desktop.mail(..)) || + call(* java.awt.Desktop.mail(..)) || + call(* java.awt.Desktop.open(..)) || + call(* java.awt.Desktop.openHelpViewer(..)) || + call(* java.awt.Desktop.print(..)) || + call(* java.awt.Desktop.setOpenFileHandler(..)) || + call(* java.awt.Desktop.setOpenURIHandler(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fontCreateMethods() : + (call(* java.awt.Font.createFont(..)) || + call(* java.awt.Font.createFonts(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut windowsPathCheckDeleteMethods() : + call(* sun.nio.fs.WindowsPath.checkDelete(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut win32PrintJobGetAttributeValuesMethods() : + call(* sun.print.Win32PrintJob.getAttributeValues(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut hotSpotDiagnosticDumpHeapMethods() : + call(* com.sun.management.internal.HotSpotDiagnostic.dumpHeap(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut processBuilderStartMethods() : + call(* java.lang.ProcessBuilder.start(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut processImplInitMethods() : + call(java.lang.ProcessImpl.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut windowsFileSystemProviderCheckAccessMethods() : + call(* sun.nio.fs.WindowsFileSystemProvider.checkAccess(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut windowsPathCheckReadMethods() : + call(* sun.nio.fs.WindowsPath.checkRead(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut windowsPathRegisterMethods() : + call(* sun.nio.fs.WindowsPath.register(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut windowsFileSystemGetRootDirectoriesMethods() : + call(* sun.nio.fs.WindowsFileSystem.getRootDirectories(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut jarFileFactoryGetCachedJarFileMethods() : + call(* sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileServerHandlerInitMethods() : + call(sun.net.httpserver.simpleserver.FileServerHandler.new(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut win32ShellFolderManager2CheckFileMethods() : + call(* sun.awt.shell.Win32ShellFolderManager2.checkFile(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut win32ShellFolder2GetFileSystemPathMethods() : + call(* sun.awt.shell.Win32ShellFolder2.getFileSystemPath(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut win32ShellFolder2ListFilesMethods() : + call(* sun.awt.shell.Win32ShellFolder2.listFiles(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut winNTFileSystemAccessMethods() : + call(* java.io.WinNTFileSystem.access(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut winNTFileSystemResolveMethods() : + call(* java.io.WinNTFileSystem.resolve(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileChannelExecuteMethods() : + (call(* java.nio.channels.FileChannel.open(..)) || + call(* java.nio.channels.FileChannel.position(..)) || + call(* java.nio.channels.FileChannel.tryLock(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileChannelReadMethods() : + (call(* java.nio.channels.FileChannel.read(..)) || + call(* java.nio.channels.FileChannel.size(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileChannelWriteMethods() : + (call(* java.nio.channels.FileChannel.write(..)) || + call(* java.nio.channels.FileChannel.force(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileWriterMethods() : + (call(java.io.FileWriter.new(..)) || + call(* java.io.FileWriter.append(..)) || + call(* java.io.FileWriter.write(..)) || + call(* java.io.FileWriter.flush(..)) || + call(* java.io.FileWriter.close(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileHandlerMethods() : + (call(java.util.logging.FileHandler.new(..)) || + call(* java.util.logging.FileHandler.close(..)) || + call(* java.util.logging.FileHandler.flush(..)) || + call(* java.util.logging.FileHandler.publish(..)) || + call(* java.util.logging.FileHandler.setLevel(..)) || + call(* java.util.logging.FileHandler.setFormatter(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut midiSystemMethods() : + (call(* javax.sound.midi.MidiSystem.getMidiDevice(..)) || + call(* javax.sound.midi.MidiSystem.getMidiDeviceInfo(..)) || + call(* javax.sound.midi.MidiSystem.getReceiver(..)) || + call(* javax.sound.midi.MidiSystem.getSequencer(..)) || + call(* javax.sound.midi.MidiSystem.getSoundbank(..)) || + call(* javax.sound.midi.MidiSystem.getSynthesizer(..)) || + call(* javax.sound.midi.MidiSystem.getTransmitter(..))) && + !within(de.tum.cit.ase.ares.api..*); + } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj deleted file mode 100644 index d4467715..00000000 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/PointcutDefinitionsExample.aj +++ /dev/null @@ -1,20 +0,0 @@ -package de.tum.cit.ase.ares.api.aspectconfiguration.java; - -public aspect PointcutDefinitionsExample { - /* - // Pointcut for Files.write method - pointcut filesWriteMethod() : call(* java.nio.file.Files.write(..)); - - // Pointcut for Files.readAllBytes, Files.readAllLines, and Files.readString methods - pointcut filesReadMethod() : - (call(* java.nio.file.Files.readAllBytes(..)) || - call(* java.nio.file.Files.readAllLines(..)) || - call(* java.nio.file.Files.readString(..))) && - !within(de.tum.cit.ase.ares.api..*); - - // Pointcut for Files.delete method - pointcut filesDeleteMethod() : call(* java.nio.file.Files.delete(..)); - - */ - -} diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java index 20c9e6a3..9563be66 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java @@ -195,36 +195,36 @@ public List writeTestCasesToFiles(Path path) { // try { Path javaAdviceDefinitionPath = Files.copy( - Path.of("src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj"), - path.resolve("AdviceDefinition.aj") + Path.of("src/main/resources/aspectOrientedProgrammingFiles/FileSystemAdviceDefinition.aj"), + path.resolve("FileSystemAdviceDefinition.aj") ); } // catch (InvalidPathException e) { - throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj due to an incorrect address resolving: " + e); + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/FileSystemAdviceDefinition.aj due to an incorrect address resolving: " + e); } catch (UnsupportedOperationException e) { - throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj due to missing supported by this JVM: " + e); + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/FileSystemAdviceDefinition.aj due to missing supported by this JVM: " + e); } catch (FileAlreadyExistsException e) { - throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj, as it already exists: " + e); + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/FileSystemAdviceDefinition.aj, as it already exists: " + e); } catch (IOException e) { - throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/AdviceDefinition.aj due to an I/O exception: " + e); + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/FileSystemAdviceDefinition.aj due to an I/O exception: " + e); } // try { Path javaPointcutDefinitionPath = Files.copy( - Path.of("src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj"), - path.resolve("PointcutDefinitions.aj") + Path.of("src/main/resources/aspectOrientedProgrammingFiles/FileSystemPointcutDefinitions.aj"), + path.resolve("FileSystemPointcutDefinitions.aj") ); } // catch (InvalidPathException e) { - throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj due to an incorrect address resolving: " + e); + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/FileSystemPointcutDefinitions.aj due to an incorrect address resolving: " + e); } catch (UnsupportedOperationException e) { - throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj due to missing supported by this JVM: " + e); + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/FileSystemPointcutDefinitions.aj due to missing supported by this JVM: " + e); } catch (FileAlreadyExistsException e) { - throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj, as it already exists: " + e); + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/FileSystemPointcutDefinitions.aj, as it already exists: " + e); } catch (IOException e) { - throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/PointcutDefinitions.aj due to an I/O exception: " + e); + throw new SecurityException("Ares Security Error (Stage: Creation): Cannot copy src/main/resources/aspectOrientedProgrammingFiles/FileSystemPointcutDefinitions.aj due to an I/O exception: " + e); } // Path javaAspectConfigurationCollectionFile; From 007b1763d3f55bd1207811a225eeacc7022e136f Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Tue, 6 Aug 2024 16:20:50 +0200 Subject: [PATCH 20/30] fixing maven --- .../de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java b/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java index 100425b4..938785e9 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java @@ -31,7 +31,6 @@ void accessPathAllFiles() { @PublicTest @WhitelistPath("") - @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") void accessPathAllowed() throws IOException { PathAccessPenguin.accessPath(Path.of("pom.xml")); } From 459d547fc93a12ceb95815f8523c6a81ea4318be Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Tue, 6 Aug 2024 19:52:31 +0200 Subject: [PATCH 21/30] added comment --- .../java/FileSystemAdviceDefinition.aj | 59 ++++++++++++++++++- .../java/FileSystemPointcutDefinitions.aj | 54 +++++++++++++++++ 2 files changed, 112 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj index d140438f..027052f8 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj @@ -5,6 +5,7 @@ import org.aspectj.lang.JoinPoint; public aspect FileSystemAdviceDefinition { + // This method handles the security check for file system interactions by validating if the requested operation type is allowed for the file in context. private boolean handleAroundAdvice(JoinPoint thisJoinPoint, String operationType) { String fileName = thisJoinPoint.getSourceLocation().getFileName(); @@ -1194,5 +1195,61 @@ public aspect FileSystemAdviceDefinition { throwSecurityException(thisJoinPoint); return null; } - + + Object around() : FileSystemPointcutDefinitions.fileSystemsReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : FileSystemPointcutDefinitions.fileSystemsExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : FileSystemPointcutDefinitions.defaultFileSystemExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : FileSystemPointcutDefinitions.fileSystemProviderReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : FileSystemPointcutDefinitions.fileSystemProviderWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : FileSystemPointcutDefinitions.fileSystemProviderExecuteMethods() { + if (handleAroundAdvice(thisJoinPoint, "execute")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + + Object around() : FileSystemPointcutDefinitions.fileSystemProviderDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { + return proceed(); + } + throwSecurityException(thisJoinPoint); + return null; + } + } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj index 1d1a7898..84e12cfe 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj @@ -2,6 +2,7 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; public aspect FileSystemPointcutDefinitions { + // These are the FileSystem related methods which we want to ban pointcut unixToolkitLoadGtkMethods() : (call(* sun.awt.UNIXToolkit.load_gtk(..)) || call(* sun.awt.UNIXToolkit.load_gtk_icon(..)) || @@ -702,4 +703,57 @@ public aspect FileSystemPointcutDefinitions { call(* javax.sound.midi.MidiSystem.getTransmitter(..))) && !within(de.tum.cit.ase.ares.api..*); + pointcut fileSystemsReadMethods() : + (call(* java.nio.file.FileSystems.getDefault(..)) || + call(* java.nio.file.FileSystems.getFileSystem(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemsExecuteMethods() : + call(* java.nio.file.FileSystems.newFileSystem(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut defaultFileSystemExecuteMethods() : + call(* java.io.DefaultFileSystem.getFileSystem(..)) && + !within(de.tum.cit.ase.ares.api..*); + + // FileSystemProvider Methods + pointcut fileSystemProviderReadMethods() : + (call(* java.nio.file.spi.FileSystemProvider.checkAccess(..)) || + call(* java.nio.file.spi.FileSystemProvider.getFileAttributeView(..)) || + call(* java.nio.file.spi.FileSystemProvider.getFileStore(..)) || + call(* java.nio.file.spi.FileSystemProvider.getPath(..)) || + call(* java.nio.file.spi.FileSystemProvider.getScheme(..)) || + call(* java.nio.file.spi.FileSystemProvider.isHidden(..)) || + call(* java.nio.file.spi.FileSystemProvider.isSameFile(..)) || + call(* java.nio.file.spi.FileSystemProvider.isSymbolicLink(..)) || + call(* java.nio.file.spi.FileSystemProvider.newAsynchronousFileChannel(..)) || + call(* java.nio.file.spi.FileSystemProvider.newByteChannel(..)) || + call(* java.nio.file.spi.FileSystemProvider.newDirectoryStream(..)) || + call(* java.nio.file.spi.FileSystemProvider.newFileChannel(..)) || + call(* java.nio.file.spi.FileSystemProvider.newInputStream(..)) || + call(* java.nio.file.spi.FileSystemProvider.newOutputStream(..)) || + call(* java.nio.file.spi.FileSystemProvider.newWatchService(..)) || + call(* java.nio.file.spi.FileSystemProvider.readAttributes(..)) || + call(* java.nio.file.spi.FileSystemProvider.readSymbolicLink(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemProviderWriteMethods() : + (call(* java.nio.file.spi.FileSystemProvider.copy(..)) || + call(* java.nio.file.spi.FileSystemProvider.createDirectory(..)) || + call(* java.nio.file.spi.FileSystemProvider.createLink(..)) || + call(* java.nio.file.spi.FileSystemProvider.createSymbolicLink(..)) || + call(* java.nio.file.spi.FileSystemProvider.move(..)) || + call(* java.nio.file.spi.FileSystemProvider.setAttribute(..))|| + call(* java.nio.file.spi.FileSystemProvider.newFileSystem(..))) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemProviderExecuteMethods() : + call(* java.nio.file.spi.FileSystemProvider.checkAccess(..)) && + !within(de.tum.cit.ase.ares.api..*); + + pointcut fileSystemProviderDeleteMethods() : + (call(* java.nio.file.spi.FileSystemProvider.delete(..)) || + call(* java.nio.file.spi.FileSystemProvider.deleteIfExists(..))) && + !within(de.tum.cit.ase.ares.api..*); + } \ No newline at end of file From 9c2027bb4e5153aebea9f85d75f8321869d74ac5 Mon Sep 17 00:00:00 2001 From: sarps Date: Wed, 7 Aug 2024 19:25:20 +0200 Subject: [PATCH 22/30] Improve FileSystem access methods --- .../methods/file-system-access-methods.txt | 2063 +---------------- 1 file changed, 60 insertions(+), 2003 deletions(-) diff --git a/src/main/resources/archunit/files/java/methods/file-system-access-methods.txt b/src/main/resources/archunit/files/java/methods/file-system-access-methods.txt index de339871..b74b36ec 100644 --- a/src/main/resources/archunit/files/java/methods/file-system-access-methods.txt +++ b/src/main/resources/archunit/files/java/methods/file-system-access-methods.txt @@ -1,2011 +1,68 @@ -java.awt.Cursor.getSystemCustomCursor(java.lang.String) -java.awt.Desktop.browse(java.net.URI) -java.awt.Desktop.browseFileDirectory(java.io.File) -java.awt.Desktop.edit(java.io.File) -java.awt.Desktop.mail() -java.awt.Desktop.mail(java.net.URI) -java.awt.Desktop.moveToTrash(java.io.File) -java.awt.Desktop.open(java.io.File) -java.awt.Desktop.openHelpViewer() -java.awt.Desktop.print(java.io.File) -java.awt.Desktop.setDefaultMenuBar(javax.swing.JMenuBar) -java.awt.Desktop.setOpenFileHandler(java.awt.desktop.OpenFilesHandler) -java.awt.Desktop.setOpenURIHandler(java.awt.desktop.OpenURIHandler) -java.awt.Font.createFont(int, java.io.File) -java.awt.Font.createFont(int, java.io.InputStream) -java.awt.Font.createFonts(java.io.File) -java.awt.Font.createFonts(java.io.InputStream) -java.awt.SplashScreen.getImageURL() -java.awt.Window.applyResourceBundle(java.lang.String) -java.awt.Window.getInputContext() -java.awt.datatransfer.SystemFlavorMap.addFlavorForUnencodedNative(java.lang.String, java.awt.datatransfer.DataFlavor) -java.awt.datatransfer.SystemFlavorMap.addUnencodedNativeForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String) -java.awt.datatransfer.SystemFlavorMap.getFlavorsForNative(java.lang.String) -java.awt.datatransfer.SystemFlavorMap.getFlavorsForNatives([Ljava.lang.String;) -java.awt.datatransfer.SystemFlavorMap.getNativesForFlavor(java.awt.datatransfer.DataFlavor) -java.awt.datatransfer.SystemFlavorMap.getNativesForFlavors([Ljava.awt.datatransfer.DataFlavor;) -java.awt.datatransfer.SystemFlavorMap.setFlavorsForNative(java.lang.String, [Ljava.awt.datatransfer.DataFlavor;) -java.awt.datatransfer.SystemFlavorMap.setNativesForFlavor(java.awt.datatransfer.DataFlavor, [Ljava.lang.String;) -java.awt.im.InputContext.getInstance() -java.io.File.canExecute() +java.io.File.length() +java.io.File.isFile() +java.io.File.lastModified() +java.io.File.isDirectory() +java.io.File.isHidden() java.io.File.canRead() -java.io.File.canWrite() -java.io.File.createNewFile() -java.io.File.createTempFile(java.lang.String, java.lang.String) -java.io.File.createTempFile(java.lang.String, java.lang.String, java.io.File) -java.io.File.delete() -java.io.File.deleteOnExit() java.io.File.exists() -java.io.File.getFreeSpace() -java.io.File.getTotalSpace() java.io.File.getUsableSpace() -java.io.File.isDirectory() -java.io.File.isFile() -java.io.File.isHidden() -java.io.File.lastModified() -java.io.File.length() -java.io.File.list() -java.io.File.list(java.io.FilenameFilter) -java.io.File.listFiles() -java.io.File.listFiles(java.io.FileFilter) -java.io.File.listFiles(java.io.FilenameFilter) +java.io.File.getTotalSpace() +java.io.File.normalizedList() +java.io.File.getFreeSpace() +java.io.FileInputStream.(java.io.File) +java.io.RandomAccessFile.(java.io.File, java.lang.String, boolean) +sun.nio.fs.WindowsPath.checkRead() +sun.nio.fs.WindowsPath.register(java.nio.file.WatchService, [Ljava.nio.file.WatchEvent$Kind;, [Ljava.nio.file.WatchEvent$Modifier;) +sun.nio.fs.WindowsFileSystem.getRootDirectories() +sun.nio.fs.WindowsChannelFactory.open(java.lang.String, java.lang.String, sun.nio.fs.WindowsChannelFactory$Flags, long) +sun.nio.fs.WindowsAclFileAttributeView.checkAccess(sun.nio.fs.WindowsPath, boolean, boolean) +sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(java.lang.String, boolean, boolean) +sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(java.net.URL) +sun.net.httpserver.simpleserver.FileServerHandler.(java.nio.file.Path, java.util.function.UnaryOperator) +sun.awt.shell.Win32ShellFolderManager2.checkFile(java.io.File, java.lang.SecurityManager) +sun.awt.shell.Win32ShellFolder2.getFileSystemPath(int) +sun.awt.shell.Win32ShellFolder2.listFiles(boolean) +sun.awt.shell.ShellFolderManager.checkFile(java.io.File, java.lang.SecurityManager) +sun.awt.image.FileImageSource.(java.lang.String) +java.util.zip.ZipFile.(java.io.File, int, java.nio.charset.Charset) +java.io.WinNTFileSystem.access(java.lang.String) +java.io.WinNTFileSystem.resolve(java.io.File) +sun.nio.fs.WindowsFileSystemProvider.checkAccess(java.nio.file.Path, [Ljava.nio.file.AccessMode;) +java.io.File.canExecute() +java.io.File.setReadOnly() java.io.File.mkdir() -java.io.File.mkdirs() +java.io.File.setWritable(boolean, boolean) +java.io.File.setReadable(boolean, boolean) +java.io.File.createTempFile(java.lang.String, java.lang.String, java.io.File) +java.io.File.canWrite() +java.io.File.setLastModified(long) +java.io.File.createNewFile() +java.io.File.renameTo(java.io.File) java.io.File.renameTo(java.io.File) -java.io.File.setExecutable(boolean) java.io.File.setExecutable(boolean, boolean) -java.io.File.setLastModified(long) -java.io.File.setReadOnly() -java.io.File.setReadable(boolean) -java.io.File.setReadable(boolean, boolean) -java.io.File.setWritable(boolean) -java.io.File.setWritable(boolean, boolean) -java.io.File.toURI() -java.io.File.toURL() -java.io.FileInputStream.(java.io.File) -java.io.FileInputStream.(java.lang.String) -java.io.FileOutputStream.(java.io.File) java.io.FileOutputStream.(java.io.File, boolean) -java.io.FileOutputStream.(java.lang.String) -java.io.FileOutputStream.(java.lang.String, boolean) -java.io.FilePermission.(java.lang.String, java.lang.String) -java.io.FileReader.(java.io.File) -java.io.FileReader.(java.io.File, java.nio.charset.Charset) -java.io.FileReader.(java.lang.String) -java.io.FileReader.(java.lang.String, java.nio.charset.Charset) -java.io.FileWriter.(java.io.File) -java.io.FileWriter.(java.io.File, boolean) -java.io.FileWriter.(java.io.File, java.nio.charset.Charset) -java.io.FileWriter.(java.io.File, java.nio.charset.Charset, boolean) -java.io.FileWriter.(java.lang.String) -java.io.FileWriter.(java.lang.String, boolean) -java.io.FileWriter.(java.lang.String, java.nio.charset.Charset) -java.io.FileWriter.(java.lang.String, java.nio.charset.Charset, boolean) -java.io.PrintStream.(java.io.File) -java.io.PrintStream.(java.io.File, java.lang.String) -java.io.PrintStream.(java.io.File, java.nio.charset.Charset) -java.io.PrintStream.(java.lang.String) -java.io.PrintStream.(java.lang.String, java.lang.String) -java.io.PrintStream.(java.lang.String, java.nio.charset.Charset) -java.io.PrintWriter.(java.io.File) -java.io.PrintWriter.(java.io.File, java.lang.String) -java.io.PrintWriter.(java.io.File, java.nio.charset.Charset) -java.io.PrintWriter.(java.lang.String) -java.io.PrintWriter.(java.lang.String, java.lang.String) -java.io.PrintWriter.(java.lang.String, java.nio.charset.Charset) -java.io.RandomAccessFile.(java.io.File, java.lang.String) -java.io.RandomAccessFile.(java.lang.String, java.lang.String) -java.lang.Runtime.exec([Ljava.lang.String;, [Ljava.lang.String;, java.io.File) -java.lang.Runtime.exec(java.lang.String, [Ljava.lang.String;, java.io.File) -java.lang.SecurityManager.checkDelete(java.lang.String) -java.lang.SecurityManager.checkExec(java.lang.String) -java.lang.SecurityManager.checkRead(java.lang.String) -java.lang.SecurityManager.checkRead(java.lang.String, java.lang.Object) -java.lang.SecurityManager.checkWrite(java.lang.String) -java.net.http.HttpRequest$BodyPublishers.ofFile(java.nio.file.Path) -java.net.http.HttpResponse$BodyHandlers.ofFile(java.nio.file.Path) -java.net.http.HttpResponse$BodyHandlers.ofFile(java.nio.file.Path, [Ljava.nio.file.OpenOption;) -java.net.http.HttpResponse$BodyHandlers.ofFileDownload(java.nio.file.Path, [Ljava.nio.file.OpenOption;) -java.net.http.HttpResponse$BodySubscribers.ofFile(java.nio.file.Path) -java.net.http.HttpResponse$BodySubscribers.ofFile(java.nio.file.Path, [Ljava.nio.file.OpenOption;) -java.security.KeyStore$Builder.newInstance(java.io.File, java.security.KeyStore$ProtectionParameter) -java.security.KeyStore$Builder.newInstance(java.lang.String, java.security.Provider, java.io.File, java.security.KeyStore$ProtectionParameter) -java.security.KeyStore.getInstance(java.io.File, [C) -java.security.KeyStore.getInstance(java.io.File, java.security.KeyStore$LoadStoreParameter) -java.util.Formatter.(java.io.File) -java.util.Formatter.(java.io.File, java.lang.String) -java.util.Formatter.(java.io.File, java.lang.String, java.util.Locale) -java.util.Formatter.(java.io.File, java.nio.charset.Charset, java.util.Locale) -java.util.Formatter.(java.lang.String) -java.util.Formatter.(java.lang.String, java.lang.String) -java.util.Formatter.(java.lang.String, java.lang.String, java.util.Locale) -java.util.Formatter.(java.lang.String, java.nio.charset.Charset, java.util.Locale) -java.util.ResourceBundle$Control.needsReload(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, java.util.ResourceBundle, long) -java.util.ResourceBundle.getBundle(java.lang.String) -java.util.ResourceBundle.getBundle(java.lang.String, java.lang.Module) -java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale) -java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader) -java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle$Control) -java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale, java.lang.Module) -java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle$Control) -java.util.ResourceBundle.getBundle(java.lang.String, java.util.ResourceBundle$Control) -java.util.Scanner.(java.io.File) -java.util.Scanner.(java.io.File, java.lang.String) -java.util.Scanner.(java.io.File, java.nio.charset.Charset) -java.util.jar.JarFile.(java.io.File) -java.util.jar.JarFile.(java.io.File, boolean) -java.util.jar.JarFile.(java.io.File, boolean, int) -java.util.jar.JarFile.(java.io.File, boolean, int, java.lang.Runtime$Version) -java.util.jar.JarFile.(java.lang.String) -java.util.jar.JarFile.(java.lang.String, boolean) -java.util.logging.FileHandler.() -java.util.logging.FileHandler.(java.lang.String) -java.util.logging.FileHandler.(java.lang.String, boolean) -java.util.logging.FileHandler.(java.lang.String, int, int) -java.util.logging.FileHandler.(java.lang.String, int, int, boolean) -java.util.logging.FileHandler.(java.lang.String, long, int, boolean) -java.util.logging.FileHandler.close() -java.util.logging.LogManager.addLogger(java.util.logging.Logger) -java.util.logging.LogManager.getLogger(java.lang.String) -java.util.logging.LogManager.getLoggerNames() -java.util.logging.LogManager.readConfiguration() -java.util.logging.LogManager.readConfiguration(java.io.InputStream) -java.util.logging.LogManager.reset() -java.util.logging.LogManager.updateConfiguration(java.io.InputStream, java.util.function.Function) -java.util.logging.LogManager.updateConfiguration(java.util.function.Function) -java.util.logging.Logger.config(java.lang.String) -java.util.logging.Logger.config(java.util.function.Supplier) -java.util.logging.Logger.entering(java.lang.String, java.lang.String) -java.util.logging.Logger.entering(java.lang.String, java.lang.String, [Ljava.lang.Object;) -java.util.logging.Logger.entering(java.lang.String, java.lang.String, java.lang.Object) -java.util.logging.Logger.exiting(java.lang.String, java.lang.String) -java.util.logging.Logger.exiting(java.lang.String, java.lang.String, java.lang.Object) -java.util.logging.Logger.fine(java.lang.String) -java.util.logging.Logger.fine(java.util.function.Supplier) -java.util.logging.Logger.finer(java.lang.String) -java.util.logging.Logger.finer(java.util.function.Supplier) -java.util.logging.Logger.finest(java.lang.String) -java.util.logging.Logger.finest(java.util.function.Supplier) -java.util.logging.Logger.getAnonymousLogger() -java.util.logging.Logger.getAnonymousLogger(java.lang.String) -java.util.logging.Logger.getLogger(java.lang.String) -java.util.logging.Logger.getLogger(java.lang.String, java.lang.String) -java.util.logging.Logger.getResourceBundle() -java.util.logging.Logger.info(java.lang.String) -java.util.logging.Logger.info(java.util.function.Supplier) -java.util.logging.Logger.log(java.util.logging.Level, java.lang.String) -java.util.logging.Logger.log(java.util.logging.Level, java.lang.String, [Ljava.lang.Object;) -java.util.logging.Logger.log(java.util.logging.Level, java.lang.String, java.lang.Object) -java.util.logging.Logger.log(java.util.logging.Level, java.lang.String, java.lang.Throwable) -java.util.logging.Logger.log(java.util.logging.Level, java.lang.Throwable, java.util.function.Supplier) -java.util.logging.Logger.log(java.util.logging.Level, java.util.function.Supplier) -java.util.logging.Logger.logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String) -java.util.logging.Logger.logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, [Ljava.lang.Object;) -java.util.logging.Logger.logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object) -java.util.logging.Logger.logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable) -java.util.logging.Logger.logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.Throwable, java.util.function.Supplier) -java.util.logging.Logger.logp(java.util.logging.Level, java.lang.String, java.lang.String, java.util.function.Supplier) -java.util.logging.Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String) -java.util.logging.Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, [Ljava.lang.Object;) -java.util.logging.Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object) -java.util.logging.Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable) -java.util.logging.Logger.severe(java.lang.String) -java.util.logging.Logger.severe(java.util.function.Supplier) -java.util.logging.Logger.throwing(java.lang.String, java.lang.String, java.lang.Throwable) -java.util.logging.Logger.warning(java.lang.String) -java.util.logging.Logger.warning(java.util.function.Supplier) -java.util.prefs.AbstractPreferences.exportNode(java.io.OutputStream) -java.util.prefs.AbstractPreferences.exportSubtree(java.io.OutputStream) -java.util.prefs.Preferences.importPreferences(java.io.InputStream) -java.util.spi.AbstractResourceBundleProvider.getBundle(java.lang.String, java.util.Locale) -java.util.zip.ZipFile.(java.io.File) -java.util.zip.ZipFile.(java.io.File, int) +java.io.RandomAccessFile.(java.io.File, java.lang.String, boolean) +java.lang.ProcessImpl.newFileOutputStream(java.io.File, boolean) +sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(java.lang.String, boolean, boolean) +sun.nio.fs.WindowsAclFileAttributeView.checkAccess(sun.nio.fs.WindowsPath, boolean, boolean) +sun.nio.fs.WindowsChannelFactory.open(java.lang.String, java.lang.String, sun.nio.fs.WindowsChannelFactory$Flags, long) +sun.nio.fs.WindowsPath.checkWrite() +sun.print.Win32PrintJob.getAttributeValues(javax.print.DocFlavor) +java.awt.Desktop.moveToTrash(java.io.File) +java.io.File.delete() +java.io.File.deleteOnExit() java.util.zip.ZipFile.(java.io.File, int, java.nio.charset.Charset) -java.util.zip.ZipFile.(java.io.File, java.nio.charset.Charset) -java.util.zip.ZipFile.(java.lang.String) -java.util.zip.ZipFile.(java.lang.String, java.nio.charset.Charset) -javax.accessibility.AccessibleBundle.toDisplayString() -javax.accessibility.AccessibleBundle.toDisplayString(java.util.Locale) -javax.accessibility.AccessibleBundle.toString() -javax.accessibility.AccessibleRelationSet.toString() -javax.accessibility.AccessibleStateSet.toString() -javax.imageio.ImageIO.createImageInputStream(java.lang.Object) -javax.imageio.ImageIO.createImageOutputStream(java.lang.Object) -javax.imageio.ImageIO.read(java.io.File) -javax.imageio.ImageIO.read(java.io.InputStream) -javax.imageio.ImageIO.read(java.net.URL) -javax.imageio.ImageIO.setCacheDirectory(java.io.File) -javax.imageio.ImageIO.write(java.awt.image.RenderedImage, java.lang.String, java.io.File) -javax.imageio.ImageIO.write(java.awt.image.RenderedImage, java.lang.String, java.io.OutputStream) -javax.imageio.metadata.IIOMetadataFormatImpl.getAttributeDescription(java.lang.String, java.lang.String, java.util.Locale) -javax.imageio.metadata.IIOMetadataFormatImpl.getElementDescription(java.lang.String, java.util.Locale) -javax.imageio.stream.FileCacheImageInputStream.(java.io.InputStream, java.io.File) -javax.imageio.stream.FileCacheImageOutputStream.(java.io.OutputStream, java.io.File) -javax.imageio.stream.FileCacheImageOutputStream.close() -javax.imageio.stream.FileImageInputStream.(java.io.File) -javax.imageio.stream.FileImageOutputStream.(java.io.File) -javax.management.loading.MLet.() -javax.management.loading.MLet.([Ljava.net.URL;) -javax.management.loading.MLet.([Ljava.net.URL;, boolean) -javax.management.loading.MLet.([Ljava.net.URL;, java.lang.ClassLoader) -javax.management.loading.MLet.([Ljava.net.URL;, java.lang.ClassLoader, boolean) -javax.management.loading.MLet.([Ljava.net.URL;, java.lang.ClassLoader, java.net.URLStreamHandlerFactory) -javax.management.loading.MLet.([Ljava.net.URL;, java.lang.ClassLoader, java.net.URLStreamHandlerFactory, boolean) -javax.management.loading.MLet.getMBeansFromURL(java.lang.String) -javax.management.loading.MLet.getMBeansFromURL(java.net.URL) -javax.management.loading.PrivateMLet.([Ljava.net.URL;, boolean) -javax.management.loading.PrivateMLet.([Ljava.net.URL;, java.lang.ClassLoader, boolean) -javax.management.loading.PrivateMLet.([Ljava.net.URL;, java.lang.ClassLoader, java.net.URLStreamHandlerFactory, boolean) -javax.management.modelmbean.RequiredModelMBean.sendAttributeChangeNotification(javax.management.Attribute, javax.management.Attribute) -javax.management.modelmbean.RequiredModelMBean.sendAttributeChangeNotification(javax.management.AttributeChangeNotification) -javax.management.modelmbean.RequiredModelMBean.sendNotification(java.lang.String) -javax.management.modelmbean.RequiredModelMBean.sendNotification(javax.management.Notification) -javax.management.modelmbean.RequiredModelMBean.setAttribute(javax.management.Attribute) -javax.management.modelmbean.RequiredModelMBean.setAttributes(javax.management.AttributeList) -javax.management.remote.rmi.RMIConnectionImpl.addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.addNotificationListeners([Ljavax.management.ObjectName;, [Ljava.rmi.MarshalledObject;, [Ljavax.security.auth.Subject;) -javax.management.remote.rmi.RMIConnectionImpl.createMBean(java.lang.String, javax.management.ObjectName, java.rmi.MarshalledObject, [Ljava.lang.String;, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.createMBean(java.lang.String, javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, [Ljava.lang.String;, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.createMBean(java.lang.String, javax.management.ObjectName, javax.management.ObjectName, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.createMBean(java.lang.String, javax.management.ObjectName, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.getAttribute(javax.management.ObjectName, java.lang.String, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.getAttributes(javax.management.ObjectName, [Ljava.lang.String;, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.getDefaultDomain(javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.getDomains(javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.getMBeanCount(javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.getMBeanInfo(javax.management.ObjectName, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.getObjectInstance(javax.management.ObjectName, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.invoke(javax.management.ObjectName, java.lang.String, java.rmi.MarshalledObject, [Ljava.lang.String;, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.isInstanceOf(javax.management.ObjectName, java.lang.String, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.isRegistered(javax.management.ObjectName, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.queryMBeans(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.queryNames(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.removeNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.removeNotificationListener(javax.management.ObjectName, javax.management.ObjectName, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.removeNotificationListeners(javax.management.ObjectName, [Ljava.lang.Integer;, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.setAttribute(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.setAttributes(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnectionImpl.unregisterMBean(javax.management.ObjectName, javax.security.auth.Subject) -javax.management.remote.rmi.RMIConnector.connect() -javax.management.remote.rmi.RMIConnector.connect(java.util.Map) -javax.management.remote.rmi.RMIConnectorServer.start() -javax.management.remote.rmi.RMIConnectorServer.stop() -javax.management.remote.rmi.RMIServerImpl.newClient(java.lang.Object) -javax.naming.InitialContext.() -javax.naming.InitialContext.(java.util.Hashtable) -javax.naming.InitialContext.bind(java.lang.String, java.lang.Object) -javax.naming.InitialContext.bind(javax.naming.Name, java.lang.Object) -javax.naming.InitialContext.createSubcontext(java.lang.String) -javax.naming.InitialContext.createSubcontext(javax.naming.Name) -javax.naming.InitialContext.destroySubcontext(java.lang.String) -javax.naming.InitialContext.destroySubcontext(javax.naming.Name) -javax.naming.InitialContext.doLookup(java.lang.String) -javax.naming.InitialContext.doLookup(javax.naming.Name) -javax.naming.InitialContext.getNameParser(java.lang.String) -javax.naming.InitialContext.getNameParser(javax.naming.Name) -javax.naming.InitialContext.list(java.lang.String) -javax.naming.InitialContext.list(javax.naming.Name) -javax.naming.InitialContext.listBindings(java.lang.String) -javax.naming.InitialContext.listBindings(javax.naming.Name) -javax.naming.InitialContext.lookup(java.lang.String) -javax.naming.InitialContext.lookup(javax.naming.Name) -javax.naming.InitialContext.lookupLink(java.lang.String) -javax.naming.InitialContext.lookupLink(javax.naming.Name) -javax.naming.InitialContext.rebind(java.lang.String, java.lang.Object) -javax.naming.InitialContext.rebind(javax.naming.Name, java.lang.Object) -javax.naming.InitialContext.rename(java.lang.String, java.lang.String) -javax.naming.InitialContext.rename(javax.naming.Name, javax.naming.Name) -javax.naming.InitialContext.unbind(java.lang.String) -javax.naming.InitialContext.unbind(javax.naming.Name) -javax.naming.directory.InitialDirContext.() -javax.naming.directory.InitialDirContext.(java.util.Hashtable) -javax.naming.directory.InitialDirContext.bind(java.lang.String, java.lang.Object, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.bind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.createSubcontext(java.lang.String, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.createSubcontext(javax.naming.Name, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.getAttributes(java.lang.String) -javax.naming.directory.InitialDirContext.getAttributes(java.lang.String, [Ljava.lang.String;) -javax.naming.directory.InitialDirContext.getAttributes(javax.naming.Name) -javax.naming.directory.InitialDirContext.getAttributes(javax.naming.Name, [Ljava.lang.String;) -javax.naming.directory.InitialDirContext.getSchema(java.lang.String) -javax.naming.directory.InitialDirContext.getSchema(javax.naming.Name) -javax.naming.directory.InitialDirContext.getSchemaClassDefinition(java.lang.String) -javax.naming.directory.InitialDirContext.getSchemaClassDefinition(javax.naming.Name) -javax.naming.directory.InitialDirContext.modifyAttributes(java.lang.String, [Ljavax.naming.directory.ModificationItem;) -javax.naming.directory.InitialDirContext.modifyAttributes(java.lang.String, int, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.modifyAttributes(javax.naming.Name, [Ljavax.naming.directory.ModificationItem;) -javax.naming.directory.InitialDirContext.modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.rebind(java.lang.String, java.lang.Object, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.rebind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.search(java.lang.String, java.lang.String, [Ljava.lang.Object;, javax.naming.directory.SearchControls) -javax.naming.directory.InitialDirContext.search(java.lang.String, java.lang.String, javax.naming.directory.SearchControls) -javax.naming.directory.InitialDirContext.search(java.lang.String, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.search(java.lang.String, javax.naming.directory.Attributes, [Ljava.lang.String;) -javax.naming.directory.InitialDirContext.search(javax.naming.Name, java.lang.String, [Ljava.lang.Object;, javax.naming.directory.SearchControls) -javax.naming.directory.InitialDirContext.search(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls) -javax.naming.directory.InitialDirContext.search(javax.naming.Name, javax.naming.directory.Attributes) -javax.naming.directory.InitialDirContext.search(javax.naming.Name, javax.naming.directory.Attributes, [Ljava.lang.String;) -javax.naming.ldap.ControlFactory.getControlInstance(javax.naming.ldap.Control, javax.naming.Context, java.util.Hashtable) -javax.naming.ldap.InitialLdapContext.() -javax.naming.ldap.InitialLdapContext.(java.util.Hashtable, [Ljavax.naming.ldap.Control;) -javax.naming.spi.DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable, javax.naming.directory.Attributes) -javax.naming.spi.DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable, javax.naming.directory.Attributes) -javax.naming.spi.NamingManager.getContinuationContext(javax.naming.CannotProceedException) -javax.naming.spi.NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable) -javax.naming.spi.NamingManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable) -javax.naming.spi.NamingManager.getURLContext(java.lang.String, java.util.Hashtable) -javax.print.ServiceUI.printDialog(java.awt.GraphicsConfiguration, int, int, [Ljavax.print.PrintService;, javax.print.PrintService, javax.print.DocFlavor, javax.print.attribute.PrintRequestAttributeSet) -javax.security.auth.PrivateCredentialPermission.(java.lang.String, java.lang.String) -javax.security.auth.Subject.(boolean, java.util.Set, java.util.Set, java.util.Set) -javax.security.auth.Subject.callAs(javax.security.auth.Subject, java.util.concurrent.Callable) -javax.security.auth.Subject.current() -javax.security.auth.Subject.doAs(javax.security.auth.Subject, java.security.PrivilegedAction) -javax.security.auth.Subject.doAs(javax.security.auth.Subject, java.security.PrivilegedExceptionAction) -javax.security.auth.Subject.doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext) -javax.security.auth.Subject.doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext) -javax.security.auth.Subject.getPrincipals(java.lang.Class) -javax.security.auth.Subject.getPrivateCredentials(java.lang.Class) -javax.security.auth.Subject.getPublicCredentials(java.lang.Class) -javax.security.auth.Subject.getSubject(java.security.AccessControlContext) -javax.security.auth.Subject.toString() -javax.security.auth.kerberos.KerberosKey.(javax.security.auth.kerberos.KerberosPrincipal, [C, java.lang.String) -javax.security.auth.kerberos.KerberosPrincipal.(java.lang.String) -javax.security.auth.kerberos.KerberosPrincipal.(java.lang.String, int) -javax.security.auth.kerberos.KerberosTicket.refresh() -javax.security.auth.kerberos.KeyTab.exists() -javax.security.auth.kerberos.KeyTab.getKeys(javax.security.auth.kerberos.KerberosPrincipal) -javax.security.auth.login.AppConfigurationEntry$LoginModuleControlFlag.toString() -javax.security.auth.login.LoginContext.(java.lang.String) -javax.security.auth.login.LoginContext.(java.lang.String, javax.security.auth.Subject) -javax.security.auth.login.LoginContext.(java.lang.String, javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler) -javax.security.auth.login.LoginContext.(java.lang.String, javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler, javax.security.auth.login.Configuration) -javax.security.auth.login.LoginContext.(java.lang.String, javax.security.auth.callback.CallbackHandler) -javax.security.auth.login.LoginContext.logout() -javax.security.auth.x500.X500Principal.(java.lang.String) -javax.security.auth.x500.X500Principal.(java.lang.String, java.util.Map) -javax.security.auth.x500.X500Principal.getName(java.lang.String, java.util.Map) -javax.security.sasl.Sasl.createSaslClient([Ljava.lang.String;, java.lang.String, java.lang.String, java.lang.String, java.util.Map, javax.security.auth.callback.CallbackHandler) -javax.security.sasl.Sasl.createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map, javax.security.auth.callback.CallbackHandler) -javax.sql.rowset.spi.SyncFactory.getInstance(java.lang.String) -javax.sql.rowset.spi.SyncFactory.getRegisteredProviders() -javax.sql.rowset.spi.SyncFactory.registerProvider(java.lang.String) -javax.sql.rowset.spi.SyncFactory.unregisterProvider(java.lang.String) -javax.sql.rowset.spi.SyncProviderException.getSyncResolver() -javax.swing.AbstractButton.setUI(javax.swing.plaf.ButtonUI) -javax.swing.BorderFactory.createTitledBorder(java.lang.String) -javax.swing.BorderFactory.createTitledBorder(javax.swing.border.Border) -javax.swing.BorderFactory.createTitledBorder(javax.swing.border.Border, java.lang.String) -javax.swing.BorderFactory.createTitledBorder(javax.swing.border.Border, java.lang.String, int, int) -javax.swing.BorderFactory.createTitledBorder(javax.swing.border.Border, java.lang.String, int, int, java.awt.Font) -javax.swing.BorderFactory.createTitledBorder(javax.swing.border.Border, java.lang.String, int, int, java.awt.Font, java.awt.Color) -javax.swing.DebugGraphics.clearRect(int, int, int, int) -javax.swing.DebugGraphics.draw3DRect(int, int, int, int, boolean) -javax.swing.DebugGraphics.drawArc(int, int, int, int, int, int) -javax.swing.DebugGraphics.drawBytes([B, int, int, int, int) -javax.swing.DebugGraphics.drawChars([C, int, int, int, int) -javax.swing.DebugGraphics.drawImage(java.awt.Image, int, int, int, int, int, int, int, int, java.awt.Color, java.awt.image.ImageObserver) -javax.swing.DebugGraphics.drawImage(java.awt.Image, int, int, int, int, int, int, int, int, java.awt.image.ImageObserver) -javax.swing.DebugGraphics.drawImage(java.awt.Image, int, int, int, int, java.awt.Color, java.awt.image.ImageObserver) -javax.swing.DebugGraphics.drawImage(java.awt.Image, int, int, int, int, java.awt.image.ImageObserver) -javax.swing.DebugGraphics.drawImage(java.awt.Image, int, int, java.awt.Color, java.awt.image.ImageObserver) -javax.swing.DebugGraphics.drawImage(java.awt.Image, int, int, java.awt.image.ImageObserver) -javax.swing.DebugGraphics.drawLine(int, int, int, int) -javax.swing.DebugGraphics.drawOval(int, int, int, int) -javax.swing.DebugGraphics.drawPolygon([I, [I, int) -javax.swing.DebugGraphics.drawPolyline([I, [I, int) -javax.swing.DebugGraphics.drawRect(int, int, int, int) -javax.swing.DebugGraphics.drawRoundRect(int, int, int, int, int, int) -javax.swing.DebugGraphics.drawString(java.lang.String, int, int) -javax.swing.DebugGraphics.drawString(java.text.AttributedCharacterIterator, int, int) -javax.swing.DebugGraphics.fill3DRect(int, int, int, int, boolean) -javax.swing.DebugGraphics.fillArc(int, int, int, int, int, int) -javax.swing.DebugGraphics.fillOval(int, int, int, int) -javax.swing.DebugGraphics.fillPolygon([I, [I, int) -javax.swing.DebugGraphics.fillRect(int, int, int, int) -javax.swing.DebugGraphics.fillRoundRect(int, int, int, int, int, int) -javax.swing.DefaultButtonModel.setArmed(boolean) -javax.swing.DefaultCellEditor.getTableCellEditorComponent(javax.swing.JTable, java.lang.Object, boolean, int, int) -javax.swing.DefaultListCellRenderer$UIResource.() -javax.swing.DefaultListCellRenderer.() -javax.swing.DefaultListCellRenderer.getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) -javax.swing.JApplet.() -javax.swing.JApplet.setJMenuBar(javax.swing.JMenuBar) -javax.swing.JButton.updateUI() -javax.swing.JCheckBox.updateUI() -javax.swing.JCheckBoxMenuItem.() -javax.swing.JCheckBoxMenuItem.(java.lang.String) -javax.swing.JCheckBoxMenuItem.(java.lang.String, boolean) -javax.swing.JCheckBoxMenuItem.(java.lang.String, javax.swing.Icon) -javax.swing.JCheckBoxMenuItem.(java.lang.String, javax.swing.Icon, boolean) -javax.swing.JCheckBoxMenuItem.(javax.swing.Action) -javax.swing.JCheckBoxMenuItem.(javax.swing.Icon) -javax.swing.JColorChooser.() -javax.swing.JColorChooser.(java.awt.Color) -javax.swing.JColorChooser.(javax.swing.colorchooser.ColorSelectionModel) -javax.swing.JColorChooser.createDialog(java.awt.Component, java.lang.String, boolean, javax.swing.JColorChooser, java.awt.event.ActionListener, java.awt.event.ActionListener) -javax.swing.JColorChooser.setUI(javax.swing.plaf.ColorChooserUI) -javax.swing.JColorChooser.showDialog(java.awt.Component, java.lang.String, java.awt.Color) -javax.swing.JColorChooser.showDialog(java.awt.Component, java.lang.String, java.awt.Color, boolean) -javax.swing.JColorChooser.updateUI() -javax.swing.JComboBox.() -javax.swing.JComboBox.([Ljava.lang.Object;) -javax.swing.JComboBox.(java.util.Vector) -javax.swing.JComboBox.(javax.swing.ComboBoxModel) -javax.swing.JComboBox.setUI(javax.swing.plaf.ComboBoxUI) -javax.swing.JComboBox.updateUI() -javax.swing.JComponent.createToolTip() -javax.swing.JDesktopPane.() -javax.swing.JDesktopPane.setUI(javax.swing.plaf.DesktopPaneUI) -javax.swing.JDesktopPane.updateUI() -javax.swing.JDialog.() -javax.swing.JDialog.(java.awt.Dialog) -javax.swing.JDialog.(java.awt.Dialog, boolean) -javax.swing.JDialog.(java.awt.Dialog, java.lang.String) -javax.swing.JDialog.(java.awt.Dialog, java.lang.String, boolean) -javax.swing.JDialog.(java.awt.Dialog, java.lang.String, boolean, java.awt.GraphicsConfiguration) -javax.swing.JDialog.(java.awt.Frame) -javax.swing.JDialog.(java.awt.Frame, boolean) -javax.swing.JDialog.(java.awt.Frame, java.lang.String) -javax.swing.JDialog.(java.awt.Frame, java.lang.String, boolean) -javax.swing.JDialog.(java.awt.Frame, java.lang.String, boolean, java.awt.GraphicsConfiguration) -javax.swing.JDialog.(java.awt.Window) -javax.swing.JDialog.(java.awt.Window, java.awt.Dialog$ModalityType) -javax.swing.JDialog.(java.awt.Window, java.lang.String) -javax.swing.JDialog.(java.awt.Window, java.lang.String, java.awt.Dialog$ModalityType) -javax.swing.JDialog.(java.awt.Window, java.lang.String, java.awt.Dialog$ModalityType, java.awt.GraphicsConfiguration) -javax.swing.JDialog.setJMenuBar(javax.swing.JMenuBar) -javax.swing.JEditorPane.() -javax.swing.JEditorPane.(java.lang.String) -javax.swing.JEditorPane.(java.lang.String, java.lang.String) -javax.swing.JEditorPane.(java.net.URL) -javax.swing.JFileChooser.() -javax.swing.JFileChooser.(java.io.File) -javax.swing.JFileChooser.(java.io.File, javax.swing.filechooser.FileSystemView) -javax.swing.JFileChooser.(java.lang.String) -javax.swing.JFileChooser.(java.lang.String, javax.swing.filechooser.FileSystemView) -javax.swing.JFileChooser.(javax.swing.filechooser.FileSystemView) -javax.swing.JFileChooser.addChoosableFileFilter(javax.swing.filechooser.FileFilter) -javax.swing.JFileChooser.changeToParentDirectory() -javax.swing.JFileChooser.isTraversable(java.io.File) -javax.swing.JFileChooser.removeChoosableFileFilter(javax.swing.filechooser.FileFilter) -javax.swing.JFileChooser.resetChoosableFileFilters() -javax.swing.JFileChooser.setAcceptAllFileFilterUsed(boolean) -javax.swing.JFileChooser.setCurrentDirectory(java.io.File) -javax.swing.JFileChooser.setFileFilter(javax.swing.filechooser.FileFilter) -javax.swing.JFileChooser.setSelectedFile(java.io.File) -javax.swing.JFileChooser.setSelectedFiles([Ljava.io.File;) -javax.swing.JFileChooser.showDialog(java.awt.Component, java.lang.String) -javax.swing.JFileChooser.showOpenDialog(java.awt.Component) -javax.swing.JFileChooser.showSaveDialog(java.awt.Component) -javax.swing.JFileChooser.updateUI() -javax.swing.JFormattedTextField.() -javax.swing.JFormattedTextField.(java.lang.Object) -javax.swing.JFormattedTextField.(java.text.Format) -javax.swing.JFormattedTextField.(javax.swing.JFormattedTextField$AbstractFormatter) -javax.swing.JFormattedTextField.(javax.swing.JFormattedTextField$AbstractFormatterFactory) -javax.swing.JFormattedTextField.(javax.swing.JFormattedTextField$AbstractFormatterFactory, java.lang.Object) -javax.swing.JFrame.() -javax.swing.JFrame.(java.awt.GraphicsConfiguration) -javax.swing.JFrame.(java.lang.String) -javax.swing.JFrame.(java.lang.String, java.awt.GraphicsConfiguration) -javax.swing.JFrame.setJMenuBar(javax.swing.JMenuBar) -javax.swing.JInternalFrame$JDesktopIcon.(javax.swing.JInternalFrame) -javax.swing.JInternalFrame$JDesktopIcon.setUI(javax.swing.plaf.DesktopIconUI) -javax.swing.JInternalFrame$JDesktopIcon.updateUI() -javax.swing.JInternalFrame.() -javax.swing.JInternalFrame.(java.lang.String) -javax.swing.JInternalFrame.(java.lang.String, boolean) -javax.swing.JInternalFrame.(java.lang.String, boolean, boolean) -javax.swing.JInternalFrame.(java.lang.String, boolean, boolean, boolean) -javax.swing.JInternalFrame.(java.lang.String, boolean, boolean, boolean, boolean) -javax.swing.JInternalFrame.setJMenuBar(javax.swing.JMenuBar) -javax.swing.JInternalFrame.setMenuBar(javax.swing.JMenuBar) -javax.swing.JInternalFrame.setUI(javax.swing.plaf.InternalFrameUI) -javax.swing.JInternalFrame.updateUI() -javax.swing.JLabel.() -javax.swing.JLabel.(java.lang.String) -javax.swing.JLabel.(java.lang.String, int) -javax.swing.JLabel.(java.lang.String, javax.swing.Icon, int) -javax.swing.JLabel.(javax.swing.Icon) -javax.swing.JLabel.(javax.swing.Icon, int) -javax.swing.JLabel.setUI(javax.swing.plaf.LabelUI) -javax.swing.JLabel.updateUI() -javax.swing.JLayer.() -javax.swing.JLayer.(java.awt.Component) -javax.swing.JLayer.(java.awt.Component, javax.swing.plaf.LayerUI) -javax.swing.JLayer.createGlassPane() -javax.swing.JLayer.setUI(javax.swing.plaf.LayerUI) -javax.swing.JList.() -javax.swing.JList.([Ljava.lang.Object;) -javax.swing.JList.(java.util.Vector) -javax.swing.JList.(javax.swing.ListModel) -javax.swing.JList.setUI(javax.swing.plaf.ListUI) -javax.swing.JList.updateUI() -javax.swing.JMenu.() -javax.swing.JMenu.(java.lang.String) -javax.swing.JMenu.(java.lang.String, boolean) -javax.swing.JMenu.(javax.swing.Action) -javax.swing.JMenu.add(java.awt.Component) -javax.swing.JMenu.add(java.awt.Component, int) -javax.swing.JMenu.add(java.lang.String) -javax.swing.JMenu.add(javax.swing.Action) -javax.swing.JMenu.add(javax.swing.JMenuItem) -javax.swing.JMenu.addSeparator() -javax.swing.JMenu.doClick(int) -javax.swing.JMenu.getPopupMenu() -javax.swing.JMenu.insert(java.lang.String, int) -javax.swing.JMenu.insert(javax.swing.Action, int) -javax.swing.JMenu.insert(javax.swing.JMenuItem, int) -javax.swing.JMenu.insertSeparator(int) -javax.swing.JMenu.isMenuComponent(java.awt.Component) -javax.swing.JMenu.isPopupMenuVisible() -javax.swing.JMenu.setMenuLocation(int, int) -javax.swing.JMenu.setPopupMenuVisible(boolean) -javax.swing.JMenu.updateUI() -javax.swing.JMenuBar.() -javax.swing.JMenuBar.setUI(javax.swing.plaf.MenuBarUI) -javax.swing.JMenuBar.updateUI() -javax.swing.JMenuItem.() -javax.swing.JMenuItem.(java.lang.String) -javax.swing.JMenuItem.(java.lang.String, int) -javax.swing.JMenuItem.(java.lang.String, javax.swing.Icon) -javax.swing.JMenuItem.(javax.swing.Action) -javax.swing.JMenuItem.(javax.swing.Icon) -javax.swing.JMenuItem.setEnabled(boolean) -javax.swing.JMenuItem.setUI(javax.swing.plaf.MenuItemUI) -javax.swing.JMenuItem.updateUI() -javax.swing.JOptionPane.() -javax.swing.JOptionPane.(java.lang.Object) -javax.swing.JOptionPane.(java.lang.Object, int) -javax.swing.JOptionPane.(java.lang.Object, int, int) -javax.swing.JOptionPane.(java.lang.Object, int, int, javax.swing.Icon) -javax.swing.JOptionPane.(java.lang.Object, int, int, javax.swing.Icon, [Ljava.lang.Object;) -javax.swing.JOptionPane.(java.lang.Object, int, int, javax.swing.Icon, [Ljava.lang.Object;, java.lang.Object) -javax.swing.JOptionPane.createDialog(java.awt.Component, java.lang.String) -javax.swing.JOptionPane.createDialog(java.lang.String) -javax.swing.JOptionPane.createInternalFrame(java.awt.Component, java.lang.String) -javax.swing.JOptionPane.setUI(javax.swing.plaf.OptionPaneUI) -javax.swing.JOptionPane.showConfirmDialog(java.awt.Component, java.lang.Object) -javax.swing.JOptionPane.showConfirmDialog(java.awt.Component, java.lang.Object, java.lang.String, int) -javax.swing.JOptionPane.showConfirmDialog(java.awt.Component, java.lang.Object, java.lang.String, int, int) -javax.swing.JOptionPane.showConfirmDialog(java.awt.Component, java.lang.Object, java.lang.String, int, int, javax.swing.Icon) -javax.swing.JOptionPane.showInputDialog(java.awt.Component, java.lang.Object) -javax.swing.JOptionPane.showInputDialog(java.awt.Component, java.lang.Object, java.lang.Object) -javax.swing.JOptionPane.showInputDialog(java.awt.Component, java.lang.Object, java.lang.String, int) -javax.swing.JOptionPane.showInputDialog(java.awt.Component, java.lang.Object, java.lang.String, int, javax.swing.Icon, [Ljava.lang.Object;, java.lang.Object) -javax.swing.JOptionPane.showInputDialog(java.lang.Object) -javax.swing.JOptionPane.showInputDialog(java.lang.Object, java.lang.Object) -javax.swing.JOptionPane.showInternalConfirmDialog(java.awt.Component, java.lang.Object) -javax.swing.JOptionPane.showInternalConfirmDialog(java.awt.Component, java.lang.Object, java.lang.String, int) -javax.swing.JOptionPane.showInternalConfirmDialog(java.awt.Component, java.lang.Object, java.lang.String, int, int) -javax.swing.JOptionPane.showInternalConfirmDialog(java.awt.Component, java.lang.Object, java.lang.String, int, int, javax.swing.Icon) -javax.swing.JOptionPane.showInternalInputDialog(java.awt.Component, java.lang.Object) -javax.swing.JOptionPane.showInternalInputDialog(java.awt.Component, java.lang.Object, java.lang.String, int) -javax.swing.JOptionPane.showInternalInputDialog(java.awt.Component, java.lang.Object, java.lang.String, int, javax.swing.Icon, [Ljava.lang.Object;, java.lang.Object) -javax.swing.JOptionPane.showInternalMessageDialog(java.awt.Component, java.lang.Object) -javax.swing.JOptionPane.showInternalMessageDialog(java.awt.Component, java.lang.Object, java.lang.String, int) -javax.swing.JOptionPane.showInternalMessageDialog(java.awt.Component, java.lang.Object, java.lang.String, int, javax.swing.Icon) -javax.swing.JOptionPane.showInternalOptionDialog(java.awt.Component, java.lang.Object, java.lang.String, int, int, javax.swing.Icon, [Ljava.lang.Object;, java.lang.Object) -javax.swing.JOptionPane.showMessageDialog(java.awt.Component, java.lang.Object) -javax.swing.JOptionPane.showMessageDialog(java.awt.Component, java.lang.Object, java.lang.String, int) -javax.swing.JOptionPane.showMessageDialog(java.awt.Component, java.lang.Object, java.lang.String, int, javax.swing.Icon) -javax.swing.JOptionPane.showOptionDialog(java.awt.Component, java.lang.Object, java.lang.String, int, int, javax.swing.Icon, [Ljava.lang.Object;, java.lang.Object) -javax.swing.JOptionPane.updateUI() -javax.swing.JPanel.() -javax.swing.JPanel.(boolean) -javax.swing.JPanel.(java.awt.LayoutManager) -javax.swing.JPanel.(java.awt.LayoutManager, boolean) -javax.swing.JPanel.setUI(javax.swing.plaf.PanelUI) -javax.swing.JPanel.updateUI() -javax.swing.JPasswordField.() -javax.swing.JPasswordField.(int) -javax.swing.JPasswordField.(java.lang.String) -javax.swing.JPasswordField.(java.lang.String, int) -javax.swing.JPasswordField.(javax.swing.text.Document, java.lang.String, int) -javax.swing.JPasswordField.updateUI() -javax.swing.JPopupMenu$Separator.() -javax.swing.JPopupMenu.() -javax.swing.JPopupMenu.(java.lang.String) -javax.swing.JPopupMenu.add(java.lang.String) -javax.swing.JPopupMenu.add(javax.swing.Action) -javax.swing.JPopupMenu.addSeparator() -javax.swing.JPopupMenu.insert(javax.swing.Action, int) -javax.swing.JPopupMenu.menuSelectionChanged(boolean) -javax.swing.JPopupMenu.pack() -javax.swing.JPopupMenu.setLocation(int, int) -javax.swing.JPopupMenu.setPopupSize(int, int) -javax.swing.JPopupMenu.setPopupSize(java.awt.Dimension) -javax.swing.JPopupMenu.setUI(javax.swing.plaf.PopupMenuUI) -javax.swing.JPopupMenu.setVisible(boolean) -javax.swing.JPopupMenu.show(java.awt.Component, int, int) -javax.swing.JPopupMenu.updateUI() -javax.swing.JProgressBar.() -javax.swing.JProgressBar.(int) -javax.swing.JProgressBar.(int, int) -javax.swing.JProgressBar.(int, int, int) -javax.swing.JProgressBar.(javax.swing.BoundedRangeModel) -javax.swing.JProgressBar.setUI(javax.swing.plaf.ProgressBarUI) -javax.swing.JProgressBar.updateUI() -javax.swing.JRadioButton.updateUI() -javax.swing.JRadioButtonMenuItem.() -javax.swing.JRadioButtonMenuItem.(java.lang.String) -javax.swing.JRadioButtonMenuItem.(java.lang.String, boolean) -javax.swing.JRadioButtonMenuItem.(java.lang.String, javax.swing.Icon) -javax.swing.JRadioButtonMenuItem.(java.lang.String, javax.swing.Icon, boolean) -javax.swing.JRadioButtonMenuItem.(javax.swing.Action) -javax.swing.JRadioButtonMenuItem.(javax.swing.Icon) -javax.swing.JRadioButtonMenuItem.(javax.swing.Icon, boolean) -javax.swing.JRootPane.() -javax.swing.JRootPane.setJMenuBar(javax.swing.JMenuBar) -javax.swing.JRootPane.setUI(javax.swing.plaf.RootPaneUI) -javax.swing.JRootPane.updateUI() -javax.swing.JScrollBar.() -javax.swing.JScrollBar.(int) -javax.swing.JScrollBar.(int, int, int, int, int) -javax.swing.JScrollBar.setUI(javax.swing.plaf.ScrollBarUI) -javax.swing.JScrollBar.updateUI() -javax.swing.JScrollPane.() -javax.swing.JScrollPane.(int, int) -javax.swing.JScrollPane.(java.awt.Component) -javax.swing.JScrollPane.(java.awt.Component, int, int) -javax.swing.JScrollPane.createHorizontalScrollBar() -javax.swing.JScrollPane.createVerticalScrollBar() -javax.swing.JScrollPane.setColumnHeaderView(java.awt.Component) -javax.swing.JScrollPane.setRowHeaderView(java.awt.Component) -javax.swing.JScrollPane.setUI(javax.swing.plaf.ScrollPaneUI) -javax.swing.JScrollPane.setViewportView(java.awt.Component) -javax.swing.JScrollPane.updateUI() -javax.swing.JSeparator.() -javax.swing.JSeparator.(int) -javax.swing.JSeparator.setUI(javax.swing.plaf.SeparatorUI) -javax.swing.JSeparator.updateUI() -javax.swing.JSlider.() -javax.swing.JSlider.(int) -javax.swing.JSlider.(int, int) -javax.swing.JSlider.(int, int, int) -javax.swing.JSlider.(int, int, int, int) -javax.swing.JSlider.(javax.swing.BoundedRangeModel) -javax.swing.JSlider.createStandardLabels(int) -javax.swing.JSlider.createStandardLabels(int, int) -javax.swing.JSlider.setMajorTickSpacing(int) -javax.swing.JSlider.setPaintLabels(boolean) -javax.swing.JSlider.setUI(javax.swing.plaf.SliderUI) -javax.swing.JSlider.updateUI() -javax.swing.JSpinner$DateEditor.(javax.swing.JSpinner) -javax.swing.JSpinner$DateEditor.(javax.swing.JSpinner, java.lang.String) -javax.swing.JSpinner$DefaultEditor.(javax.swing.JSpinner) -javax.swing.JSpinner$ListEditor.(javax.swing.JSpinner) -javax.swing.JSpinner$NumberEditor.(javax.swing.JSpinner) -javax.swing.JSpinner$NumberEditor.(javax.swing.JSpinner, java.lang.String) -javax.swing.JSpinner.() -javax.swing.JSpinner.(javax.swing.SpinnerModel) -javax.swing.JSpinner.setModel(javax.swing.SpinnerModel) -javax.swing.JSpinner.setUI(javax.swing.plaf.SpinnerUI) -javax.swing.JSpinner.updateUI() -javax.swing.JSplitPane.() -javax.swing.JSplitPane.(int) -javax.swing.JSplitPane.(int, boolean) -javax.swing.JSplitPane.(int, boolean, java.awt.Component, java.awt.Component) -javax.swing.JSplitPane.(int, java.awt.Component, java.awt.Component) -javax.swing.JSplitPane.setUI(javax.swing.plaf.SplitPaneUI) -javax.swing.JSplitPane.updateUI() -javax.swing.JTabbedPane.() -javax.swing.JTabbedPane.(int) -javax.swing.JTabbedPane.(int, int) -javax.swing.JTabbedPane.setUI(javax.swing.plaf.TabbedPaneUI) -javax.swing.JTabbedPane.updateUI() -javax.swing.JTable.() -javax.swing.JTable.([[Ljava.lang.Object;, [Ljava.lang.Object;) -javax.swing.JTable.(int, int) -javax.swing.JTable.(java.util.Vector, java.util.Vector) -javax.swing.JTable.(javax.swing.table.TableModel) -javax.swing.JTable.(javax.swing.table.TableModel, javax.swing.table.TableColumnModel) -javax.swing.JTable.(javax.swing.table.TableModel, javax.swing.table.TableColumnModel, javax.swing.ListSelectionModel) -javax.swing.JTable.addNotify() -javax.swing.JTable.createScrollPaneForTable(javax.swing.JTable) -javax.swing.JTable.editCellAt(int, int) -javax.swing.JTable.editCellAt(int, int, java.util.EventObject) -javax.swing.JTable.getCellEditor(int, int) -javax.swing.JTable.getCellRenderer(int, int) -javax.swing.JTable.getDefaultEditor(java.lang.Class) -javax.swing.JTable.getDefaultRenderer(java.lang.Class) -javax.swing.JTable.getToolTipText(java.awt.event.MouseEvent) -javax.swing.JTable.print() -javax.swing.JTable.print(javax.swing.JTable$PrintMode) -javax.swing.JTable.print(javax.swing.JTable$PrintMode, java.text.MessageFormat, java.text.MessageFormat) -javax.swing.JTable.print(javax.swing.JTable$PrintMode, java.text.MessageFormat, java.text.MessageFormat, boolean, javax.print.attribute.PrintRequestAttributeSet, boolean) -javax.swing.JTable.print(javax.swing.JTable$PrintMode, java.text.MessageFormat, java.text.MessageFormat, boolean, javax.print.attribute.PrintRequestAttributeSet, boolean, javax.print.PrintService) -javax.swing.JTable.removeNotify() -javax.swing.JTable.setUI(javax.swing.plaf.TableUI) -javax.swing.JTable.updateUI() -javax.swing.JTextArea.() -javax.swing.JTextArea.(int, int) -javax.swing.JTextArea.(java.lang.String) -javax.swing.JTextArea.(java.lang.String, int, int) -javax.swing.JTextArea.(javax.swing.text.Document) -javax.swing.JTextArea.(javax.swing.text.Document, java.lang.String, int, int) -javax.swing.JTextField.() -javax.swing.JTextField.(int) -javax.swing.JTextField.(java.lang.String) -javax.swing.JTextField.(java.lang.String, int) -javax.swing.JTextField.(javax.swing.text.Document, java.lang.String, int) -javax.swing.JTextPane.() -javax.swing.JTextPane.(javax.swing.text.StyledDocument) -javax.swing.JToggleButton.updateUI() -javax.swing.JToolBar$Separator.() -javax.swing.JToolBar$Separator.(java.awt.Dimension) -javax.swing.JToolBar$Separator.setSeparatorSize(java.awt.Dimension) -javax.swing.JToolBar.() -javax.swing.JToolBar.(int) -javax.swing.JToolBar.(java.lang.String) -javax.swing.JToolBar.(java.lang.String, int) -javax.swing.JToolBar.addSeparator() -javax.swing.JToolBar.addSeparator(java.awt.Dimension) -javax.swing.JToolBar.setUI(javax.swing.plaf.ToolBarUI) -javax.swing.JToolBar.updateUI() -javax.swing.JToolTip.() -javax.swing.JToolTip.updateUI() -javax.swing.JTree.() -javax.swing.JTree.([Ljava.lang.Object;) -javax.swing.JTree.(java.util.Hashtable) -javax.swing.JTree.(java.util.Vector) -javax.swing.JTree.(javax.swing.tree.TreeModel) -javax.swing.JTree.(javax.swing.tree.TreeNode) -javax.swing.JTree.(javax.swing.tree.TreeNode, boolean) -javax.swing.JTree.setUI(javax.swing.plaf.TreeUI) -javax.swing.JTree.updateUI() -javax.swing.JViewport.() -javax.swing.JViewport.setUI(javax.swing.plaf.ViewportUI) -javax.swing.JViewport.updateUI() -javax.swing.JWindow.() -javax.swing.JWindow.(java.awt.Frame) -javax.swing.JWindow.(java.awt.GraphicsConfiguration) -javax.swing.JWindow.(java.awt.Window) -javax.swing.JWindow.(java.awt.Window, java.awt.GraphicsConfiguration) -javax.swing.LookAndFeel.installBorder(javax.swing.JComponent, java.lang.String) -javax.swing.LookAndFeel.installColors(javax.swing.JComponent, java.lang.String, java.lang.String) -javax.swing.LookAndFeel.installColorsAndFont(javax.swing.JComponent, java.lang.String, java.lang.String, java.lang.String) -javax.swing.LookAndFeel.makeIcon(java.lang.Class, java.lang.String) -javax.swing.PopupFactory.getPopup(java.awt.Component, java.awt.Component, int, int) -javax.swing.ProgressMonitor.(java.awt.Component, java.lang.Object, java.lang.String, int, int) -javax.swing.ProgressMonitor.setProgress(int) -javax.swing.ProgressMonitorInputStream.(java.awt.Component, java.lang.Object, java.io.InputStream) -javax.swing.ProgressMonitorInputStream.read() -javax.swing.ProgressMonitorInputStream.read([B) -javax.swing.ProgressMonitorInputStream.read([B, int, int) -javax.swing.ProgressMonitorInputStream.reset() -javax.swing.ProgressMonitorInputStream.skip(long) -javax.swing.ScrollPaneLayout.layoutContainer(java.awt.Container) -javax.swing.ToolTipManager.mouseEntered(java.awt.event.MouseEvent) -javax.swing.ToolTipManager.mouseMoved(java.awt.event.MouseEvent) -javax.swing.UIDefaults.get(java.lang.Object) -javax.swing.UIDefaults.get(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getBoolean(java.lang.Object) -javax.swing.UIDefaults.getBoolean(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getBorder(java.lang.Object) -javax.swing.UIDefaults.getBorder(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getColor(java.lang.Object) -javax.swing.UIDefaults.getColor(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getDimension(java.lang.Object) -javax.swing.UIDefaults.getDimension(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getFont(java.lang.Object) -javax.swing.UIDefaults.getFont(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getIcon(java.lang.Object) -javax.swing.UIDefaults.getIcon(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getInsets(java.lang.Object) -javax.swing.UIDefaults.getInsets(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getInt(java.lang.Object) -javax.swing.UIDefaults.getInt(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getString(java.lang.Object) -javax.swing.UIDefaults.getString(java.lang.Object, java.util.Locale) -javax.swing.UIDefaults.getUI(javax.swing.JComponent) -javax.swing.UIDefaults.getUIClass(java.lang.String) -javax.swing.UIDefaults.getUIClass(java.lang.String, java.lang.ClassLoader) -javax.swing.UIManager.get(java.lang.Object) -javax.swing.UIManager.get(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getBoolean(java.lang.Object) -javax.swing.UIManager.getBoolean(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getBorder(java.lang.Object) -javax.swing.UIManager.getBorder(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getColor(java.lang.Object) -javax.swing.UIManager.getColor(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getDimension(java.lang.Object) -javax.swing.UIManager.getDimension(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getFont(java.lang.Object) -javax.swing.UIManager.getFont(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getIcon(java.lang.Object) -javax.swing.UIManager.getIcon(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getInsets(java.lang.Object) -javax.swing.UIManager.getInsets(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getInt(java.lang.Object) -javax.swing.UIManager.getInt(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getString(java.lang.Object) -javax.swing.UIManager.getString(java.lang.Object, java.util.Locale) -javax.swing.UIManager.getUI(javax.swing.JComponent) -javax.swing.border.TitledBorder.(java.lang.String) -javax.swing.border.TitledBorder.(javax.swing.border.Border) -javax.swing.border.TitledBorder.(javax.swing.border.Border, java.lang.String) -javax.swing.border.TitledBorder.(javax.swing.border.Border, java.lang.String, int, int) -javax.swing.border.TitledBorder.(javax.swing.border.Border, java.lang.String, int, int, java.awt.Font) -javax.swing.border.TitledBorder.(javax.swing.border.Border, java.lang.String, int, int, java.awt.Font, java.awt.Color) -javax.swing.border.TitledBorder.getBaseline(java.awt.Component, int, int) -javax.swing.border.TitledBorder.getBaselineResizeBehavior(java.awt.Component) -javax.swing.border.TitledBorder.getBorder() -javax.swing.border.TitledBorder.getBorderInsets(java.awt.Component, java.awt.Insets) -javax.swing.border.TitledBorder.getMinimumSize(java.awt.Component) -javax.swing.border.TitledBorder.getTitleColor() -javax.swing.border.TitledBorder.getTitleFont() -javax.swing.border.TitledBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.colorchooser.ColorChooserComponentFactory.getDefaultChooserPanels() -javax.swing.colorchooser.ColorChooserComponentFactory.getPreviewPanel() -javax.swing.filechooser.FileNameExtensionFilter.accept(java.io.File) -javax.swing.filechooser.FileSystemView.() -javax.swing.filechooser.FileSystemView.getChild(java.io.File, java.lang.String) -javax.swing.filechooser.FileSystemView.getChooserComboBoxFiles() -javax.swing.filechooser.FileSystemView.getChooserShortcutPanelFiles() -javax.swing.filechooser.FileSystemView.getDefaultDirectory() -javax.swing.filechooser.FileSystemView.getFileSystemView() -javax.swing.filechooser.FileSystemView.getFiles(java.io.File, boolean) -javax.swing.filechooser.FileSystemView.getParentDirectory(java.io.File) -javax.swing.filechooser.FileSystemView.getRoots() -javax.swing.filechooser.FileSystemView.getSystemDisplayName(java.io.File) -javax.swing.filechooser.FileSystemView.getSystemIcon(java.io.File) -javax.swing.filechooser.FileSystemView.getSystemIcon(java.io.File, int, int) -javax.swing.filechooser.FileSystemView.isFileSystem(java.io.File) -javax.swing.filechooser.FileSystemView.isHiddenFile(java.io.File) -javax.swing.filechooser.FileSystemView.isParent(java.io.File, java.io.File) -javax.swing.filechooser.FileSystemView.isRoot(java.io.File) -javax.swing.filechooser.FileSystemView.isTraversable(java.io.File) -javax.swing.plaf.BorderUIResource$TitledBorderUIResource.(java.lang.String) -javax.swing.plaf.BorderUIResource$TitledBorderUIResource.(javax.swing.border.Border) -javax.swing.plaf.BorderUIResource$TitledBorderUIResource.(javax.swing.border.Border, java.lang.String) -javax.swing.plaf.BorderUIResource$TitledBorderUIResource.(javax.swing.border.Border, java.lang.String, int, int) -javax.swing.plaf.BorderUIResource$TitledBorderUIResource.(javax.swing.border.Border, java.lang.String, int, int, java.awt.Font) -javax.swing.plaf.BorderUIResource$TitledBorderUIResource.(javax.swing.border.Border, java.lang.String, int, int, java.awt.Font, java.awt.Color) -javax.swing.plaf.PopupMenuUI.getPopup(javax.swing.JPopupMenu, int, int) -javax.swing.plaf.basic.BasicArrowButton.(int) -javax.swing.plaf.basic.BasicBorders.getButtonBorder() -javax.swing.plaf.basic.BasicBorders.getInternalFrameBorder() -javax.swing.plaf.basic.BasicBorders.getMenuBarBorder() -javax.swing.plaf.basic.BasicBorders.getRadioButtonBorder() -javax.swing.plaf.basic.BasicBorders.getSplitPaneBorder() -javax.swing.plaf.basic.BasicBorders.getSplitPaneDividerBorder() -javax.swing.plaf.basic.BasicBorders.getTextFieldBorder() -javax.swing.plaf.basic.BasicBorders.getToggleButtonBorder() -javax.swing.plaf.basic.BasicButtonListener.focusGained(java.awt.event.FocusEvent) -javax.swing.plaf.basic.BasicButtonListener.focusLost(java.awt.event.FocusEvent) -javax.swing.plaf.basic.BasicButtonListener.installKeyboardActions(javax.swing.JComponent) -javax.swing.plaf.basic.BasicButtonUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicColorChooserUI$PropertyHandler.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicColorChooserUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicComboBoxEditor$UIResource.() -javax.swing.plaf.basic.BasicComboBoxEditor.() -javax.swing.plaf.basic.BasicComboBoxRenderer$UIResource.() -javax.swing.plaf.basic.BasicComboBoxRenderer.() -javax.swing.plaf.basic.BasicComboBoxUI.getBaseline(javax.swing.JComponent, int, int) -javax.swing.plaf.basic.BasicComboBoxUI.getBaselineResizeBehavior(javax.swing.JComponent) -javax.swing.plaf.basic.BasicComboBoxUI.getMinimumSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicComboBoxUI.getPreferredSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicComboBoxUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicComboBoxUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicComboBoxUI.paintCurrentValue(java.awt.Graphics, java.awt.Rectangle, boolean) -javax.swing.plaf.basic.BasicComboBoxUI.paintCurrentValueBackground(java.awt.Graphics, java.awt.Rectangle, boolean) -javax.swing.plaf.basic.BasicComboBoxUI.uninstallUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicComboPopup.(javax.swing.JComboBox) -javax.swing.plaf.basic.BasicComboPopup.show() -javax.swing.plaf.basic.BasicDesktopIconUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicDesktopPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicDirectoryModel.getDirectories() -javax.swing.plaf.basic.BasicDirectoryModel.getFiles() -javax.swing.plaf.basic.BasicDirectoryModel.renameFile(java.io.File, java.io.File) -javax.swing.plaf.basic.BasicEditorPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicFileChooserUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicInternalFrameTitlePane$CloseAction.(javax.swing.plaf.basic.BasicInternalFrameTitlePane) -javax.swing.plaf.basic.BasicInternalFrameTitlePane$IconifyAction.(javax.swing.plaf.basic.BasicInternalFrameTitlePane) -javax.swing.plaf.basic.BasicInternalFrameTitlePane$MaximizeAction.(javax.swing.plaf.basic.BasicInternalFrameTitlePane) -javax.swing.plaf.basic.BasicInternalFrameTitlePane$MoveAction.(javax.swing.plaf.basic.BasicInternalFrameTitlePane) -javax.swing.plaf.basic.BasicInternalFrameTitlePane$RestoreAction.(javax.swing.plaf.basic.BasicInternalFrameTitlePane) -javax.swing.plaf.basic.BasicInternalFrameTitlePane$SizeAction.(javax.swing.plaf.basic.BasicInternalFrameTitlePane) -javax.swing.plaf.basic.BasicInternalFrameTitlePane$SystemMenuBar.(javax.swing.plaf.basic.BasicInternalFrameTitlePane) -javax.swing.plaf.basic.BasicInternalFrameTitlePane$SystemMenuBar.paint(java.awt.Graphics) -javax.swing.plaf.basic.BasicInternalFrameTitlePane.(javax.swing.JInternalFrame) -javax.swing.plaf.basic.BasicInternalFrameUI$InternalFrameLayout.layoutContainer(java.awt.Container) -javax.swing.plaf.basic.BasicInternalFrameUI$InternalFramePropertyChangeListener.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicInternalFrameUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicLabelUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicLabelUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicListUI$PropertyChangeHandler.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicListUI.getBaseline(javax.swing.JComponent, int, int) -javax.swing.plaf.basic.BasicListUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicListUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicLookAndFeel.getDefaults() -javax.swing.plaf.basic.BasicMenuBarUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicMenuItemUI.getMaximumSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicMenuItemUI.getMinimumSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicMenuItemUI.getPreferredSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicMenuItemUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicMenuItemUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicMenuItemUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicOptionPaneUI$PropertyChangeHandler.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicOptionPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicPanelUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicPopupMenuUI.installDefaults() -javax.swing.plaf.basic.BasicPopupMenuUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicProgressBarUI.getMaximumSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicProgressBarUI.getMinimumSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicProgressBarUI.getPreferredSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicProgressBarUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicRootPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicRootPaneUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicScrollBarUI$PropertyChangeHandler.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicScrollBarUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer(java.awt.Container) -javax.swing.plaf.basic.BasicScrollPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSeparatorUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSliderUI$PropertyChangeHandler.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicSliderUI$TrackListener.mousePressed(java.awt.event.MouseEvent) -javax.swing.plaf.basic.BasicSliderUI.getMaximumSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSliderUI.getMinimumHorizontalSize() -javax.swing.plaf.basic.BasicSliderUI.getMinimumSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSliderUI.getMinimumVerticalSize() -javax.swing.plaf.basic.BasicSliderUI.getPreferredHorizontalSize() -javax.swing.plaf.basic.BasicSliderUI.getPreferredSize(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSliderUI.getPreferredVerticalSize() -javax.swing.plaf.basic.BasicSliderUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSliderUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicSliderUI.paintTicks(java.awt.Graphics) -javax.swing.plaf.basic.BasicSpinnerUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSpinnerUI.uninstallUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSplitPaneDivider.(javax.swing.plaf.basic.BasicSplitPaneUI) -javax.swing.plaf.basic.BasicSplitPaneDivider.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicSplitPaneDivider.setBasicSplitPaneUI(javax.swing.plaf.basic.BasicSplitPaneUI) -javax.swing.plaf.basic.BasicSplitPaneUI.createDefaultDivider() -javax.swing.plaf.basic.BasicSplitPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicSplitPaneUI.uninstallUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicTabbedPaneUI$PropertyChangeHandler.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.layoutContainer(java.awt.Container) -javax.swing.plaf.basic.BasicTabbedPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicTabbedPaneUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicTableHeaderUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicTableUI$KeyHandler.keyTyped(java.awt.event.KeyEvent) -javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mousePressed(java.awt.event.MouseEvent) -javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent) -javax.swing.plaf.basic.BasicTableUI.getBaseline(javax.swing.JComponent, int, int) -javax.swing.plaf.basic.BasicTableUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicTableUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicTextPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicTextUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicTextUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicTextUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicToolBarUI$DockingListener.mouseDragged(java.awt.event.MouseEvent) -javax.swing.plaf.basic.BasicToolBarUI$DockingListener.mouseReleased(java.awt.event.MouseEvent) -javax.swing.plaf.basic.BasicToolBarUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicToolBarUI.setFloating(boolean, java.awt.Point) -javax.swing.plaf.basic.BasicToolBarUI.uninstallUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicToolTipUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicTreeUI$FocusHandler.focusGained(java.awt.event.FocusEvent) -javax.swing.plaf.basic.BasicTreeUI$FocusHandler.focusLost(java.awt.event.FocusEvent) -javax.swing.plaf.basic.BasicTreeUI$KeyHandler.keyTyped(java.awt.event.KeyEvent) -javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(java.awt.event.MouseEvent) -javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mouseReleased(java.awt.event.MouseEvent) -javax.swing.plaf.basic.BasicTreeUI$PropertyChangeHandler.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicTreeUI$SelectionModelPropertyChangeHandler.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.basic.BasicTreeUI$TreeHomeAction.actionPerformed(java.awt.event.ActionEvent) -javax.swing.plaf.basic.BasicTreeUI$TreeIncrementAction.actionPerformed(java.awt.event.ActionEvent) -javax.swing.plaf.basic.BasicTreeUI$TreePageAction.actionPerformed(java.awt.event.ActionEvent) -javax.swing.plaf.basic.BasicTreeUI$TreeSelectionHandler.valueChanged(javax.swing.event.TreeSelectionEvent) -javax.swing.plaf.basic.BasicTreeUI$TreeToggleAction.actionPerformed(java.awt.event.ActionEvent) -javax.swing.plaf.basic.BasicTreeUI$TreeTraverseAction.actionPerformed(java.awt.event.ActionEvent) -javax.swing.plaf.basic.BasicTreeUI.getBaseline(javax.swing.JComponent, int, int) -javax.swing.plaf.basic.BasicTreeUI.installUI(javax.swing.JComponent) -javax.swing.plaf.basic.BasicTreeUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.basic.BasicViewportUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.DefaultMetalTheme.() -javax.swing.plaf.metal.DefaultMetalTheme.getControlTextFont() -javax.swing.plaf.metal.DefaultMetalTheme.getMenuTextFont() -javax.swing.plaf.metal.DefaultMetalTheme.getSubTextFont() -javax.swing.plaf.metal.DefaultMetalTheme.getSystemTextFont() -javax.swing.plaf.metal.DefaultMetalTheme.getUserTextFont() -javax.swing.plaf.metal.DefaultMetalTheme.getWindowTitleFont() -javax.swing.plaf.metal.MetalBorders$ButtonBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$Flush3DBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$InternalFrameBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$MenuBarBorder.getBorderInsets(java.awt.Component, java.awt.Insets) -javax.swing.plaf.metal.MetalBorders$MenuBarBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$MenuItemBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$OptionDialogBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$PaletteBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$PopupMenuBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$RolloverButtonBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$ScrollPaneBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$TableHeaderBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$TextFieldBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$ToggleButtonBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders$ToolBarBorder.() -javax.swing.plaf.metal.MetalBorders$ToolBarBorder.getBorderInsets(java.awt.Component, java.awt.Insets) -javax.swing.plaf.metal.MetalBorders$ToolBarBorder.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) -javax.swing.plaf.metal.MetalBorders.getDesktopIconBorder() -javax.swing.plaf.metal.MetalButtonUI.installDefaults(javax.swing.AbstractButton) -javax.swing.plaf.metal.MetalButtonUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalCheckBoxIcon.paintIcon(java.awt.Component, java.awt.Graphics, int, int) -javax.swing.plaf.metal.MetalCheckBoxUI.installDefaults(javax.swing.AbstractButton) -javax.swing.plaf.metal.MetalComboBoxButton.(javax.swing.JComboBox, javax.swing.Icon, boolean, javax.swing.CellRendererPane, javax.swing.JList) -javax.swing.plaf.metal.MetalComboBoxButton.(javax.swing.JComboBox, javax.swing.Icon, javax.swing.CellRendererPane, javax.swing.JList) -javax.swing.plaf.metal.MetalComboBoxButton.paintComponent(java.awt.Graphics) -javax.swing.plaf.metal.MetalComboBoxButton.setEnabled(boolean) -javax.swing.plaf.metal.MetalComboBoxEditor$UIResource.() -javax.swing.plaf.metal.MetalComboBoxEditor.() -javax.swing.plaf.metal.MetalComboBoxIcon.paintIcon(java.awt.Component, java.awt.Graphics, int, int) -javax.swing.plaf.metal.MetalComboBoxUI$MetalComboBoxLayoutManager.layoutContainer(java.awt.Container) -javax.swing.plaf.metal.MetalComboBoxUI$MetalComboPopup.(javax.swing.plaf.metal.MetalComboBoxUI, javax.swing.JComboBox) -javax.swing.plaf.metal.MetalComboBoxUI$MetalPropertyChangeListener.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.metal.MetalComboBoxUI.getBaseline(javax.swing.JComponent, int, int) -javax.swing.plaf.metal.MetalComboBoxUI.getMinimumSize(javax.swing.JComponent) -javax.swing.plaf.metal.MetalComboBoxUI.layoutComboBox(java.awt.Container, javax.swing.plaf.metal.MetalComboBoxUI$MetalComboBoxLayoutManager) -javax.swing.plaf.metal.MetalComboBoxUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalComboBoxUI.paintCurrentValue(java.awt.Graphics, java.awt.Rectangle, boolean) -javax.swing.plaf.metal.MetalComboBoxUI.paintCurrentValueBackground(java.awt.Graphics, java.awt.Rectangle, boolean) -javax.swing.plaf.metal.MetalFileChooserUI$FilterComboBoxRenderer.(javax.swing.plaf.metal.MetalFileChooserUI) -javax.swing.plaf.metal.MetalFileChooserUI$FilterComboBoxRenderer.getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) -javax.swing.plaf.metal.MetalFileChooserUI.ensureFileIsVisible(javax.swing.JFileChooser, java.io.File) -javax.swing.plaf.metal.MetalFileChooserUI.installComponents(javax.swing.JFileChooser) -javax.swing.plaf.metal.MetalFileChooserUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalFileChooserUI.valueChanged(javax.swing.event.ListSelectionEvent) -javax.swing.plaf.metal.MetalIconFactory$FileIcon16.paintIcon(java.awt.Component, java.awt.Graphics, int, int) -javax.swing.plaf.metal.MetalIconFactory$FolderIcon16.paintIcon(java.awt.Component, java.awt.Graphics, int, int) -javax.swing.plaf.metal.MetalIconFactory$PaletteCloseIcon.paintIcon(java.awt.Component, java.awt.Graphics, int, int) -javax.swing.plaf.metal.MetalIconFactory$TreeControlIcon.paintIcon(java.awt.Component, java.awt.Graphics, int, int) -javax.swing.plaf.metal.MetalIconFactory$TreeControlIcon.paintMe(java.awt.Component, java.awt.Graphics, int, int) -javax.swing.plaf.metal.MetalIconFactory.getHorizontalSliderThumbIcon() -javax.swing.plaf.metal.MetalIconFactory.getVerticalSliderThumbIcon() -javax.swing.plaf.metal.MetalInternalFrameTitlePane.(javax.swing.JInternalFrame) -javax.swing.plaf.metal.MetalInternalFrameTitlePane.paintComponent(java.awt.Graphics) -javax.swing.plaf.metal.MetalInternalFrameTitlePane.paintPalette(java.awt.Graphics) -javax.swing.plaf.metal.MetalInternalFrameUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalInternalFrameUI.setPalette(boolean) -javax.swing.plaf.metal.MetalLookAndFeel.getAcceleratorForeground() -javax.swing.plaf.metal.MetalLookAndFeel.getAcceleratorSelectedForeground() -javax.swing.plaf.metal.MetalLookAndFeel.getBlack() -javax.swing.plaf.metal.MetalLookAndFeel.getControl() -javax.swing.plaf.metal.MetalLookAndFeel.getControlDarkShadow() -javax.swing.plaf.metal.MetalLookAndFeel.getControlDisabled() -javax.swing.plaf.metal.MetalLookAndFeel.getControlHighlight() -javax.swing.plaf.metal.MetalLookAndFeel.getControlInfo() -javax.swing.plaf.metal.MetalLookAndFeel.getControlShadow() -javax.swing.plaf.metal.MetalLookAndFeel.getControlTextColor() -javax.swing.plaf.metal.MetalLookAndFeel.getControlTextFont() -javax.swing.plaf.metal.MetalLookAndFeel.getCurrentTheme() -javax.swing.plaf.metal.MetalLookAndFeel.getDefaults() -javax.swing.plaf.metal.MetalLookAndFeel.getDesktopColor() -javax.swing.plaf.metal.MetalLookAndFeel.getDisabledIcon(javax.swing.JComponent, javax.swing.Icon) -javax.swing.plaf.metal.MetalLookAndFeel.getDisabledSelectedIcon(javax.swing.JComponent, javax.swing.Icon) -javax.swing.plaf.metal.MetalLookAndFeel.getFocusColor() -javax.swing.plaf.metal.MetalLookAndFeel.getHighlightedTextColor() -javax.swing.plaf.metal.MetalLookAndFeel.getInactiveControlTextColor() -javax.swing.plaf.metal.MetalLookAndFeel.getInactiveSystemTextColor() -javax.swing.plaf.metal.MetalLookAndFeel.getMenuBackground() -javax.swing.plaf.metal.MetalLookAndFeel.getMenuDisabledForeground() -javax.swing.plaf.metal.MetalLookAndFeel.getMenuForeground() -javax.swing.plaf.metal.MetalLookAndFeel.getMenuSelectedBackground() -javax.swing.plaf.metal.MetalLookAndFeel.getMenuSelectedForeground() -javax.swing.plaf.metal.MetalLookAndFeel.getMenuTextFont() -javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControl() -javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlDarkShadow() -javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlHighlight() -javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlInfo() -javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlShadow() -javax.swing.plaf.metal.MetalLookAndFeel.getSeparatorBackground() -javax.swing.plaf.metal.MetalLookAndFeel.getSeparatorForeground() -javax.swing.plaf.metal.MetalLookAndFeel.getSubTextFont() -javax.swing.plaf.metal.MetalLookAndFeel.getSystemTextColor() -javax.swing.plaf.metal.MetalLookAndFeel.getSystemTextFont() -javax.swing.plaf.metal.MetalLookAndFeel.getTextHighlightColor() -javax.swing.plaf.metal.MetalLookAndFeel.getUserTextColor() -javax.swing.plaf.metal.MetalLookAndFeel.getUserTextFont() -javax.swing.plaf.metal.MetalLookAndFeel.getWhite() -javax.swing.plaf.metal.MetalLookAndFeel.getWindowBackground() -javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleBackground() -javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleFont() -javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleForeground() -javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleInactiveBackground() -javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleInactiveForeground() -javax.swing.plaf.metal.MetalMenuBarUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalMenuBarUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalProgressBarUI.paintDeterminate(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalProgressBarUI.paintIndeterminate(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalRadioButtonUI.installDefaults(javax.swing.AbstractButton) -javax.swing.plaf.metal.MetalRootPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalRootPaneUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.metal.MetalScrollButton.(int, int, boolean) -javax.swing.plaf.metal.MetalScrollButton.paint(java.awt.Graphics) -javax.swing.plaf.metal.MetalScrollPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalSliderUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalSliderUI.paintTrack(java.awt.Graphics) -javax.swing.plaf.metal.MetalSplitPaneUI.createDefaultDivider() -javax.swing.plaf.metal.MetalTabbedPaneUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalTabbedPaneUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalTextFieldUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.metal.MetalToggleButtonUI.installDefaults(javax.swing.AbstractButton) -javax.swing.plaf.metal.MetalToggleButtonUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalToolBarUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalToolBarUI.uninstallUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalToolBarUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalToolTipUI.getAcceleratorString() -javax.swing.plaf.metal.MetalToolTipUI.getPreferredSize(javax.swing.JComponent) -javax.swing.plaf.metal.MetalToolTipUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalToolTipUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.MetalTreeUI.installUI(javax.swing.JComponent) -javax.swing.plaf.metal.MetalTreeUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.metal.OceanTheme.() -javax.swing.plaf.metal.OceanTheme.addCustomEntriesToTable(javax.swing.UIDefaults) -javax.swing.plaf.multi.MultiButtonUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiColorChooserUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiComboBoxUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiDesktopIconUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiDesktopPaneUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiFileChooserUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiInternalFrameUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiLabelUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiListUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiLookAndFeel.createUIs(javax.swing.plaf.ComponentUI, java.util.Vector, javax.swing.JComponent) -javax.swing.plaf.multi.MultiMenuBarUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiMenuItemUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiOptionPaneUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiPanelUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiPopupMenuUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiPopupMenuUI.getPopup(javax.swing.JPopupMenu, int, int) -javax.swing.plaf.multi.MultiProgressBarUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiRootPaneUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiScrollBarUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiScrollPaneUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiSeparatorUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiSliderUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiSpinnerUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiSplitPaneUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiTabbedPaneUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiTableHeaderUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiTableUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiTextUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiToolBarUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiToolTipUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiTreeUI.createUI(javax.swing.JComponent) -javax.swing.plaf.multi.MultiViewportUI.createUI(javax.swing.JComponent) -javax.swing.plaf.nimbus.AbstractRegionPainter.paint(java.awt.Graphics2D, java.lang.Object, int, int) -javax.swing.plaf.nimbus.AbstractRegionPainter.paint(java.awt.Graphics2D, javax.swing.JComponent, int, int) -javax.swing.plaf.nimbus.NimbusLookAndFeel.getDefaults() -javax.swing.plaf.nimbus.NimbusLookAndFeel.getDerivedColor(java.lang.String, float, float, float, int, boolean) -javax.swing.plaf.nimbus.NimbusStyle.get(javax.swing.plaf.synth.SynthContext, java.lang.Object) -javax.swing.plaf.nimbus.NimbusStyle.getBackgroundPainter(javax.swing.plaf.synth.SynthContext) -javax.swing.plaf.nimbus.NimbusStyle.getBorderPainter(javax.swing.plaf.synth.SynthContext) -javax.swing.plaf.nimbus.NimbusStyle.getForegroundPainter(javax.swing.plaf.synth.SynthContext) -javax.swing.plaf.nimbus.NimbusStyle.getInsets(javax.swing.plaf.synth.SynthContext, java.awt.Insets) -javax.swing.plaf.nimbus.NimbusStyle.installDefaults(javax.swing.plaf.synth.SynthContext) -javax.swing.plaf.nimbus.NimbusStyle.isOpaque(javax.swing.plaf.synth.SynthContext) -javax.swing.plaf.synth.SynthButtonUI.getMaximumSize(javax.swing.JComponent) -javax.swing.plaf.synth.SynthButtonUI.getMinimumSize(javax.swing.JComponent) -javax.swing.plaf.synth.SynthButtonUI.getPreferredSize(javax.swing.JComponent) -javax.swing.plaf.synth.SynthButtonUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthButtonUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthButtonUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthComboBoxUI.getMinimumSize(javax.swing.JComponent) -javax.swing.plaf.synth.SynthComboBoxUI.installUI(javax.swing.JComponent) -javax.swing.plaf.synth.SynthComboBoxUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthComboBoxUI.uninstallUI(javax.swing.JComponent) -javax.swing.plaf.synth.SynthDesktopPaneUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthEditorPaneUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthGraphicsUtils.paintText(javax.swing.plaf.synth.SynthContext, java.awt.Graphics, java.lang.String, javax.swing.Icon, int, int, int, int, int, int, int) -javax.swing.plaf.synth.SynthInternalFrameUI.installDefaults() -javax.swing.plaf.synth.SynthInternalFrameUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthLabelUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthLabelUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthLabelUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthListUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthListUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthLookAndFeel.getDefaults() -javax.swing.plaf.synth.SynthLookAndFeel.load(java.io.InputStream, java.lang.Class) -javax.swing.plaf.synth.SynthLookAndFeel.load(java.net.URL) -javax.swing.plaf.synth.SynthMenuBarUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthMenuItemUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthMenuItemUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthMenuItemUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthMenuUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthMenuUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthMenuUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthOptionPaneUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthPanelUI.installUI(javax.swing.JComponent) -javax.swing.plaf.synth.SynthProgressBarUI.getPreferredSize(javax.swing.JComponent) -javax.swing.plaf.synth.SynthProgressBarUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthRootPaneUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthScrollBarUI.getSupportsAbsolutePositioning() -javax.swing.plaf.synth.SynthScrollBarUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthScrollPaneUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthSeparatorUI.getMinimumSize(javax.swing.JComponent) -javax.swing.plaf.synth.SynthSeparatorUI.getPreferredSize(javax.swing.JComponent) -javax.swing.plaf.synth.SynthSeparatorUI.installDefaults(javax.swing.JSeparator) -javax.swing.plaf.synth.SynthSeparatorUI.installUI(javax.swing.JComponent) -javax.swing.plaf.synth.SynthSeparatorUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthSliderUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthSliderUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthSliderUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthSpinnerUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthSplitPaneUI.createDefaultDivider() -javax.swing.plaf.synth.SynthSplitPaneUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthStyle.get(javax.swing.plaf.synth.SynthContext, java.lang.Object) -javax.swing.plaf.synth.SynthStyle.getBoolean(javax.swing.plaf.synth.SynthContext, java.lang.Object, boolean) -javax.swing.plaf.synth.SynthStyle.getIcon(javax.swing.plaf.synth.SynthContext, java.lang.Object) -javax.swing.plaf.synth.SynthStyle.getInt(javax.swing.plaf.synth.SynthContext, java.lang.Object, int) -javax.swing.plaf.synth.SynthStyle.getString(javax.swing.plaf.synth.SynthContext, java.lang.Object, java.lang.String) -javax.swing.plaf.synth.SynthTabbedPaneUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthTabbedPaneUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthTabbedPaneUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthTableHeaderUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthTableUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthTableUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthTableUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthTextAreaUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthTextFieldUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthTextPaneUI.installUI(javax.swing.JComponent) -javax.swing.plaf.synth.SynthToolBarUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthTreeUI.paint(java.awt.Graphics, javax.swing.JComponent) -javax.swing.plaf.synth.SynthTreeUI.propertyChange(java.beans.PropertyChangeEvent) -javax.swing.plaf.synth.SynthTreeUI.update(java.awt.Graphics, javax.swing.JComponent) -javax.swing.table.DefaultTableCellRenderer$UIResource.() -javax.swing.table.DefaultTableCellRenderer.() -javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) -javax.swing.table.DefaultTableCellRenderer.updateUI() -javax.swing.table.JTableHeader.() -javax.swing.table.JTableHeader.(javax.swing.table.TableColumnModel) -javax.swing.table.JTableHeader.setUI(javax.swing.plaf.TableHeaderUI) -javax.swing.table.JTableHeader.updateUI() -javax.swing.text.AbstractDocument$DefaultDocumentEvent.getPresentationName() -javax.swing.text.AbstractDocument$DefaultDocumentEvent.getRedoPresentationName() -javax.swing.text.AbstractDocument$DefaultDocumentEvent.getUndoPresentationName() -javax.swing.text.DefaultCaret.focusGained(java.awt.event.FocusEvent) -javax.swing.text.DefaultCaret.focusLost(java.awt.event.FocusEvent) -javax.swing.text.DefaultCaret.install(javax.swing.text.JTextComponent) -javax.swing.text.DefaultCaret.paint(java.awt.Graphics) -javax.swing.text.DefaultCaret.setVisible(boolean) -javax.swing.text.GlyphView.paint(java.awt.Graphics, java.awt.Shape) -javax.swing.text.JTextComponent.() -javax.swing.text.JTextComponent.getPrintable(java.text.MessageFormat, java.text.MessageFormat) -javax.swing.text.JTextComponent.print() -javax.swing.text.JTextComponent.print(java.text.MessageFormat, java.text.MessageFormat) -javax.swing.text.JTextComponent.print(java.text.MessageFormat, java.text.MessageFormat, boolean, javax.print.PrintService, javax.print.attribute.PrintRequestAttributeSet, boolean) -javax.swing.text.JTextComponent.setUI(javax.swing.plaf.TextUI) -javax.swing.text.JTextComponent.updateUI() -javax.swing.text.html.AccessibleHTML$TableElementInfo$TableAccessibleContext.getAccessibleName() -javax.swing.text.html.ImageView.getLoadingImageIcon() -javax.swing.text.html.ImageView.getNoImageIcon() -javax.swing.text.html.ImageView.paint(java.awt.Graphics, java.awt.Shape) -javax.swing.text.html.ListView.paint(java.awt.Graphics, java.awt.Shape) -javax.swing.text.html.StyleSheet$ListPainter.paint(java.awt.Graphics, float, float, float, float, javax.swing.text.View, int) -javax.swing.tree.DefaultTreeCellEditor$DefaultTextField.(javax.swing.tree.DefaultTreeCellEditor, javax.swing.border.Border) -javax.swing.tree.DefaultTreeCellEditor.(javax.swing.JTree, javax.swing.tree.DefaultTreeCellRenderer) -javax.swing.tree.DefaultTreeCellEditor.(javax.swing.JTree, javax.swing.tree.DefaultTreeCellRenderer, javax.swing.tree.TreeCellEditor) -javax.swing.tree.DefaultTreeCellRenderer.() -javax.swing.tree.DefaultTreeCellRenderer.getDefaultClosedIcon() -javax.swing.tree.DefaultTreeCellRenderer.getDefaultLeafIcon() -javax.swing.tree.DefaultTreeCellRenderer.getDefaultOpenIcon() -javax.swing.tree.DefaultTreeCellRenderer.getTreeCellRendererComponent(javax.swing.JTree, java.lang.Object, boolean, boolean, boolean, int, boolean) -javax.swing.tree.DefaultTreeCellRenderer.paint(java.awt.Graphics) -javax.swing.tree.DefaultTreeCellRenderer.updateUI() -javax.swing.undo.AbstractUndoableEdit.getRedoPresentationName() -javax.swing.undo.AbstractUndoableEdit.getUndoPresentationName() -javax.swing.undo.CompoundEdit.getRedoPresentationName() -javax.swing.undo.CompoundEdit.getUndoPresentationName() -javax.swing.undo.UndoManager.getRedoPresentationName() -javax.swing.undo.UndoManager.getUndoOrRedoPresentationName() -javax.swing.undo.UndoManager.getUndoPresentationName() -javax.xml.catalog.CatalogFeatures$Builder.build() -javax.xml.catalog.CatalogFeatures$Builder.with(javax.xml.catalog.CatalogFeatures$Feature, java.lang.String) -javax.xml.catalog.CatalogFeatures.defaults() -javax.xml.catalog.CatalogManager.catalog(javax.xml.catalog.CatalogFeatures, [Ljava.net.URI;) -javax.xml.catalog.CatalogManager.catalogResolver(javax.xml.catalog.Catalog) -javax.xml.catalog.CatalogManager.catalogResolver(javax.xml.catalog.CatalogFeatures, [Ljava.net.URI;) -javax.xml.datatype.DatatypeFactory.newInstance() -javax.xml.parsers.DocumentBuilder.parse(java.io.File) -javax.xml.parsers.DocumentBuilderFactory.newDefaultInstance() -javax.xml.parsers.DocumentBuilderFactory.newDefaultNSInstance() -javax.xml.parsers.DocumentBuilderFactory.newInstance() -javax.xml.parsers.DocumentBuilderFactory.newNSInstance() -javax.xml.parsers.SAXParser.parse(java.io.File, org.xml.sax.HandlerBase) -javax.xml.parsers.SAXParser.parse(java.io.File, org.xml.sax.helpers.DefaultHandler) -javax.xml.parsers.SAXParserFactory.newInstance() -javax.xml.parsers.SAXParserFactory.newNSInstance() -javax.xml.stream.XMLEventFactory.newFactory() -javax.xml.stream.XMLEventFactory.newFactory(java.lang.String, java.lang.ClassLoader) -javax.xml.stream.XMLEventFactory.newInstance() -javax.xml.stream.XMLEventFactory.newInstance(java.lang.String, java.lang.ClassLoader) -javax.xml.stream.XMLInputFactory.newDefaultFactory() -javax.xml.stream.XMLInputFactory.newFactory() -javax.xml.stream.XMLInputFactory.newFactory(java.lang.String, java.lang.ClassLoader) -javax.xml.stream.XMLInputFactory.newInstance() -javax.xml.stream.XMLInputFactory.newInstance(java.lang.String, java.lang.ClassLoader) -javax.xml.stream.XMLOutputFactory.newDefaultFactory() -javax.xml.stream.XMLOutputFactory.newFactory() -javax.xml.stream.XMLOutputFactory.newFactory(java.lang.String, java.lang.ClassLoader) -javax.xml.stream.XMLOutputFactory.newInstance() -javax.xml.stream.XMLOutputFactory.newInstance(java.lang.String, java.lang.ClassLoader) -javax.xml.transform.TransformerFactory.newDefaultInstance() -javax.xml.transform.TransformerFactory.newInstance() -javax.xml.transform.stream.StreamResult.(java.io.File) -javax.xml.transform.stream.StreamResult.setSystemId(java.io.File) -javax.xml.transform.stream.StreamSource.(java.io.File) -javax.xml.transform.stream.StreamSource.setSystemId(java.io.File) -javax.xml.validation.SchemaFactory.newDefaultInstance() -javax.xml.validation.SchemaFactory.newInstance(java.lang.String) -javax.xml.validation.SchemaFactory.newSchema(java.io.File) -javax.xml.xpath.XPathFactory.newDefaultInstance() -javax.xml.xpath.XPathFactory.newInstance() -javax.xml.xpath.XPathFactory.newInstance(java.lang.String) -jdk.dynalink.linker.support.Guards.isArray(int, java.lang.invoke.MethodType) -jdk.dynalink.linker.support.Guards.isInstance(java.lang.Class, int, java.lang.invoke.MethodType) -jdk.dynalink.linker.support.Guards.isInstance(java.lang.Class, java.lang.invoke.MethodType) -jdk.dynalink.linker.support.Guards.isOfClass(java.lang.Class, java.lang.invoke.MethodType) -jdk.internal.agent.Agent.agentmain(java.lang.String) -jdk.internal.agent.Agent.error(java.lang.Exception) -jdk.internal.agent.Agent.error(java.lang.String) -jdk.internal.agent.Agent.error(java.lang.String, java.lang.String) -jdk.internal.agent.Agent.error(jdk.internal.agent.AgentConfigurationError) -jdk.internal.agent.Agent.getManagementProperties() -jdk.internal.agent.Agent.getText(java.lang.String) -jdk.internal.agent.Agent.getText(java.lang.String, [Ljava.lang.String;) -jdk.internal.agent.Agent.loadManagementProperties() -jdk.internal.agent.Agent.premain(java.lang.String) -jdk.internal.agent.Agent.startAgent() -jdk.internal.agent.Agent.warning(java.lang.String, java.lang.String) -jdk.internal.editor.external.ExternalEditor.edit([Ljava.lang.String;, java.lang.String, java.util.function.Consumer, java.util.function.Consumer, java.lang.Runnable, java.lang.Runnable, boolean, java.lang.Runnable) -jdk.internal.jmod.JmodFile.(java.nio.file.Path) -jdk.internal.joptsimple.BuiltinHelpFormatter.format(java.util.Map) -jdk.internal.joptsimple.OptionException.getMessage() -jdk.internal.joptsimple.OptionParser.(java.lang.String) -jdk.internal.joptsimple.OptionParser.recognizeAlternativeLongOptions(boolean) -jdk.internal.joptsimple.internal.Messages.message(java.util.Locale, java.lang.String, java.lang.Class, java.lang.String, [Ljava.lang.Object;) -jdk.internal.joptsimple.util.DateConverter.convert(java.lang.String) -jdk.internal.joptsimple.util.EnumConverter.convert(java.lang.String) -jdk.internal.joptsimple.util.InetAddressConverter.convert(java.lang.String) -jdk.internal.joptsimple.util.PathConverter.convert(java.lang.String) -jdk.internal.joptsimple.util.RegexMatcher.convert(java.lang.String) -jdk.internal.jshell.tool.JShellTool.commandDocumentation(java.lang.String, int, boolean) -jdk.internal.jshell.tool.JShellTool.errormsg(java.lang.String, [Ljava.lang.Object;) -jdk.internal.jshell.tool.JShellTool.fluffmsg(java.lang.String, [Ljava.lang.Object;) -jdk.internal.jshell.tool.JShellTool.hardmsg(java.lang.String, [Ljava.lang.Object;) -jdk.internal.jshell.tool.JShellTool.start([Ljava.lang.String;) -jdk.internal.jshell.tool.JShellToolBuilder.rawTool() -jdk.internal.jshell.tool.JShellToolBuilder.run([Ljava.lang.String;) -jdk.internal.jshell.tool.JShellToolBuilder.start([Ljava.lang.String;) -jdk.internal.loader.BootLoader.findResource(java.lang.String) -jdk.internal.loader.BootLoader.findResource(java.lang.String, java.lang.String) -jdk.internal.loader.BootLoader.findResourceAsStream(java.lang.String, java.lang.String) -jdk.internal.loader.BootLoader.findResources(java.lang.String) -jdk.internal.loader.BuiltinClassLoader.findResource(java.lang.String) -jdk.internal.loader.BuiltinClassLoader.findResource(java.lang.String, java.lang.String) -jdk.internal.loader.BuiltinClassLoader.findResourceAsStream(java.lang.String, java.lang.String) -jdk.internal.loader.BuiltinClassLoader.findResources(java.lang.String) -jdk.internal.loader.FileURLMapper.exists() -jdk.internal.loader.Loader.getResource(java.lang.String) -jdk.internal.loader.Loader.getResources(java.lang.String) -jdk.internal.loader.URLClassPath.addFile(java.lang.String) -jdk.internal.loader.URLClassPath.check(java.net.URL) -jdk.internal.loader.URLClassPath.checkURL(java.net.URL) -jdk.internal.loader.URLClassPath.findResource(java.lang.String, boolean) -jdk.internal.loader.URLClassPath.getResource(java.lang.String) -jdk.internal.loader.URLClassPath.getResource(java.lang.String, boolean) -jdk.internal.module.ModuleBootstrap.boot() -jdk.internal.module.ModuleBootstrap.limitedFinder() -jdk.internal.module.ModuleBootstrap.unlimitedFinder() -jdk.internal.module.ModulePatcher.patchIfNeeded(java.lang.module.ModuleReference) -jdk.internal.module.ModulePath.find(java.lang.String) -jdk.internal.module.ModulePath.findAll() -jdk.internal.module.Modules.loadModule(java.lang.String) -jdk.internal.module.SystemModuleFinders.ofSystem() -jdk.internal.net.http.RequestPublishers$FilePublisher.create(java.nio.file.Path) -jdk.internal.net.http.ResponseBodyHandlers$FileDownloadBodyHandler.create(java.nio.file.Path, java.util.List) -jdk.internal.net.http.ResponseBodyHandlers$PathBodyHandler.create(java.nio.file.Path, java.util.List) -jdk.internal.net.http.ResponseSubscribers$PathSubscriber.create(java.nio.file.Path, java.util.List) -jdk.internal.org.jline.JdkConsoleProviderImpl.console(boolean, java.nio.charset.Charset) -jdk.internal.org.jline.reader.LineReaderBuilder.build() -jdk.internal.org.jline.reader.impl.LineReaderImpl.(jdk.internal.org.jline.terminal.Terminal) -jdk.internal.org.jline.reader.impl.LineReaderImpl.(jdk.internal.org.jline.terminal.Terminal, java.lang.String) -jdk.internal.org.jline.reader.impl.LineReaderImpl.(jdk.internal.org.jline.terminal.Terminal, java.lang.String, java.util.Map) -jdk.internal.org.jline.reader.impl.LineReaderImpl.editAndAddInBuffer(java.io.File) -jdk.internal.org.jline.reader.impl.LineReaderImpl.getDisplayedBufferWithPrompts(java.util.List) -jdk.internal.org.jline.reader.impl.LineReaderImpl.mouse() -jdk.internal.org.jline.reader.impl.LineReaderImpl.printAbove(java.lang.String) -jdk.internal.org.jline.reader.impl.LineReaderImpl.printAbove(jdk.internal.org.jline.utils.AttributedString) -jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine() -jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine(java.lang.Character) -jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine(java.lang.String) -jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine(java.lang.String, java.lang.Character) -jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine(java.lang.String, java.lang.Character, java.lang.String) -jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine(java.lang.String, java.lang.String, java.lang.Character, java.lang.String) -jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine(java.lang.String, java.lang.String, jdk.internal.org.jline.reader.MaskingCallback, java.lang.String) -jdk.internal.org.jline.reader.impl.LineReaderImpl.redisplay() -jdk.internal.org.jline.reader.impl.history.DefaultHistory.write(java.nio.file.Path, boolean) -jdk.internal.org.jline.terminal.TerminalBuilder.build() -jdk.internal.org.jline.terminal.TerminalBuilder.terminal() -jdk.internal.org.jline.terminal.impl.AbstractWindowsTerminal.(java.io.Writer, java.lang.String, java.lang.String, java.nio.charset.Charset, boolean, jdk.internal.org.jline.terminal.Terminal$SignalHandler, java.util.function.Function) -jdk.internal.org.jline.terminal.impl.Diag.main([Ljava.lang.String;) -jdk.internal.org.jline.terminal.impl.DumbTerminal.(java.io.InputStream, java.io.OutputStream) -jdk.internal.org.jline.terminal.impl.DumbTerminal.(java.lang.String, java.lang.String, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset) -jdk.internal.org.jline.terminal.impl.DumbTerminal.(java.lang.String, java.lang.String, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset, jdk.internal.org.jline.terminal.Terminal$SignalHandler) -jdk.internal.org.jline.terminal.impl.ExecPty.current(jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream) -jdk.internal.org.jline.terminal.impl.ExecPty.getAttr() -jdk.internal.org.jline.terminal.impl.ExecPty.getSize() -jdk.internal.org.jline.terminal.impl.ExecPty.getSlaveOutput() -jdk.internal.org.jline.terminal.impl.ExecPty.setSize(jdk.internal.org.jline.terminal.Size) -jdk.internal.org.jline.terminal.impl.ExternalTerminal.(java.lang.String, java.lang.String, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset) -jdk.internal.org.jline.terminal.impl.ExternalTerminal.(java.lang.String, java.lang.String, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset, jdk.internal.org.jline.terminal.Terminal$SignalHandler) -jdk.internal.org.jline.terminal.impl.ExternalTerminal.(java.lang.String, java.lang.String, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean) -jdk.internal.org.jline.terminal.impl.ExternalTerminal.(java.lang.String, java.lang.String, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean, jdk.internal.org.jline.terminal.Attributes, jdk.internal.org.jline.terminal.Size) -jdk.internal.org.jline.terminal.impl.LineDisciplineTerminal.(java.lang.String, java.lang.String, java.io.OutputStream, java.nio.charset.Charset) -jdk.internal.org.jline.terminal.impl.LineDisciplineTerminal.(java.lang.String, java.lang.String, java.io.OutputStream, java.nio.charset.Charset, jdk.internal.org.jline.terminal.Terminal$SignalHandler) -jdk.internal.org.jline.terminal.impl.PosixPtyTerminal.(java.lang.String, java.lang.String, jdk.internal.org.jline.terminal.spi.Pty, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset) -jdk.internal.org.jline.terminal.impl.PosixPtyTerminal.(java.lang.String, java.lang.String, jdk.internal.org.jline.terminal.spi.Pty, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset, jdk.internal.org.jline.terminal.Terminal$SignalHandler) -jdk.internal.org.jline.terminal.impl.PosixPtyTerminal.(java.lang.String, java.lang.String, jdk.internal.org.jline.terminal.spi.Pty, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean) -jdk.internal.org.jline.terminal.impl.PosixSysTerminal.(java.lang.String, java.lang.String, jdk.internal.org.jline.terminal.spi.Pty, java.nio.charset.Charset, boolean, jdk.internal.org.jline.terminal.Terminal$SignalHandler, java.util.function.Function) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.current(jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.isPosixSystemStream(jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.isSystemStream(jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.isWindowsSystemStream(jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.newTerminal(java.lang.String, java.lang.String, java.io.InputStream, java.io.OutputStream, java.nio.charset.Charset, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean, jdk.internal.org.jline.terminal.Attributes, jdk.internal.org.jline.terminal.Size) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.posixSysTerminal(java.lang.String, java.lang.String, boolean, java.nio.charset.Charset, boolean, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean, jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream, java.util.function.Function) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.sysTerminal(java.lang.String, java.lang.String, boolean, java.nio.charset.Charset, boolean, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean, jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream, java.util.function.Function) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.systemStreamName(jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream) -jdk.internal.org.jline.terminal.impl.exec.ExecTerminalProvider.winSysTerminal(java.lang.String, java.lang.String, boolean, java.nio.charset.Charset, boolean, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean, jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream, java.util.function.Function) -jdk.internal.org.jline.terminal.impl.jna.JnaTerminalProvider.sysTerminal(java.lang.String, java.lang.String, boolean, java.nio.charset.Charset, boolean, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean, jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream, java.util.function.Function) -jdk.internal.org.jline.terminal.impl.jna.JnaTerminalProvider.winSysTerminal(java.lang.String, java.lang.String, boolean, java.nio.charset.Charset, boolean, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean, jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream, java.util.function.Function) -jdk.internal.org.jline.terminal.impl.jna.win.JnaWinSysTerminal.createTerminal(java.lang.String, java.lang.String, boolean, java.nio.charset.Charset, boolean, jdk.internal.org.jline.terminal.Terminal$SignalHandler, boolean, jdk.internal.org.jline.terminal.spi.TerminalProvider$Stream, java.util.function.Function) -jdk.internal.org.jline.terminal.spi.TerminalProvider.load(java.lang.String) -jdk.internal.org.jline.utils.Colors.rgbColor(java.lang.String) -jdk.internal.org.jline.utils.ExecHelper.exec(boolean, [Ljava.lang.String;) -jdk.internal.org.jline.utils.InfoCmp$Capability.byName(java.lang.String) -jdk.internal.org.jline.utils.InfoCmp$Capability.getNames() -jdk.internal.org.jline.utils.InfoCmp.getCapabilitiesByName() -jdk.internal.org.jline.utils.InfoCmp.getInfoCmp(java.lang.String) -jdk.internal.org.jline.utils.InfoCmp.parseInfoCmp(java.lang.String, java.util.Set, java.util.Map, java.util.Map) -jdk.internal.org.jline.utils.StyleResolver.resolve(java.lang.String) -jdk.internal.org.jline.utils.StyleResolver.resolve(java.lang.String, java.lang.String) -jdk.internal.org.objectweb.asm.ClassReader.(java.lang.String) -jdk.internal.org.objectweb.asm.util.ASMifier.main([Ljava.lang.String;) -jdk.internal.org.objectweb.asm.util.CheckClassAdapter.main([Ljava.lang.String;) -jdk.internal.org.objectweb.asm.util.Textifier.main([Ljava.lang.String;) -jdk.internal.util.SystemProps.isBadIoTmpdir() -jdk.internal.util.xml.SAXParser.parse(java.io.File, jdk.internal.org.xml.sax.helpers.DefaultHandler) -jdk.javadoc.doclet.StandardDoclet.init(java.util.Locale, jdk.javadoc.doclet.Reporter) -jdk.javadoc.doclet.StandardDoclet.run(jdk.javadoc.doclet.DocletEnvironment) -jdk.javadoc.internal.Versions.javadocVersion() -jdk.javadoc.internal.api.JavadocTaskImpl.call() -jdk.javadoc.internal.api.JavadocTool.getStandardFileManager(javax.tools.DiagnosticListener, java.util.Locale, java.nio.charset.Charset) -jdk.javadoc.internal.api.JavadocTool.getTask(java.io.Writer, javax.tools.JavaFileManager, javax.tools.DiagnosticListener, java.lang.Class, java.lang.Iterable, java.lang.Iterable) -jdk.javadoc.internal.api.JavadocTool.getTask(java.io.Writer, javax.tools.JavaFileManager, javax.tools.DiagnosticListener, java.lang.Class, java.lang.Iterable, java.lang.Iterable, com.sun.tools.javac.util.Context) -jdk.javadoc.internal.api.JavadocTool.run(java.io.InputStream, java.io.OutputStream, java.io.OutputStream, [Ljava.lang.String;) -jdk.javadoc.internal.doclets.formats.html.HtmlConfiguration.(jdk.javadoc.doclet.Doclet, java.util.Locale, jdk.javadoc.doclet.Reporter) -jdk.javadoc.internal.doclets.formats.html.HtmlConfiguration.finishOptionSettings() -jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.init(java.util.Locale, jdk.javadoc.doclet.Reporter) -jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.run(jdk.javadoc.doclet.DocletEnvironment) -jdk.javadoc.internal.doclets.toolkit.BaseConfiguration.initDocLint(java.util.List, java.util.Set) -jdk.javadoc.internal.doclets.toolkit.BaseConfiguration.setOptions() -jdk.javadoc.internal.doclets.toolkit.Resources.(java.util.Locale, java.lang.String, java.lang.String) -jdk.javadoc.internal.doclets.toolkit.util.DocFile.copyResource(jdk.javadoc.internal.doclets.toolkit.util.DocPath, boolean, boolean) -jdk.javadoc.internal.doclets.toolkit.util.DocFile.copyResource(jdk.javadoc.internal.doclets.toolkit.util.DocPath, jdk.javadoc.internal.doclets.toolkit.Resources) -jdk.javadoc.internal.doclets.toolkit.util.Extern.checkPlatformLinks(java.lang.String, jdk.javadoc.doclet.Reporter) -jdk.javadoc.internal.doclint.DocLint.init(com.sun.source.util.DocTrees, javax.lang.model.util.Elements, javax.lang.model.util.Types, [Ljava.lang.String;) -jdk.javadoc.internal.doclint.DocLint.init(com.sun.source.util.JavacTask, [Ljava.lang.String;) -jdk.javadoc.internal.doclint.DocLint.init(com.sun.source.util.JavacTask, [Ljava.lang.String;, boolean) -jdk.javadoc.internal.doclint.DocLint.main([Ljava.lang.String;) -jdk.javadoc.internal.doclint.DocLint.run([Ljava.lang.String;) -jdk.javadoc.internal.doclint.DocLint.run(java.io.PrintWriter, [Ljava.lang.String;) -jdk.javadoc.internal.tool.JavadocClassFinder.(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.JavadocClassFinder.instance(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.JavadocClassFinder.preRegister(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.JavadocEnter.instance(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.JavadocEnter.preRegister(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.JavadocLog.(com.sun.tools.javac.util.Context, java.lang.String) -jdk.javadoc.internal.tool.JavadocLog.(com.sun.tools.javac.util.Context, java.lang.String, java.io.PrintWriter, java.io.PrintWriter) -jdk.javadoc.internal.tool.JavadocLog.preRegister(com.sun.tools.javac.util.Context, java.lang.String) -jdk.javadoc.internal.tool.JavadocLog.preRegister(com.sun.tools.javac.util.Context, java.lang.String, java.io.PrintWriter, java.io.PrintWriter) -jdk.javadoc.internal.tool.JavadocLog.print(javax.tools.Diagnostic$Kind, javax.lang.model.element.Element, java.lang.String) -jdk.javadoc.internal.tool.JavadocLog.printError(javax.lang.model.element.Element, java.lang.String) -jdk.javadoc.internal.tool.JavadocLog.printWarning(javax.lang.model.element.Element, java.lang.String) -jdk.javadoc.internal.tool.JavadocLog.printWarningUsingKey(javax.lang.model.element.Element, java.lang.String, [Ljava.lang.Object;) -jdk.javadoc.internal.tool.JavadocMemberEnter.instance0(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.JavadocMemberEnter.preRegister(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.JavadocTool.getEnvironment(jdk.javadoc.internal.tool.ToolOptions, java.util.List, java.lang.Iterable) -jdk.javadoc.internal.tool.JavadocTool.make0(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.JavadocToolProvider.description() -jdk.javadoc.internal.tool.JavadocToolProvider.run(java.io.PrintWriter, java.io.PrintWriter, [Ljava.lang.String;) -jdk.javadoc.internal.tool.Main.execute([Ljava.lang.String;) -jdk.javadoc.internal.tool.Main.execute([Ljava.lang.String;, java.io.PrintWriter) -jdk.javadoc.internal.tool.Main.execute([Ljava.lang.String;, java.io.PrintWriter, java.io.PrintWriter) -jdk.javadoc.internal.tool.Main.main([Ljava.lang.String;) -jdk.javadoc.internal.tool.Main.run([Ljava.lang.String;) -jdk.javadoc.internal.tool.Start.(com.sun.tools.javac.util.Context) -jdk.javadoc.internal.tool.Start.begin(java.lang.Class, java.lang.Iterable, java.lang.Iterable) -jdk.javadoc.internal.tool.ToolEnvironment.instance(com.sun.tools.javac.util.Context) -jdk.jfr.FlightRecorder.addListener(jdk.jfr.FlightRecorderListener) -jdk.jfr.FlightRecorder.getFlightRecorder() -jdk.jfr.FlightRecorder.takeSnapshot() -jdk.jfr.Recording.() -jdk.jfr.Recording.(java.util.Map) -jdk.jfr.Recording.(jdk.jfr.Configuration) -jdk.jfr.Recording.close() -jdk.jfr.Recording.copy(boolean) -jdk.jfr.Recording.dump(java.nio.file.Path) -jdk.jfr.Recording.start() -jdk.jfr.Recording.stop() -jdk.jfr.consumer.RecordingFile.write(java.nio.file.Path, java.util.function.Predicate) -jdk.jfr.consumer.RecordingStream.() -jdk.jfr.consumer.RecordingStream.(jdk.jfr.Configuration) -jdk.jfr.consumer.RecordingStream.close() -jdk.jfr.consumer.RecordingStream.dump(java.nio.file.Path) -jdk.jfr.consumer.RecordingStream.start() -jdk.jfr.consumer.RecordingStream.startAsync() -jdk.jfr.consumer.RecordingStream.stop() -jdk.jfr.internal.EventWriterKey.ensureEventWriterFactory() -jdk.jfr.internal.MetadataLoader.createTypes() -jdk.jfr.internal.MetadataRepository.() -jdk.jfr.internal.PlatformRecorder.() -jdk.jfr.internal.PlatformRecorder.addListener(jdk.jfr.FlightRecorderListener) -jdk.jfr.internal.PlatformRecorder.fillWithRecordedData(jdk.jfr.internal.PlatformRecording, java.lang.Boolean) -jdk.jfr.internal.PlatformRecorder.migrate(jdk.jfr.internal.SecuritySupport$SafePath) -jdk.jfr.internal.PlatformRecording.close() -jdk.jfr.internal.PlatformRecording.dump(jdk.jfr.internal.WriteableUserPath) -jdk.jfr.internal.PlatformRecording.dumpStopped(jdk.jfr.internal.WriteableUserPath) -jdk.jfr.internal.PlatformRecording.newCopy(boolean) -jdk.jfr.internal.PlatformRecording.newSnapshotClone(java.lang.String, java.lang.Boolean) -jdk.jfr.internal.PlatformRecording.start() -jdk.jfr.internal.PlatformRecording.stop(java.lang.String) -jdk.jfr.internal.Repository.ensureRepository() -jdk.jfr.internal.Repository.setBasePath(jdk.jfr.internal.SecuritySupport$SafePath) -jdk.jfr.internal.SecuritySupport.exists(jdk.jfr.internal.SecuritySupport$SafePath) -jdk.jfr.internal.SecuritySupport.getResourceAsStream(java.lang.String) -jdk.jfr.internal.TypeLibrary.initialize() -jdk.jfr.internal.Utils.touch(java.nio.file.Path) -jdk.jfr.internal.consumer.EventLog.start() -jdk.jfr.internal.consumer.EventLog.update() -jdk.jfr.internal.consumer.OngoingStream.close() -jdk.jfr.internal.consumer.filter.ChunkWriter.(java.nio.file.Path, java.nio.file.Path, java.util.function.Predicate) -jdk.jfr.internal.dcmd.DCmdView.printHelp() -jdk.jfr.internal.instrument.JDKEvents.retransformCallback(java.lang.Class, [B) -jdk.jfr.internal.jfc.JFC.createKnown(java.lang.String) -jdk.jfr.internal.jfc.model.JFCModel.saveToFile(jdk.jfr.internal.SecuritySupport$SafePath) -jdk.jfr.internal.query.ViewPrinter.execute(java.lang.String) -jdk.jfr.internal.query.ViewPrinter.getAvailableViews() -jdk.jfr.internal.tool.View.displayOptionUsage(java.io.PrintStream) -jdk.jfr.internal.tool.View.execute(java.util.Deque) -jdk.jpackage.internal.AbstractAppImageBuilder.createIconResource(java.lang.String, jdk.jpackage.internal.BundlerParamInfo, java.util.Map, java.util.Map) -jdk.jpackage.internal.AbstractAppImageBuilder.getResourceAsStream(java.lang.String) -jdk.jpackage.internal.AppImageFile.extractAppName(java.nio.file.Path) -jdk.jpackage.internal.AppImageFile.extractMainClass(java.nio.file.Path) -jdk.jpackage.internal.AppImageFile.load(java.nio.file.Path) -jdk.jpackage.internal.AppImageFile.readXml(java.nio.file.Path) -jdk.jpackage.internal.Arguments.processArguments() -jdk.jpackage.internal.DeployParams.validate() -jdk.jpackage.internal.IOUtils.createXml(java.nio.file.Path, jdk.jpackage.internal.IOUtils$XmlConsumer) -jdk.jpackage.internal.IOUtils.exec(java.lang.ProcessBuilder) -jdk.jpackage.internal.IOUtils.exec(java.lang.ProcessBuilder, boolean) -jdk.jpackage.internal.IOUtils.exec(java.lang.ProcessBuilder, long) -jdk.jpackage.internal.IOUtils.getProcessOutput(java.util.List, [Ljava.lang.String;) -jdk.jpackage.internal.IOUtils.initDocumentBuilder() -jdk.jpackage.internal.IOUtils.initDocumentBuilderFactory() -jdk.jpackage.internal.IOUtils.mergeXmls(javax.xml.stream.XMLStreamWriter, java.util.Collection) -jdk.jpackage.internal.IOUtils.run(java.lang.String, java.nio.file.Path) -jdk.jpackage.internal.JPackageToolProvider.run(java.io.PrintWriter, java.io.PrintWriter, [Ljava.lang.String;) -jdk.jpackage.internal.RetryExecutor.execute([Ljava.lang.String;) -jdk.jpackage.internal.RetryExecutor.execute(java.lang.ProcessBuilder) -jdk.jpackage.internal.WinExeBundler.bundle(java.util.Map, java.nio.file.Path) -jdk.jpackage.internal.WinExeBundler.execute(java.util.Map, java.nio.file.Path) -jdk.jpackage.internal.WinExeBundler.supported(boolean) -jdk.jpackage.internal.WinExeBundler.validate(java.util.Map) -jdk.jpackage.internal.WinMsiBundler.execute(java.util.Map, java.nio.file.Path) -jdk.jpackage.internal.WinMsiBundler.supported(boolean) -jdk.jpackage.internal.WinMsiBundler.validate(java.util.Map) -jdk.jpackage.internal.WindowsAppImageBuilder.prepareApplicationFiles(java.util.Map) -jdk.jpackage.main.Main.execute(java.io.PrintWriter, java.io.PrintWriter, [Ljava.lang.String;) -jdk.jpackage.main.Main.main([Ljava.lang.String;) -jdk.jshell.JShell.addToClasspath(java.lang.String) -jdk.jshell.JShell.diagnostics(jdk.jshell.Snippet) -jdk.jshell.JShell.drop(jdk.jshell.Snippet) -jdk.jshell.JShell.eval(java.lang.String) -jdk.jshell.JShell.imports() -jdk.jshell.JShell.methods() -jdk.jshell.JShell.onShutdown(java.util.function.Consumer) -jdk.jshell.JShell.onSnippetEvent(java.util.function.Consumer) -jdk.jshell.JShell.sourceCodeAnalysis() -jdk.jshell.JShell.status(jdk.jshell.Snippet) -jdk.jshell.JShell.types() -jdk.jshell.JShell.unresolvedDependencies(jdk.jshell.DeclarationSnippet) -jdk.jshell.JShell.varValue(jdk.jshell.VarSnippet) -jdk.jshell.JShell.variables() -jdk.jshell.execution.FailOverExecutionControlProvider.generate(jdk.jshell.spi.ExecutionEnv, java.util.Map) -jdk.jshell.execution.JdiExecutionControlProvider.generate(jdk.jshell.spi.ExecutionEnv, java.util.Map) -jdk.jshell.execution.JdiInitiator.(int, java.util.List, java.lang.String, boolean, java.lang.String, int, java.util.Map) -jdk.management.jfr.RemoteRecordingStream.(javax.management.MBeanServerConnection) -jdk.management.jfr.RemoteRecordingStream.(javax.management.MBeanServerConnection, java.nio.file.Path) -jdk.swing.interop.LightweightFrameWrapper.() -jdk.swing.interop.LightweightFrameWrapper.setContent(jdk.swing.interop.LightweightContentWrapper) -jdk.tools.jimage.Main.main([Ljava.lang.String;) -jdk.tools.jimage.Main.run([Ljava.lang.String;, java.io.PrintWriter) -jdk.tools.jlink.builder.DefaultImageBuilder.storeFiles(jdk.tools.jlink.plugin.ResourcePool) -jdk.tools.jlink.internal.JarArchive.entries() -jdk.tools.jlink.internal.JarArchive.open() -jdk.tools.jlink.internal.Jlink.build(jdk.tools.jlink.internal.Jlink$JlinkConfiguration) -jdk.tools.jlink.internal.Jlink.build(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, jdk.tools.jlink.internal.Jlink$PluginsConfiguration) -jdk.tools.jlink.internal.JlinkTask.createImage(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, jdk.tools.jlink.internal.Jlink$PluginsConfiguration) -jdk.tools.jlink.internal.JmodArchive.entries() -jdk.tools.jlink.internal.JmodArchive.open() -jdk.tools.jlink.internal.Main$JlinkToolProvider.description() -jdk.tools.jlink.internal.Main$JlinkToolProvider.run(java.io.PrintWriter, java.io.PrintWriter, [Ljava.lang.String;) -jdk.tools.jlink.internal.Main.main([Ljava.lang.String;) -jdk.tools.jlink.internal.Main.run(java.io.PrintWriter, java.io.PrintWriter, [Ljava.lang.String;) -jdk.tools.jlink.internal.TaskHelper.(java.lang.String) -jdk.tools.jlink.internal.plugins.CDSPlugin.process(jdk.tools.jlink.internal.ExecutableImage) -jdk.tools.jlink.internal.plugins.DefaultCompressPlugin.configure(java.util.Map) -jdk.tools.jlink.internal.plugins.ExcludeFilesPlugin.configure(java.util.Map) -jdk.tools.jlink.internal.plugins.ExcludePlugin.configure(java.util.Map) -jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.configure(java.util.Map) -jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.initialize(jdk.tools.jlink.plugin.ResourcePool) -jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder) -jdk.tools.jlink.internal.plugins.IncludeLocalesPlugin.previsit(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.internal.StringTable) -jdk.tools.jlink.internal.plugins.IncludeLocalesPlugin.transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder) -jdk.tools.jlink.internal.plugins.OrderResourcesPlugin.configure(java.util.Map) -jdk.tools.jlink.internal.plugins.ReleaseInfoPlugin.configure(java.util.Map) -jdk.tools.jlink.internal.plugins.ResourceFilter.excludeFilter(java.lang.String) -jdk.tools.jlink.internal.plugins.ResourceFilter.excludeFilter(java.util.List) -jdk.tools.jlink.internal.plugins.ResourceFilter.includeFilter(java.lang.String) -jdk.tools.jlink.internal.plugins.ResourceFilter.includeFilter(java.util.List) -jdk.tools.jlink.internal.plugins.StringSharingPlugin.configure(java.util.Map) -jdk.tools.jlink.internal.plugins.StripJavaDebugAttributesPlugin.transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder) -jdk.tools.jlink.internal.plugins.VendorBugURLPlugin.transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder) -jdk.tools.jlink.internal.plugins.VendorVMBugURLPlugin.transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder) -jdk.tools.jlink.internal.plugins.VendorVersionPlugin.transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder) -jdk.tools.jlink.internal.plugins.ZipPlugin.configure(java.util.Map) -jdk.tools.jmod.JmodTask.() -jdk.tools.jmod.JmodTask.run([Ljava.lang.String;) -jdk.tools.jmod.Main$JmodToolProvider.run(java.io.PrintWriter, java.io.PrintWriter, [Ljava.lang.String;) -jdk.tools.jmod.Main.main([Ljava.lang.String;) -jdk.tools.jmod.Main.run(java.io.PrintWriter, java.io.PrintWriter, [Ljava.lang.String;) -jdk.xml.internal.JdkProperty.(jdk.xml.internal.JdkProperty$ImplPropMap, java.lang.Class, java.lang.Object, jdk.xml.internal.JdkProperty$State) -jdk.xml.internal.JdkXmlFeatures.(boolean) -jdk.xml.internal.JdkXmlFeatures.update() -jdk.xml.internal.JdkXmlUtils.getCatalogFeatures(java.lang.String, java.lang.String, java.lang.String, java.lang.String) -jdk.xml.internal.JdkXmlUtils.getDOMDocument() -jdk.xml.internal.JdkXmlUtils.getDOMFactory(boolean) -jdk.xml.internal.JdkXmlUtils.getSAXFactory(boolean) -jdk.xml.internal.JdkXmlUtils.getSAXTransformFactory(boolean) -jdk.xml.internal.JdkXmlUtils.getXMLReader(boolean, boolean) -jdk.xml.internal.SecuritySupport.doesFileExist(java.io.File) -jdk.xml.internal.SecuritySupport.getErrorMessage(java.util.Locale, java.lang.String, java.lang.String, [Ljava.lang.Object;) -jdk.xml.internal.SecuritySupport.getFileInputStream(java.io.File) -jdk.xml.internal.SecuritySupport.getJAXPSystemProperty(java.lang.Class, java.lang.String, java.lang.String) -jdk.xml.internal.SecuritySupport.getJAXPSystemProperty(java.lang.String) -jdk.xml.internal.SecuritySupport.getResourceAsStream(java.lang.ClassLoader, java.lang.String) -jdk.xml.internal.SecuritySupport.getResourceAsStream(java.lang.String) -jdk.xml.internal.SecuritySupport.getResourceBundle(java.lang.String) -jdk.xml.internal.SecuritySupport.getResourceBundle(java.lang.String, java.util.Locale) -jdk.xml.internal.SecuritySupport.isDirectory(java.io.File) -jdk.xml.internal.SecuritySupport.isFileExists(java.io.File) -jdk.xml.internal.SecuritySupport.readConfig(java.lang.String) -jdk.xml.internal.SecuritySupport.readConfig(java.lang.String, boolean) -jdk.xml.internal.XMLSecurityManager.() -jdk.xml.internal.XMLSecurityManager.(boolean) -jdk.xml.internal.XMLSecurityManager.convert(java.lang.Object, jdk.xml.internal.XMLSecurityManager) -org.jcp.xml.dsig.internal.DigesterOutputStream.write([B, int, int) -org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.canonicalize(javax.xml.crypto.Data, javax.xml.crypto.XMLCryptoContext) -org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.canonicalize(javax.xml.crypto.Data, javax.xml.crypto.XMLCryptoContext, java.io.OutputStream) -org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.transform(javax.xml.crypto.Data, javax.xml.crypto.XMLCryptoContext, java.io.OutputStream) -org.jcp.xml.dsig.internal.dom.ApacheTransform.transform(javax.xml.crypto.Data, javax.xml.crypto.XMLCryptoContext) -org.jcp.xml.dsig.internal.dom.ApacheTransform.transform(javax.xml.crypto.Data, javax.xml.crypto.XMLCryptoContext, java.io.OutputStream) -org.jcp.xml.dsig.internal.dom.DOMCanonicalXMLC14N11Method.transform(javax.xml.crypto.Data, javax.xml.crypto.XMLCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMCanonicalXMLC14NMethod.transform(javax.xml.crypto.Data, javax.xml.crypto.XMLCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMExcC14NMethod.transform(javax.xml.crypto.Data, javax.xml.crypto.XMLCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMKeyInfoFactory.newX509Data(java.util.List) -org.jcp.xml.dsig.internal.dom.DOMKeyInfoFactory.newX509IssuerSerial(java.lang.String, java.math.BigInteger) -org.jcp.xml.dsig.internal.dom.DOMManifest.marshal(org.w3c.dom.Node, java.lang.String, javax.xml.crypto.dom.DOMCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMReference.digest(javax.xml.crypto.dsig.XMLSignContext) -org.jcp.xml.dsig.internal.dom.DOMReference.marshal(org.w3c.dom.Node, java.lang.String, javax.xml.crypto.dom.DOMCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMReference.validate(javax.xml.crypto.dsig.XMLValidateContext) -org.jcp.xml.dsig.internal.dom.DOMRetrievalMethod.dereferenceAsXMLStructure(javax.xml.crypto.XMLCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMSignedInfo.(org.w3c.dom.Element, javax.xml.crypto.XMLCryptoContext, java.security.Provider) -org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize(javax.xml.crypto.XMLCryptoContext, java.io.ByteArrayOutputStream) -org.jcp.xml.dsig.internal.dom.DOMSignedInfo.marshal(org.w3c.dom.Node, java.lang.String, javax.xml.crypto.dom.DOMCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMURIDereferencer.dereference(javax.xml.crypto.URIReference, javax.xml.crypto.XMLCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMX509Data.(java.util.List) -org.jcp.xml.dsig.internal.dom.DOMX509IssuerSerial.(java.lang.String, java.math.BigInteger) -org.jcp.xml.dsig.internal.dom.DOMXMLSignature.(org.w3c.dom.Element, javax.xml.crypto.XMLCryptoContext, java.security.Provider) -org.jcp.xml.dsig.internal.dom.DOMXMLSignature.marshal(org.w3c.dom.Node, java.lang.String, javax.xml.crypto.dom.DOMCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMXMLSignature.marshal(org.w3c.dom.Node, org.w3c.dom.Node, java.lang.String, javax.xml.crypto.dom.DOMCryptoContext) -org.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(javax.xml.crypto.dsig.XMLSignContext) -org.jcp.xml.dsig.internal.dom.DOMXMLSignature.validate(javax.xml.crypto.dsig.XMLValidateContext) -org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.newSignatureMethod(java.lang.String, javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec) -org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.unmarshalXMLSignature(javax.xml.crypto.XMLStructure) -org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.unmarshalXMLSignature(javax.xml.crypto.dsig.XMLValidateContext) -org.xml.sax.helpers.ParserAdapter.() -org.xml.sax.helpers.ParserFactory.makeParser() -org.xml.sax.helpers.ParserFactory.makeParser(java.lang.String) -org.xml.sax.helpers.XMLReaderAdapter.() -org.xml.sax.helpers.XMLReaderFactory.createXMLReader() -org.xml.sax.helpers.XMLReaderFactory.createXMLReader(java.lang.String) -sun.awt.FontConfiguration.(sun.font.SunFontManager) -sun.awt.FontConfiguration.fontFilesArePresent() -sun.awt.FontConfiguration.get2DCompositeFontInfo() -sun.awt.FontConfiguration.init() -sun.awt.FontConfiguration.needToSearchForFile(java.lang.String) -sun.awt.SunToolkit.createImage(java.lang.String) -sun.awt.SunToolkit.getImage(java.lang.String) -sun.awt.datatransfer.DataTransferer.convertData(java.lang.Object, java.awt.datatransfer.Transferable, long, java.util.Map, boolean) -sun.awt.datatransfer.DataTransferer.translateTransferable(java.awt.datatransfer.Transferable, java.awt.datatransfer.DataFlavor, long) -sun.awt.im.CompositionArea.inputMethodTextChanged(java.awt.event.InputMethodEvent) -sun.awt.im.InputContext.dispatchEvent(java.awt.AWTEvent) -sun.awt.im.InputContext.selectInputMethod(java.util.Locale) -sun.awt.im.InputMethodContext.() -sun.awt.im.InputMethodContext.cancelLatestCommittedText([Ljava.text.AttributedCharacterIterator$Attribute;) -sun.awt.im.InputMethodContext.createInputMethodJFrame(java.lang.String, boolean) -sun.awt.im.InputMethodContext.createInputMethodWindow(java.lang.String, boolean) -sun.awt.im.InputMethodContext.dispatchEvent(java.awt.AWTEvent) -sun.awt.im.InputMethodContext.dispatchInputMethodEvent(int, java.text.AttributedCharacterIterator, int, java.awt.font.TextHitInfo, java.awt.font.TextHitInfo) -sun.awt.im.InputMethodContext.getCommittedText(int, int, [Ljava.text.AttributedCharacterIterator$Attribute;) -sun.awt.im.InputMethodContext.getCommittedTextLength() -sun.awt.im.InputMethodContext.getInsertPositionOffset() -sun.awt.im.InputMethodContext.getLocationOffset(int, int) -sun.awt.im.InputMethodContext.getSelectedText([Ljava.text.AttributedCharacterIterator$Attribute;) -sun.awt.im.InputMethodContext.getTextLocation(java.awt.font.TextHitInfo) -sun.awt.im.InputMethodJFrame.(java.lang.String, sun.awt.im.InputContext) -sun.awt.im.InputMethodJFrame.getInputContext() -sun.awt.im.SimpleInputMethodWindow.getInputContext() -sun.awt.image.FileImageSource.(java.lang.String) -sun.awt.shell.ShellFolder.canRead() -sun.awt.shell.ShellFolder.canWrite() -sun.awt.shell.ShellFolder.createNewFile() -sun.awt.shell.ShellFolder.delete() -sun.awt.shell.ShellFolder.deleteOnExit() -sun.awt.shell.ShellFolder.exists() -sun.awt.shell.ShellFolder.get(java.lang.String) -sun.awt.shell.ShellFolder.getFolderColumnValue(java.io.File, int) -sun.awt.shell.ShellFolder.getNormalizedFile(java.io.File) -sun.awt.shell.ShellFolder.isDirectory() -sun.awt.shell.ShellFolder.isFile() -sun.awt.shell.ShellFolder.lastModified() -sun.awt.shell.ShellFolder.length() -sun.awt.shell.ShellFolder.listFiles() -sun.awt.shell.ShellFolder.listFiles(boolean) -sun.awt.shell.ShellFolder.mkdir() -sun.awt.shell.ShellFolder.mkdirs() -sun.awt.shell.ShellFolder.renameTo(java.io.File) -sun.awt.shell.ShellFolder.setLastModified(long) -sun.awt.shell.ShellFolder.setReadOnly() -sun.awt.windows.WFontConfiguration.(sun.font.SunFontManager) -sun.awt.windows.WPrinterJob.pageDialog(java.awt.print.PageFormat) -sun.awt.windows.WPrinterJob.printDialog() -sun.awt.windows.WToolkit.getPrintJob(java.awt.Frame, java.lang.String, java.awt.JobAttributes, java.awt.PageAttributes) -sun.awt.windows.WToolkit.getPrintJob(java.awt.Frame, java.lang.String, java.util.Properties) -sun.font.CreatedFontTracker.add(java.io.File) -sun.font.SunFontManager.createCompositeFonts(java.util.concurrent.ConcurrentHashMap, boolean, boolean) -sun.font.SunFontManager.preferLocaleFonts() -sun.font.SunFontManager.preferProportionalFonts() -sun.font.SunFontManager.registerFontsInDir(java.lang.String) -sun.jvm.hotspot.CLHSDB.main([Ljava.lang.String;) -sun.jvm.hotspot.CLHSDB.run() -sun.jvm.hotspot.CommandProcessor.executeCommand(java.lang.String, boolean) -sun.jvm.hotspot.CommandProcessor.run(boolean) -sun.jvm.hotspot.DebugServer.main([Ljava.lang.String;) -sun.jvm.hotspot.HSDB.main([Ljava.lang.String;) -sun.jvm.hotspot.HSDB.run() -sun.jvm.hotspot.HSDB.showAnnotatedMemoryViewer() -sun.jvm.hotspot.HSDB.showClassBrowser() -sun.jvm.hotspot.HSDB.showCodeViewer() -sun.jvm.hotspot.HSDB.showCodeViewer(sun.jvm.hotspot.debugger.Address) -sun.jvm.hotspot.HSDB.showCommandLineFlags() -sun.jvm.hotspot.HSDB.showInspector(sun.jvm.hotspot.ui.tree.SimpleTreeNode) -sun.jvm.hotspot.HSDB.showJavaStackTrace(sun.jvm.hotspot.runtime.JavaThread) -sun.jvm.hotspot.HSDB.showLiveness(sun.jvm.hotspot.oops.Oop, sun.jvm.hotspot.utilities.LivenessPathList) -sun.jvm.hotspot.HSDB.showMemoryViewer() -sun.jvm.hotspot.HSDB.showSystemProperties() -sun.jvm.hotspot.HSDB.showThreadInfo(sun.jvm.hotspot.runtime.JavaThread) -sun.jvm.hotspot.HSDB.showThreadOopInspector(sun.jvm.hotspot.runtime.JavaThread) -sun.jvm.hotspot.HSDB.showThreadStackMemory(sun.jvm.hotspot.runtime.JavaThread) -sun.jvm.hotspot.HSDB.showVMVersion() -sun.jvm.hotspot.HotSpotAgent.attach(int) -sun.jvm.hotspot.HotSpotAgent.attach(java.lang.String) -sun.jvm.hotspot.HotSpotAgent.attach(java.lang.String, java.lang.String) -sun.jvm.hotspot.HotSpotAgent.attach(sun.jvm.hotspot.debugger.JVMDebugger) -sun.jvm.hotspot.HotSpotAgent.startServer(int) -sun.jvm.hotspot.HotSpotAgent.startServer(int, java.lang.String, java.lang.String) -sun.jvm.hotspot.HotSpotAgent.startServer(int, java.lang.String, java.lang.String, int) -sun.jvm.hotspot.HotSpotAgent.startServer(java.lang.String, java.lang.String) -sun.jvm.hotspot.HotSpotAgent.startServer(java.lang.String, java.lang.String, java.lang.String, java.lang.String) -sun.jvm.hotspot.HotSpotAgent.startServer(java.lang.String, java.lang.String, java.lang.String, java.lang.String, int) -sun.jvm.hotspot.HotSpotTypeDataBase.(sun.jvm.hotspot.debugger.MachineDescription, sun.jvm.hotspot.types.basic.VtblAccess, sun.jvm.hotspot.debugger.Debugger, [Ljava.lang.String;) -sun.jvm.hotspot.ObjectHistogram.main([Ljava.lang.String;) -sun.jvm.hotspot.SALauncherLoader.(java.lang.ClassLoader) -sun.jvm.hotspot.SALauncherLoader.findLibrary(java.lang.String) -sun.jvm.hotspot.StackTrace.main([Ljava.lang.String;) -sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.main([Ljava.lang.String;) -sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.parse(java.lang.String) -sun.jvm.hotspot.debugger.win32.coff.COFFFileParser.parse(java.lang.String) -sun.jvm.hotspot.debugger.win32.coff.DumpExports.main([Ljava.lang.String;) -sun.jvm.hotspot.debugger.win32.coff.TestDebugInfo.main([Ljava.lang.String;) -sun.jvm.hotspot.debugger.win32.coff.TestParser.main([Ljava.lang.String;) -sun.jvm.hotspot.debugger.windbg.DLL.debugInfoForPC(sun.jvm.hotspot.debugger.Address) -sun.jvm.hotspot.debugger.windbg.DLL.getDebugInfoDataBase() -sun.jvm.hotspot.debugger.windbg.DLL.lineNumberForPC(sun.jvm.hotspot.debugger.Address) -sun.jvm.hotspot.tools.ClassLoaderStats.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.FinalizerInfo.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.FlagDumper.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.HeapDumper.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.HeapDumper.run() -sun.jvm.hotspot.tools.HeapDumper.runWithArgs([Ljava.lang.String;) -sun.jvm.hotspot.tools.HeapSummary.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.JInfo.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.JInfo.runWithArgs([Ljava.lang.String;) -sun.jvm.hotspot.tools.JMap.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.JSnap.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.JStack.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.JStack.runWithArgs([Ljava.lang.String;) -sun.jvm.hotspot.tools.ObjectHistogram.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.PMap.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.PStack.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.StackTrace.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.SysPropsDumper.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.Tool.start() -sun.jvm.hotspot.tools.jcore.ClassDump.main([Ljava.lang.String;) -sun.jvm.hotspot.tools.jcore.ClassDump.setJarOutput(java.lang.String) -sun.jvm.hotspot.ui.AnnotatedMemoryPanel.(sun.jvm.hotspot.debugger.Debugger) -sun.jvm.hotspot.ui.AnnotatedMemoryPanel.(sun.jvm.hotspot.debugger.Debugger, boolean) -sun.jvm.hotspot.ui.AnnotatedMemoryPanel.(sun.jvm.hotspot.debugger.Debugger, boolean, sun.jvm.hotspot.debugger.Address, sun.jvm.hotspot.debugger.Address, sun.jvm.hotspot.debugger.Address) -sun.jvm.hotspot.ui.AnnotatedMemoryPanel.main([Ljava.lang.String;) -sun.jvm.hotspot.ui.CommandProcessorPanel.(sun.jvm.hotspot.CommandProcessor) -sun.jvm.hotspot.ui.CommandProcessorPanel.clear() -sun.jvm.hotspot.ui.CommandProcessorPanel.main([Ljava.lang.String;) -sun.jvm.hotspot.ui.DeadlockDetectionPanel.() -sun.jvm.hotspot.ui.DebuggerConsolePanel.(sun.jvm.hotspot.debugger.Debugger) -sun.jvm.hotspot.ui.DebuggerConsolePanel.main([Ljava.lang.String;) -sun.jvm.hotspot.ui.FindInCodeCachePanel.() -sun.jvm.hotspot.ui.FindInHeapPanel.() -sun.jvm.hotspot.ui.FindPanel.() -sun.jvm.hotspot.ui.HeapParametersPanel.() -sun.jvm.hotspot.ui.HighPrecisionJScrollBar.() -sun.jvm.hotspot.ui.HighPrecisionJScrollBar.(int) -sun.jvm.hotspot.ui.HighPrecisionJScrollBar.(int, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger) -sun.jvm.hotspot.ui.HighPrecisionJScrollBar.main([Ljava.lang.String;) -sun.jvm.hotspot.ui.HistoryComboBox.() -sun.jvm.hotspot.ui.Inspector.() -sun.jvm.hotspot.ui.Inspector.(sun.jvm.hotspot.ui.tree.SimpleTreeNode) -sun.jvm.hotspot.ui.JavaStackTracePanel.() -sun.jvm.hotspot.ui.JavaThreadsPanel.() -sun.jvm.hotspot.ui.MemoryPanel.(sun.jvm.hotspot.debugger.Debugger, boolean, boolean) -sun.jvm.hotspot.ui.MemoryViewer.(sun.jvm.hotspot.debugger.Debugger, boolean, boolean) -sun.jvm.hotspot.ui.MonitorCacheDumpPanel.() -sun.jvm.hotspot.ui.ObjectHistogramPanel.(sun.jvm.hotspot.oops.ObjectHistogram) -sun.jvm.hotspot.ui.ObjectListPanel.(java.util.List, sun.jvm.hotspot.utilities.HeapProgressThunk) -sun.jvm.hotspot.ui.ProcessListPanel.(sun.jvm.hotspot.debugger.Debugger) -sun.jvm.hotspot.ui.ProgressBarPanel.() -sun.jvm.hotspot.ui.ProgressBarPanel.(int) -sun.jvm.hotspot.ui.ProgressBarPanel.(int, java.lang.String) -sun.jvm.hotspot.ui.ProgressBarPanel.(java.lang.String) -sun.jvm.hotspot.ui.SAEditorPane.() -sun.jvm.hotspot.ui.SAPanel.() -sun.jvm.hotspot.ui.SourceCodePanel.() -sun.jvm.hotspot.ui.SourceCodePanel.openFile(java.lang.String) -sun.jvm.hotspot.ui.SysPropsPanel.() -sun.jvm.hotspot.ui.ThreadInfoPanel.() -sun.jvm.hotspot.ui.ThreadInfoPanel.(sun.jvm.hotspot.runtime.JavaThread) -sun.jvm.hotspot.ui.VMFlagsPanel.() -sun.jvm.hotspot.ui.VMVersionInfoPanel.() -sun.jvm.hotspot.ui.action.FindAction.() -sun.jvm.hotspot.ui.action.FindClassesAction.() -sun.jvm.hotspot.ui.action.FindCrashesAction.() -sun.jvm.hotspot.ui.action.InspectAction.() -sun.jvm.hotspot.ui.action.JavaStackTraceAction.() -sun.jvm.hotspot.ui.action.MemoryAction.() -sun.jvm.hotspot.ui.action.ShowAction.() -sun.jvm.hotspot.ui.action.ThreadInfoAction.() -sun.jvm.hotspot.ui.classbrowser.ClassBrowserPanel.() -sun.jvm.hotspot.ui.classbrowser.CodeViewerPanel.() -sun.jvm.hotspot.ui.classbrowser.HTMLGenerator.genDumpKlass(sun.jvm.hotspot.oops.InstanceKlass) -sun.jvm.hotspot.ui.classbrowser.HTMLGenerator.genHTMLForHyperlink(java.lang.String) -sun.jvm.hotspot.ui.table.LongCellRenderer.() -sun.jvm.hotspot.ui.table.LongCellRenderer.getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) -sun.jvm.hotspot.ui.table.SortHeaderCellRenderer.(javax.swing.table.JTableHeader, sun.jvm.hotspot.ui.table.SortableTableModel) -sun.jvm.hotspot.ui.table.SortHeaderCellRenderer.getIcon(java.lang.String) -sun.jvm.hotspot.ui.treetable.JTreeTable$TreeTableCellEditor.(sun.jvm.hotspot.ui.treetable.JTreeTable) -sun.jvm.hotspot.ui.treetable.JTreeTable$TreeTableCellEditor.getTableCellEditorComponent(javax.swing.JTable, java.lang.Object, boolean, int, int) -sun.jvm.hotspot.ui.treetable.JTreeTable$TreeTableCellRenderer.(sun.jvm.hotspot.ui.treetable.JTreeTable, javax.swing.tree.TreeModel) -sun.jvm.hotspot.ui.treetable.JTreeTable$TreeTableCellRenderer.getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) -sun.jvm.hotspot.ui.treetable.JTreeTable$TreeTableCellRenderer.updateUI() -sun.jvm.hotspot.ui.treetable.JTreeTable.(sun.jvm.hotspot.ui.treetable.TreeTableModel) -sun.jvm.hotspot.ui.treetable.JTreeTable.editCellAt(int, int, java.util.EventObject) -sun.jvm.hotspot.ui.treetable.JTreeTable.updateUI() -sun.jvm.hotspot.utilities.HeapGXLWriter.write(java.lang.String) -sun.jvm.hotspot.utilities.HeapHprofBinWriter.write(java.lang.String) -sun.jvmstat.perfdata.monitor.AbstractMonitoredVm.findByName(java.lang.String) -sun.jvmstat.perfdata.monitor.AbstractPerfDataBuffer.findByName(java.lang.String) -sun.jvmstat.perfdata.monitor.PerfDataBufferImpl.findByName(java.lang.String) -sun.jvmstat.perfdata.monitor.protocol.file.FileMonitoredVm.(sun.jvmstat.monitor.VmIdentifier, int) -sun.jvmstat.perfdata.monitor.protocol.file.MonitoredHostProvider.getMonitoredVm(sun.jvmstat.monitor.VmIdentifier) -sun.jvmstat.perfdata.monitor.protocol.file.MonitoredHostProvider.getMonitoredVm(sun.jvmstat.monitor.VmIdentifier, int) -sun.jvmstat.perfdata.monitor.protocol.file.PerfDataBuffer.(sun.jvmstat.monitor.VmIdentifier) -sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager.activeVms() -sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.activeVms() -sun.launcher.LauncherHelper.checkAndLoadMain(boolean, int, java.lang.String) -sun.management.jmxremote.ConnectorBootstrap.initialize() -sun.management.jmxremote.ConnectorBootstrap.initialize(java.lang.String, java.util.Properties) -sun.management.jmxremote.ConnectorBootstrap.startLocalConnectorServer() -sun.management.jmxremote.ConnectorBootstrap.startRemoteConnectorServer(java.lang.String, java.util.Properties) -sun.net.httpserver.simpleserver.FileServerHandler.create(java.nio.file.Path, java.util.function.UnaryOperator) -sun.net.httpserver.simpleserver.JWebServer.main([Ljava.lang.String;) -sun.net.httpserver.simpleserver.Main.main([Ljava.lang.String;) -sun.net.www.MimeTable.load() -sun.net.www.ParseUtil.fileToEncodedURL(java.io.File) -sun.net.www.http.HttpCapture.getCapture(java.net.URL) -sun.net.www.http.HttpClient.(java.net.URL, java.lang.String, int) -sun.net.www.http.HttpClient.(java.net.URL, java.lang.String, int, boolean, int) -sun.net.www.http.HttpClient.New(java.net.URL) -sun.net.www.http.HttpClient.New(java.net.URL, boolean) -sun.net.www.http.HttpClient.New(java.net.URL, java.lang.String, int, boolean) -sun.net.www.http.HttpClient.New(java.net.URL, java.lang.String, int, boolean, int, sun.net.www.protocol.http.HttpURLConnection) -sun.net.www.http.HttpClient.New(java.net.URL, java.net.Proxy, int, boolean, sun.net.www.protocol.http.HttpURLConnection) -sun.net.www.http.HttpClient.New(java.net.URL, java.net.Proxy, int, sun.net.www.protocol.http.HttpURLConnection) -sun.net.www.http.HttpClient.parseHTTP(sun.net.www.MessageHeader, sun.net.www.protocol.http.HttpURLConnection) -sun.net.www.protocol.file.FileURLConnection.connect() -sun.net.www.protocol.file.FileURLConnection.getContentLength() -sun.net.www.protocol.file.FileURLConnection.getContentLengthLong() -sun.net.www.protocol.file.FileURLConnection.getHeaderField(int) -sun.net.www.protocol.file.FileURLConnection.getHeaderField(java.lang.String) -sun.net.www.protocol.file.FileURLConnection.getHeaderFieldKey(int) -sun.net.www.protocol.file.FileURLConnection.getHeaderFields() -sun.net.www.protocol.file.FileURLConnection.getInputStream() -sun.net.www.protocol.file.FileURLConnection.getLastModified() -sun.net.www.protocol.file.FileURLConnection.getPermission() -sun.net.www.protocol.file.FileURLConnection.getProperties() -sun.net.www.protocol.file.Handler.openConnection(java.net.URL) -sun.net.www.protocol.file.Handler.openConnection(java.net.URL, java.net.Proxy) -sun.net.www.protocol.ftp.FtpURLConnection.connect() -sun.net.www.protocol.ftp.FtpURLConnection.getInputStream() -sun.net.www.protocol.ftp.FtpURLConnection.getOutputStream() -sun.net.www.protocol.http.HttpURLConnection.connect() -sun.net.www.protocol.http.HttpURLConnection.doTunneling() -sun.net.www.protocol.http.HttpURLConnection.getHeaderField(int) -sun.net.www.protocol.http.HttpURLConnection.getHeaderField(java.lang.String) -sun.net.www.protocol.http.HttpURLConnection.getHeaderFieldKey(int) -sun.net.www.protocol.http.HttpURLConnection.getHeaderFields() -sun.net.www.protocol.http.HttpURLConnection.getInputStream() -sun.net.www.protocol.http.HttpURLConnection.getOutputStream() -sun.net.www.protocol.http.HttpURLConnection.openConnectionCheckRedirects(java.net.URLConnection) -sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect() -sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.setProxiedClient(java.net.URL, java.lang.String, int) -sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.setProxiedClient(java.net.URL, java.lang.String, int, boolean) -sun.net.www.protocol.https.HttpsURLConnectionImpl.connect() -sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(int) -sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(java.lang.String) -sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderFieldKey(int) -sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderFields() -sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream() -sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream() -sun.net.www.protocol.jar.JarURLConnection.connect() -sun.net.www.protocol.jar.JarURLConnection.getContent() -sun.net.www.protocol.jar.JarURLConnection.getContentLength() -sun.net.www.protocol.jar.JarURLConnection.getContentLengthLong() -sun.net.www.protocol.jar.JarURLConnection.getContentType() -sun.net.www.protocol.jar.JarURLConnection.getInputStream() -sun.net.www.protocol.jar.JarURLConnection.getJarEntry() -sun.net.www.protocol.jar.JarURLConnection.getJarFile() -sun.net.www.protocol.jar.URLJarFile.(java.io.File) -sun.net.www.protocol.jar.URLJarFile.(java.io.File, sun.net.www.protocol.jar.URLJarFile$URLJarFileCloseController) -sun.net.www.protocol.jrt.JavaRuntimeURLConnection.connect() -sun.net.www.protocol.jrt.JavaRuntimeURLConnection.getContentLength() -sun.net.www.protocol.jrt.JavaRuntimeURLConnection.getContentLengthLong() -sun.net.www.protocol.jrt.JavaRuntimeURLConnection.getInputStream() -sun.swing.FilePane.(sun.swing.FilePane$FileChooserUIAccessor) -sun.swing.FilePane.canWrite(java.io.File) -sun.swing.FilePane.createDetailsView() -sun.swing.FilePane.createList() -sun.swing.FilePane.ensureFileIsVisible(javax.swing.JFileChooser, java.io.File) -sun.swing.FilePane.getActions() -sun.swing.FilePane.getComponentPopupMenu() -sun.swing.FilePane.getNewFolderAction() -sun.swing.FilePane.getViewMenu() -sun.swing.FilePane.propertyChange(java.beans.PropertyChangeEvent) -sun.swing.FilePane.setViewType(int) -sun.swing.FilePane.usesShellFolder(javax.swing.JFileChooser) +sun.nio.fs.WindowsChannelFactory.open(java.lang.String, java.lang.String, sun.nio.fs.WindowsChannelFactory$Flags, long) +sun.nio.fs.WindowsPath.checkDelete() +java.awt.Desktop.edit(java.io.File) +java.awt.Desktop.browseFileDirectory(java.io.File) +java.awt.Desktop.print(java.io.File) +java.awt.Desktop.mail(java.net.URI) +java.awt.Desktop.openHelpViewer() +java.awt.Desktop.setOpenFileHandler(java.awt.desktop.OpenFilesHandler) +java.awt.Desktop.open(java.io.File) +java.awt.Desktop.setOpenURIHandler(java.awt.desktop.OpenURIHandler) +java.awt.Desktop.mail() +java.awt.Desktop.browse(java.net.URI) +java.awt.Desktop.setOpenFileHandler(java.awt.desktop.OpenFilesHandler) +sun.nio.fs.WindowsFileSystemProvider.readSymbolicLink(java.nio.file.Path) \ No newline at end of file From edb629ac9fd3dfb84b128dc51f855fa5f1537591 Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Wed, 7 Aug 2024 20:22:53 +0200 Subject: [PATCH 23/30] updated structure for AspectJ --- .../java/FileSystemAdviceDefinition.aj | 351 ++++++++++-------- .../ase/ares/integration/PathAccessTest.java | 6 +- .../integration/testuser/PathAccessUser.java | 40 +- ...cy.yaml => EverythingForbiddenPolicy.yaml} | 0 .../OnePathAllowed.yaml | 2 +- 5 files changed, 220 insertions(+), 179 deletions(-) rename src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/{NoAllowedPathPolicy.yaml => EverythingForbiddenPolicy.yaml} (100%) rename src/test/resources/de/tum/cit/ase/ares/integration/testuser/{ => securitypolicies}/OnePathAllowed.yaml (84%) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj index 027052f8..596afdab 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj @@ -3,19 +3,23 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; import de.tum.cit.ase.ares.api.policy.FileSystemInteraction; import org.aspectj.lang.JoinPoint; +import java.io.File; +import java.nio.file.InvalidPathException; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Objects; +import java.util.stream.IntStream; + public aspect FileSystemAdviceDefinition { // This method handles the security check for file system interactions by validating if the requested operation type is allowed for the file in context. private boolean handleAroundAdvice(JoinPoint thisJoinPoint, String operationType) { String fileName = thisJoinPoint.getSourceLocation().getFileName(); - if (JavaAspectConfigurationLists.allowedFileSystemInteractions.isEmpty()) { - return true; - } - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() - .anyMatch(interaction -> interaction.onThisPathAndAllPathsBelow().getFileName().toString().equals(fileName) - && isOperationAllowed(interaction, operationType)); + .anyMatch(interaction -> isOperationAllowed(interaction, operationType, thisJoinPoint) && checkAllowedPaths(interaction, thisJoinPoint)); if (!isAllowed) { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " operation blocked by AspectJ." + " Called in " + thisJoinPoint.getSourceLocation() + " - Access Denied"); @@ -24,7 +28,7 @@ public aspect FileSystemAdviceDefinition { return true; } - private boolean isOperationAllowed(FileSystemInteraction interaction, String operationType) { + private boolean isOperationAllowed(FileSystemInteraction interaction, String operationType, JoinPoint thisJoinPoint) { switch (operationType.toLowerCase()) { case "read": return interaction.studentsAreAllowedToReadAllFiles(); @@ -39,11 +43,42 @@ public aspect FileSystemAdviceDefinition { } } + private static boolean checkAllowedPaths(FileSystemInteraction interaction, JoinPoint thisJoinPoint) { + return Arrays + .stream(thisJoinPoint.getArgs()) + .map(arg -> { + switch (arg) { + case Path p -> { + return p; + } + case File p -> { + return Paths.get(p.getPath()); + } + case String p -> { + try { + return Paths.get(p); + } catch (InvalidPathException e) { + return null; + } + } + default -> { + return null; + } + } + }) + .filter(Objects::nonNull) + .allMatch(path -> { + Path argumentPath = path.toAbsolutePath().normalize(); + Path interactionPath = interaction.onThisPathAndAllPathsBelow().toAbsolutePath().normalize(); + return argumentPath.startsWith(interactionPath); + }); + } + private void throwSecurityException(JoinPoint thisJoinPoint) { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - Object around() : FileSystemPointcutDefinitions.unixToolkitLoadGtkMethods() { + Object around(): FileSystemPointcutDefinitions.unixToolkitLoadGtkMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -51,7 +86,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.xDesktopPeerInitMethods() { + Object around(): FileSystemPointcutDefinitions.xDesktopPeerInitMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -59,7 +94,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.xRobotPeerLoadNativeLibrariesMethods() { + Object around(): FileSystemPointcutDefinitions.xRobotPeerLoadNativeLibrariesMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -67,7 +102,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.xTaskbarPeerInitMethods() { + Object around(): FileSystemPointcutDefinitions.xTaskbarPeerInitMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -75,7 +110,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.gifImageDecoderParseImageMethods() { + Object around(): FileSystemPointcutDefinitions.gifImageDecoderParseImageMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -83,7 +118,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.jpegImageDecoderReadImageMethod() { + Object around(): FileSystemPointcutDefinitions.jpegImageDecoderReadImageMethod() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -91,7 +126,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.cupsPrinterInitIDsMethod() { + Object around(): FileSystemPointcutDefinitions.cupsPrinterInitIDsMethod() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -99,7 +134,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileInputStreamReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileInputStreamReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -107,7 +142,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileInputStreamCloseMethods() { + Object around(): FileSystemPointcutDefinitions.fileInputStreamCloseMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -115,7 +150,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileOutputStreamWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileOutputStreamWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -123,7 +158,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileOutputStreamCloseMethods() { + Object around(): FileSystemPointcutDefinitions.fileOutputStreamCloseMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -131,7 +166,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileOutputStreamGetChannelMethods() { + Object around(): FileSystemPointcutDefinitions.fileOutputStreamGetChannelMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -139,7 +174,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileDescriptorMethods() { + Object around(): FileSystemPointcutDefinitions.fileDescriptorMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -147,7 +182,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileCleanableCleanupMethods() { + Object around(): FileSystemPointcutDefinitions.fileCleanableCleanupMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -155,7 +190,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.randomAccessFileReadMethods() { + Object around(): FileSystemPointcutDefinitions.randomAccessFileReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -163,7 +198,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.randomAccessFileWriteMethods() { + Object around(): FileSystemPointcutDefinitions.randomAccessFileWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -171,7 +206,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.randomAccessFileExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.randomAccessFileExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -179,7 +214,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemReadMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -187,7 +222,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemWriteMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -195,7 +230,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -203,7 +238,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.nativeImageBufferMethods() { + Object around(): FileSystemPointcutDefinitions.nativeImageBufferMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -211,7 +246,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.epollMethods() { + Object around(): FileSystemPointcutDefinitions.epollMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -219,7 +254,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileChannelImplReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileChannelImplReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -227,7 +262,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileChannelImplWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileChannelImplWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -235,7 +270,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileDispatcherImplReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileDispatcherImplReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -243,7 +278,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileDispatcherImplWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileDispatcherImplWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -251,7 +286,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileDispatcherImplExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.fileDispatcherImplExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -259,7 +294,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileKeyMethods() { + Object around(): FileSystemPointcutDefinitions.fileKeyMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -267,7 +302,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.inheritedChannelMethods() { + Object around(): FileSystemPointcutDefinitions.inheritedChannelMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -275,7 +310,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.linuxNativeDispatcherMethods() { + Object around(): FileSystemPointcutDefinitions.linuxNativeDispatcherMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -283,7 +318,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixCopyFileMethods() { + Object around(): FileSystemPointcutDefinitions.unixCopyFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -291,7 +326,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixNativeDispatcherReadMethods() { + Object around(): FileSystemPointcutDefinitions.unixNativeDispatcherReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -299,7 +334,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixNativeDispatcherWriteMethods() { + Object around(): FileSystemPointcutDefinitions.unixNativeDispatcherWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -307,7 +342,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixNativeDispatcherExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.unixNativeDispatcherExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -315,7 +350,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixNativeDispatcherDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.unixNativeDispatcherDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -323,7 +358,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.documentHandlerParseMethods() { + Object around(): FileSystemPointcutDefinitions.documentHandlerParseMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -331,7 +366,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.templatesImplReadObjectMethods() { + Object around(): FileSystemPointcutDefinitions.templatesImplReadObjectMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -339,7 +374,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.desktopMoveToTrashMethods() { + Object around(): FileSystemPointcutDefinitions.desktopMoveToTrashMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -347,7 +382,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.desktopPrintMethods() { + Object around(): FileSystemPointcutDefinitions.desktopPrintMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -355,7 +390,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.desktopSetPrintFileHandlerMethods() { + Object around(): FileSystemPointcutDefinitions.desktopSetPrintFileHandlerMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -363,7 +398,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.inputEventCanAccessSystemClipboardMethods() { + Object around(): FileSystemPointcutDefinitions.inputEventCanAccessSystemClipboardMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -371,7 +406,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.introspectorSetBeanInfoSearchPathMethods() { + Object around(): FileSystemPointcutDefinitions.introspectorSetBeanInfoSearchPathMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -379,7 +414,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.propertyEditorManagerSetEditorSearchPathMethods() { + Object around(): FileSystemPointcutDefinitions.propertyEditorManagerSetEditorSearchPathMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -387,7 +422,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileTempDirectoryGenerateFileMethods() { + Object around(): FileSystemPointcutDefinitions.fileTempDirectoryGenerateFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -395,7 +430,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -403,7 +438,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -411,7 +446,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.fileExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -419,7 +454,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.fileDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -427,7 +462,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileInputStreamInitMethods() { + Object around(): FileSystemPointcutDefinitions.fileInputStreamInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -435,7 +470,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileOutputStreamInitMethods() { + Object around(): FileSystemPointcutDefinitions.fileOutputStreamInitMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -443,7 +478,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.objectInputFilterConfigMethods() { + Object around(): FileSystemPointcutDefinitions.objectInputFilterConfigMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -451,7 +486,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.objectInputStreamMethods() { + Object around(): FileSystemPointcutDefinitions.objectInputStreamMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -459,7 +494,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.objectOutputStreamMethods() { + Object around(): FileSystemPointcutDefinitions.objectOutputStreamMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -467,7 +502,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.objectStreamClassMethods() { + Object around(): FileSystemPointcutDefinitions.objectStreamClassMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -475,7 +510,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.randomAccessFileInitMethods() { + Object around(): FileSystemPointcutDefinitions.randomAccessFileInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -483,7 +518,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -491,7 +526,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileTreeWalkerGetAttributesMethods() { + Object around(): FileSystemPointcutDefinitions.fileTreeWalkerGetAttributesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -499,7 +534,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.tempFileHelperCreateMethods() { + Object around(): FileSystemPointcutDefinitions.tempFileHelperCreateMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -507,7 +542,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemProviderCheckPermissionMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderCheckPermissionMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -515,7 +550,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileTypeDetectorCheckPermissionMethods() { + Object around(): FileSystemPointcutDefinitions.fileTypeDetectorCheckPermissionMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -523,7 +558,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.zipFileInitMethods() { + Object around(): FileSystemPointcutDefinitions.zipFileInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -531,7 +566,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.streamPrintServiceFactoryRunMethods() { + Object around(): FileSystemPointcutDefinitions.streamPrintServiceFactoryRunMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -539,7 +574,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.xPathFactoryFinderCreateClassMethods() { + Object around(): FileSystemPointcutDefinitions.xPathFactoryFinderCreateClassMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -547,7 +582,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.readWriteSelectableChannelMethods() { + Object around(): FileSystemPointcutDefinitions.readWriteSelectableChannelMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -555,7 +590,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.dataTransfererCastToFilesMethods() { + Object around(): FileSystemPointcutDefinitions.dataTransfererCastToFilesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -563,7 +598,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileImageSourceInitMethods() { + Object around(): FileSystemPointcutDefinitions.fileImageSourceInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -571,7 +606,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.imageConsumerQueueInitMethods() { + Object around(): FileSystemPointcutDefinitions.imageConsumerQueueInitMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -579,7 +614,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.inputStreamImageSourceAddConsumerMethods() { + Object around(): FileSystemPointcutDefinitions.inputStreamImageSourceAddConsumerMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -587,7 +622,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.shellFolderManagerCheckFileMethods() { + Object around(): FileSystemPointcutDefinitions.shellFolderManagerCheckFileMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -595,7 +630,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.shellFolderManagerCheckFilesMethods() { + Object around(): FileSystemPointcutDefinitions.shellFolderManagerCheckFilesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -603,7 +638,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileFontGetPublicFileNameMethods() { + Object around(): FileSystemPointcutDefinitions.fileFontGetPublicFileNameMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -611,7 +646,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixChannelFactoryOpenMethods() { + Object around(): FileSystemPointcutDefinitions.unixChannelFactoryOpenMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -619,7 +654,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileAttributeViewsPosixCheckReadExtendedMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileAttributeViewsPosixCheckReadExtendedMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -627,7 +662,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileAttributeViewsPosixCheckWriteExtendedMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileAttributeViewsPosixCheckWriteExtendedMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -635,7 +670,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystem1IteratorMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystem1IteratorMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -643,7 +678,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemFileStoreIteratorReadNextMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemFileStoreIteratorReadNextMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -651,7 +686,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemCopyMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemCopyMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -659,7 +694,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemGetFileStoresMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemGetFileStoresMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -667,7 +702,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemMoveMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemMoveMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -675,7 +710,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderCheckAccessMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderCheckAccessMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -683,7 +718,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderCreateLinkMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderCreateLinkMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -691,7 +726,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderCreateSymbolicLinkMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderCreateSymbolicLinkMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -699,7 +734,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderGetFileStoreMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderGetFileStoreMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -707,7 +742,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixFileSystemProviderReadSymbolicLinkMethods() { + Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderReadSymbolicLinkMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -715,7 +750,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixPathCheckDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.unixPathCheckDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -723,7 +758,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixPathCheckReadMethods() { + Object around(): FileSystemPointcutDefinitions.unixPathCheckReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -731,7 +766,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixPathCheckWriteMethods() { + Object around(): FileSystemPointcutDefinitions.unixPathCheckWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -739,7 +774,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixPathToAbsolutePathMethods() { + Object around(): FileSystemPointcutDefinitions.unixPathToAbsolutePathMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -747,7 +782,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplCheckWriteAccessMethods() { + Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplCheckWriteAccessMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -755,7 +790,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplReadAttributesMethods() { + Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplReadAttributesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -763,7 +798,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplCheckWriteAndUserAccessMethods() { + Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplCheckWriteAndUserAccessMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -771,7 +806,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplReadAttributesMethods() { + Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplReadAttributesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -779,7 +814,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamImplDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamImplDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -787,7 +822,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamMoveMethods() { + Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamMoveMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -795,7 +830,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixSecureDirectoryStreamNewDirectoryStreamMethods() { + Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamNewDirectoryStreamMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -803,7 +838,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -811,7 +846,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewListMethods() { + Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewListMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -819,7 +854,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewReadMethods() { + Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -827,7 +862,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewSizeMethods() { + Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewSizeMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -835,7 +870,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewWriteMethods() { + Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -843,7 +878,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.printJob2DThrowPrintToFileMethods() { + Object around(): FileSystemPointcutDefinitions.printJob2DThrowPrintToFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -851,7 +886,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.rasterPrinterJobThrowPrintToFileMethods() { + Object around(): FileSystemPointcutDefinitions.rasterPrinterJobThrowPrintToFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -859,7 +894,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.serviceDialogPrintServicePanelThrowPrintToFileMethods() { + Object around(): FileSystemPointcutDefinitions.serviceDialogPrintServicePanelThrowPrintToFileMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -867,7 +902,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.filesReadMethods() { + Object around(): FileSystemPointcutDefinitions.filesReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -875,7 +910,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.filesWriteMethods() { + Object around(): FileSystemPointcutDefinitions.filesWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -883,7 +918,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.filesExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.filesExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -891,7 +926,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.filesDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.filesDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -900,7 +935,7 @@ public aspect FileSystemAdviceDefinition { } - Object around() : FileSystemPointcutDefinitions.pathReadMethods() { + Object around(): FileSystemPointcutDefinitions.pathReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -908,7 +943,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.pathWriteMethods() { + Object around(): FileSystemPointcutDefinitions.pathWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -916,7 +951,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.pathExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.pathExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -924,7 +959,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.pathDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.pathDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -932,7 +967,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -940,7 +975,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -948,7 +983,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -956,7 +991,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -964,7 +999,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.windowsFileSystemProviderReadSymbolicLinkMethods() { + Object around(): FileSystemPointcutDefinitions.windowsFileSystemProviderReadSymbolicLinkMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -972,7 +1007,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.desktopSetOpenFileHandlerMethods() { + Object around(): FileSystemPointcutDefinitions.desktopSetOpenFileHandlerMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -980,7 +1015,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.desktopExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.desktopExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -988,7 +1023,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fontCreateMethods() { + Object around(): FileSystemPointcutDefinitions.fontCreateMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -996,7 +1031,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.windowsPathCheckDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.windowsPathCheckDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -1004,7 +1039,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.win32PrintJobGetAttributeValuesMethods() { + Object around(): FileSystemPointcutDefinitions.win32PrintJobGetAttributeValuesMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1012,7 +1047,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.hotSpotDiagnosticDumpHeapMethods() { + Object around(): FileSystemPointcutDefinitions.hotSpotDiagnosticDumpHeapMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1020,7 +1055,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.processBuilderStartMethods() { + Object around(): FileSystemPointcutDefinitions.processBuilderStartMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1028,7 +1063,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.processImplInitMethods() { + Object around(): FileSystemPointcutDefinitions.processImplInitMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1036,7 +1071,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.windowsFileSystemProviderCheckAccessMethods() { + Object around(): FileSystemPointcutDefinitions.windowsFileSystemProviderCheckAccessMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1044,7 +1079,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.windowsPathCheckReadMethods() { + Object around(): FileSystemPointcutDefinitions.windowsPathCheckReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1052,7 +1087,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.windowsPathRegisterMethods() { + Object around(): FileSystemPointcutDefinitions.windowsPathRegisterMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1060,7 +1095,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.windowsFileSystemGetRootDirectoriesMethods() { + Object around(): FileSystemPointcutDefinitions.windowsFileSystemGetRootDirectoriesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1068,7 +1103,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.jarFileFactoryGetCachedJarFileMethods() { + Object around(): FileSystemPointcutDefinitions.jarFileFactoryGetCachedJarFileMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1076,7 +1111,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileServerHandlerInitMethods() { + Object around(): FileSystemPointcutDefinitions.fileServerHandlerInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1084,7 +1119,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.win32ShellFolderManager2CheckFileMethods() { + Object around(): FileSystemPointcutDefinitions.win32ShellFolderManager2CheckFileMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1092,7 +1127,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.win32ShellFolder2GetFileSystemPathMethods() { + Object around(): FileSystemPointcutDefinitions.win32ShellFolder2GetFileSystemPathMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1100,7 +1135,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.win32ShellFolder2ListFilesMethods() { + Object around(): FileSystemPointcutDefinitions.win32ShellFolder2ListFilesMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1108,7 +1143,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.shellFolderManagerCheckFileMethods() { + Object around(): FileSystemPointcutDefinitions.shellFolderManagerCheckFileMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1116,7 +1151,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileImageSourceInitMethods() { + Object around(): FileSystemPointcutDefinitions.fileImageSourceInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1124,7 +1159,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.zipFileInitMethods() { + Object around(): FileSystemPointcutDefinitions.zipFileInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1132,7 +1167,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.winNTFileSystemAccessMethods() { + Object around(): FileSystemPointcutDefinitions.winNTFileSystemAccessMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1140,7 +1175,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.winNTFileSystemResolveMethods() { + Object around(): FileSystemPointcutDefinitions.winNTFileSystemResolveMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1148,7 +1183,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileChannelExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.fileChannelExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1156,7 +1191,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileChannelReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileChannelReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1164,7 +1199,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileChannelWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileChannelWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1172,7 +1207,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileWriterMethods() { + Object around(): FileSystemPointcutDefinitions.fileWriterMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1180,7 +1215,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileHandlerMethods() { + Object around(): FileSystemPointcutDefinitions.fileHandlerMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1188,7 +1223,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.midiSystemMethods() { + Object around(): FileSystemPointcutDefinitions.midiSystemMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1196,7 +1231,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemsReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemsReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1204,7 +1239,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemsExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemsExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1212,7 +1247,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.defaultFileSystemExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.defaultFileSystemExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1220,7 +1255,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemProviderReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -1228,7 +1263,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemProviderWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -1236,7 +1271,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemProviderExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -1244,7 +1279,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around() : FileSystemPointcutDefinitions.fileSystemProviderDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } diff --git a/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java b/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java index d39b95c5..12dcdf96 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java @@ -27,16 +27,16 @@ class PathAccessTest { private final String accessPathTest = "accessPathTest"; private final String weAccessPath = "weAccessPath"; + /* OUTCOMMENTED: Conceptually not possible anymore @TestTest void test_accessPathAllFiles() { - //OUTCOMMENTED: Test does not pass - //tests.assertThatEvents().haveExactly(1, testFailedWith(accessPathAllFiles, SecurityException.class)); + tests.assertThatEvents().haveExactly(1, testFailedWith(accessPathAllFiles, SecurityException.class)); } @TestTest void test_accessPathAllowed() { tests.assertThatEvents().haveExactly(1, finishedSuccessfully(accessPathAllowed)); - } + }*/ @TestTest void test_accessPathNormal() { diff --git a/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java b/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java index 938785e9..500cf365 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java @@ -23,6 +23,7 @@ @SuppressWarnings("static-method") public class PathAccessUser { + /* OUTCOMMENTED: Conceptually not possible anymore @PublicTest @WhitelistPath("") void accessPathAllFiles() { @@ -33,14 +34,33 @@ void accessPathAllFiles() { @WhitelistPath("") void accessPathAllowed() throws IOException { PathAccessPenguin.accessPath(Path.of("pom.xml")); - } + }*/ @PublicTest - @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/NoAllowedPathPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") + @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/OnePathAllowed.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") void accessPathNormal() throws IOException { PathAccessPenguin.accessPath(Path.of("pom.xml")); } + @PublicTest + @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") + void accessPathRelativeGlobDirectChildrenForbidden() { + PathAccessPenguin.askForFilePermission("*"); + } + + @PublicTest + @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") + void accessPathRelativeGlobRecursiveForbidden() { + PathAccessPenguin.askForFilePermission("-"); + } + + @PublicTest + @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/student") + void accessFileSystem() throws IOException {} + + + + @WhitelistPath(value = "../*r*e*s**", type = PathType.GLOB) @PublicTest void accessPathRelativeGlobA() throws IOException { @@ -66,11 +86,7 @@ void accessPathRelativeGlobDirectChildrenBlacklist() { PathAccessPenguin.askForFilePermission("*"); } - @PublicTest - @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/NoAllowedPathPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") - void accessPathRelativeGlobDirectChildrenForbidden() { - PathAccessPenguin.askForFilePermission("*"); - } + @WhitelistPath(value = "../*r*e*s**", type = PathType.GLOB) @PublicTest @@ -85,12 +101,6 @@ void accessPathRelativeGlobRecursiveBlacklist() { PathAccessPenguin.askForFilePermission("src/-"); } - @PublicTest - @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/NoAllowedPathPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") - void accessPathRelativeGlobRecursiveForbidden() { - PathAccessPenguin.askForFilePermission("-"); - } - @PublicTest @WhitelistPath("") @BlacklistPath(value = "**Test*.{java,class}", type = PathType.GLOB) @@ -105,8 +115,4 @@ void accessPathTest() throws IOException { void weAccessPath() throws IOException { Files.readString(Path.of("pom.xml")); } - - @PublicTest - @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/NoAllowedPathPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/student") - void accessFileSystem() throws IOException {} } diff --git a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/NoAllowedPathPolicy.yaml b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml similarity index 100% rename from src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/NoAllowedPathPolicy.yaml rename to src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml diff --git a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/OnePathAllowed.yaml similarity index 84% rename from src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml rename to src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/OnePathAllowed.yaml index 0c935d3a..cc132201 100644 --- a/src/test/resources/de/tum/cit/ase/ares/integration/testuser/OnePathAllowed.yaml +++ b/src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/OnePathAllowed.yaml @@ -1,7 +1,7 @@ # This is an example configuration file for the programming exercise "ExampleProgrammingExercise". theProgrammingLanguageIUseInThisProgrammingExerciseIs: JAVA iAllowTheFollowingFileSystemInteractionsForTheStudents: - - onThisPathAndAllPathsBelow: "de/tum/cit/ase/ares/integration/testuser/subject/pathaccess/PathAccessPengui.java" + - onThisPathAndAllPathsBelow: "/Users/aniruddhzaveri/IdeaProjects/Ares2" studentsAreAllowedToReadAllFiles: true studentsAreAllowedToOverwriteAllFiles: false studentsAreAllowedToExecuteAllFiles: false From 3a6ecefec68ff00752498aef6dc2f0caa11b9076 Mon Sep 17 00:00:00 2001 From: Aniruddh Date: Wed, 7 Aug 2024 21:07:16 +0200 Subject: [PATCH 24/30] removed overhead --- .../java/FileSystemAdviceDefinition.aj | 988 +----------------- .../java/FileSystemPointcutDefinitions.aj | 505 +-------- 2 files changed, 64 insertions(+), 1429 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj index 596afdab..8489a57f 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj @@ -16,8 +16,6 @@ public aspect FileSystemAdviceDefinition { // This method handles the security check for file system interactions by validating if the requested operation type is allowed for the file in context. private boolean handleAroundAdvice(JoinPoint thisJoinPoint, String operationType) { - String fileName = thisJoinPoint.getSourceLocation().getFileName(); - boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> isOperationAllowed(interaction, operationType, thisJoinPoint) && checkAllowedPaths(interaction, thisJoinPoint)); @@ -78,23 +76,7 @@ public aspect FileSystemAdviceDefinition { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } - Object around(): FileSystemPointcutDefinitions.unixToolkitLoadGtkMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.xDesktopPeerInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.xRobotPeerLoadNativeLibrariesMethods() { + Object around(): FileSystemPointcutDefinitions.randomAccessFileExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -102,23 +84,23 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.xTaskbarPeerInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around(): FileSystemPointcutDefinitions.fileReadMethods() { + if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around(): FileSystemPointcutDefinitions.gifImageDecoderParseImageMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around(): FileSystemPointcutDefinitions.fileWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around(): FileSystemPointcutDefinitions.jpegImageDecoderReadImageMethod() { + Object around(): FileSystemPointcutDefinitions.fileExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -126,15 +108,15 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.cupsPrinterInitIDsMethod() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around(): FileSystemPointcutDefinitions.fileDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around(): FileSystemPointcutDefinitions.fileInputStreamReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileInputStreamInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -142,15 +124,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileInputStreamCloseMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileOutputStreamWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileOutputStreamInitMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -158,7 +132,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileOutputStreamCloseMethods() { + Object around(): FileSystemPointcutDefinitions.objectStreamClassMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -166,7 +140,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileOutputStreamGetChannelMethods() { + Object around(): FileSystemPointcutDefinitions.randomAccessFileInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -174,23 +148,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileDescriptorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileCleanableCleanupMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.randomAccessFileReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -198,7 +156,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.randomAccessFileWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -206,7 +164,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.randomAccessFileExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -214,23 +172,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.unixFileSystemReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -238,15 +180,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.nativeImageBufferMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.epollMethods() { + Object around(): FileSystemPointcutDefinitions.fileTypeDetectorProbeContentTypeMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -254,7 +188,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileChannelImplReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileImageSourceInitMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -262,15 +196,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileChannelImplWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileDispatcherImplReadMethods() { + Object around(): FileSystemPointcutDefinitions.filesReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -278,7 +204,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileDispatcherImplWriteMethods() { + Object around(): FileSystemPointcutDefinitions.filesWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -286,31 +212,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileDispatcherImplExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileKeyMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.inheritedChannelMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.linuxNativeDispatcherMethods() { + Object around(): FileSystemPointcutDefinitions.filesExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -318,15 +220,8 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.unixCopyFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - Object around(): FileSystemPointcutDefinitions.unixNativeDispatcherReadMethods() { + Object around(): FileSystemPointcutDefinitions.pathReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -334,7 +229,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.unixNativeDispatcherWriteMethods() { + Object around(): FileSystemPointcutDefinitions.pathWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -342,7 +237,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.unixNativeDispatcherExecuteMethods() { + Object around(): FileSystemPointcutDefinitions.pathExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -350,7 +245,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.unixNativeDispatcherDeleteMethods() { + Object around(): FileSystemPointcutDefinitions.pathDeleteMethods() { if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } @@ -358,15 +253,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.documentHandlerParseMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.templatesImplReadObjectMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -374,23 +261,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.desktopMoveToTrashMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.desktopPrintMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.desktopSetPrintFileHandlerMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -398,7 +269,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.inputEventCanAccessSystemClipboardMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -406,23 +277,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.introspectorSetBeanInfoSearchPathMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.propertyEditorManagerSetEditorSearchPathMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileTempDirectoryGenerateFileMethods() { + Object around(): FileSystemPointcutDefinitions.fileChannelExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -430,7 +285,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileReadMethods() { + Object around(): FileSystemPointcutDefinitions.fileChannelReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -438,7 +293,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileWriteMethods() { + Object around(): FileSystemPointcutDefinitions.fileChannelWriteMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -446,31 +301,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileInputStreamInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileOutputStreamInitMethods() { + Object around(): FileSystemPointcutDefinitions.fileWriterMethods() { if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } @@ -478,39 +309,15 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.objectInputFilterConfigMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.objectInputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.objectOutputStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.objectStreamClassMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around(): FileSystemPointcutDefinitions.fileHandlerMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around(): FileSystemPointcutDefinitions.randomAccessFileInitMethods() { + Object around(): FileSystemPointcutDefinitions.midiSystemMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -518,15 +325,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.unixFileSystemMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileTreeWalkerGetAttributesMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemsReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -534,15 +333,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.tempFileHelperCreateMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemProviderCheckPermissionMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemsExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -550,7 +341,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.fileTypeDetectorCheckPermissionMethods() { + Object around(): FileSystemPointcutDefinitions.defaultFileSystemExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -558,7 +349,7 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.zipFileInitMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderReadMethods() { if (handleAroundAdvice(thisJoinPoint, "read")) { return proceed(); } @@ -566,15 +357,15 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.streamPrintServiceFactoryRunMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderWriteMethods() { + if (handleAroundAdvice(thisJoinPoint, "write")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around(): FileSystemPointcutDefinitions.xPathFactoryFinderCreateClassMethods() { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -582,31 +373,15 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.readWriteSelectableChannelMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.dataTransfererCastToFilesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileImageSourceInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { + Object around(): FileSystemPointcutDefinitions.fileSystemProviderDeleteMethods() { + if (handleAroundAdvice(thisJoinPoint, "delete")) { return proceed(); } throwSecurityException(thisJoinPoint); return null; } - Object around(): FileSystemPointcutDefinitions.imageConsumerQueueInitMethods() { + Object around(): FileSystemPointcutDefinitions.desktopExecuteMethods() { if (handleAroundAdvice(thisJoinPoint, "execute")) { return proceed(); } @@ -614,677 +389,4 @@ public aspect FileSystemAdviceDefinition { return null; } - Object around(): FileSystemPointcutDefinitions.inputStreamImageSourceAddConsumerMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.shellFolderManagerCheckFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.shellFolderManagerCheckFilesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileFontGetPublicFileNameMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixChannelFactoryOpenMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileAttributeViewsPosixCheckReadExtendedMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileAttributeViewsPosixCheckWriteExtendedMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystem1IteratorMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemFileStoreIteratorReadNextMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemCopyMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemGetFileStoresMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemMoveMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderCheckAccessMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderCreateLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderCreateSymbolicLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderGetFileStoreMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixFileSystemProviderReadSymbolicLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixPathCheckDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixPathCheckReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixPathCheckWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixPathToAbsolutePathMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplCheckWriteAccessMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamBasicFileAttributeViewImplReadAttributesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplCheckWriteAndUserAccessMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamPosixFileAttributeViewImplReadAttributesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamImplDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamMoveMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixSecureDirectoryStreamNewDirectoryStreamMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewListMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewSizeMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.unixUserDefinedFileAttributeViewWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.printJob2DThrowPrintToFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.rasterPrinterJobThrowPrintToFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.serviceDialogPrintServicePanelThrowPrintToFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.filesReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.filesWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.filesExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.filesDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - - Object around(): FileSystemPointcutDefinitions.pathReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.pathWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.pathExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.pathDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.windowsFileSystemProviderReadSymbolicLinkMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.desktopSetOpenFileHandlerMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.desktopExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fontCreateMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.windowsPathCheckDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.win32PrintJobGetAttributeValuesMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.hotSpotDiagnosticDumpHeapMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.processBuilderStartMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.processImplInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.windowsFileSystemProviderCheckAccessMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.windowsPathCheckReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.windowsPathRegisterMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.windowsFileSystemGetRootDirectoriesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.jarFileFactoryGetCachedJarFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileServerHandlerInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.win32ShellFolderManager2CheckFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.win32ShellFolder2GetFileSystemPathMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.win32ShellFolder2ListFilesMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.shellFolderManagerCheckFileMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileImageSourceInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.zipFileInitMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.winNTFileSystemAccessMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.winNTFileSystemResolveMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileChannelExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileChannelReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileChannelWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileWriterMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileHandlerMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.midiSystemMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemsReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemsExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.defaultFileSystemExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemProviderReadMethods() { - if (handleAroundAdvice(thisJoinPoint, "read")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemProviderWriteMethods() { - if (handleAroundAdvice(thisJoinPoint, "write")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemProviderExecuteMethods() { - if (handleAroundAdvice(thisJoinPoint, "execute")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - - Object around(): FileSystemPointcutDefinitions.fileSystemProviderDeleteMethods() { - if (handleAroundAdvice(thisJoinPoint, "delete")) { - return proceed(); - } - throwSecurityException(thisJoinPoint); - return null; - } - } \ No newline at end of file diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj index 84e12cfe..821d4e43 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemPointcutDefinitions.aj @@ -3,257 +3,11 @@ package de.tum.cit.ase.ares.api.aspectconfiguration.java; public aspect FileSystemPointcutDefinitions { // These are the FileSystem related methods which we want to ban - pointcut unixToolkitLoadGtkMethods() : - (call(* sun.awt.UNIXToolkit.load_gtk(..)) || - call(* sun.awt.UNIXToolkit.load_gtk_icon(..)) || - call(* sun.awt.UNIXToolkit.unload_gtk(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut xDesktopPeerInitMethods() : - call(* sun.awt.X11.XDesktopPeer.init(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut xRobotPeerLoadNativeLibrariesMethods() : - call(* sun.awt.X11.XRobotPeer.loadNativeLibraries(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut xTaskbarPeerInitMethods() : - call(* sun.awt.X11.XTaskbarPeer.init(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut gifImageDecoderParseImageMethods() : - call(* sun.awt.image.GifImageDecoder.parseImage(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut jpegImageDecoderReadImageMethod() : - call(* sun.awt.image.JPEGImageDecoder.readImage(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut cupsPrinterInitIDsMethod() : - call(* sun.print.CUPSPrinter.initIDs(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileInputStreamReadMethods() : - (call(* java.io.FileInputStream.read(..)) || - call(* java.io.FileInputStream.available(..)) || - call(* java.io.FileInputStream.getFD(..)) || - call(* java.io.FileInputStream.getChannel(..))) || - call(* java.io.FileInputStream.skip(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileInputStreamCloseMethods() : - call(* java.io.FileInputStream.close(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileOutputStreamWriteMethods() : - call(* java.io.FileOutputStream.write(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileOutputStreamCloseMethods() : - call(* java.io.FileOutputStream.close(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileOutputStreamGetChannelMethods() : - call(* java.io.FileOutputStream.getChannel(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDescriptorMethods() : - (call(* java.io.FileDescriptor.sync(..)) || - call(* java.io.FileDescriptor.close(..)))&& - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileCleanableCleanupMethods() : - call(* java.io.FileCleanable.cleanup(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut randomAccessFileReadMethods() : - (call(* java.io.RandomAccessFile.read(..)) || - call(* java.io.RandomAccessFile.readBytes(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut randomAccessFileWriteMethods() : - (call(* java.io.RandomAccessFile.write(..)) || - call(* java.io.RandomAccessFile.writeBytes(..)) || - call(* java.io.RandomAccessFile.setLength(..))) && - !within(de.tum.cit.ase.ares.api..*); pointcut randomAccessFileExecuteMethods() : - (call(* java.io.RandomAccessFile.seek(..)) || - call(* java.io.RandomAccessFile.getFilePointer(..)) || - call(* java.io.RandomAccessFile.length(..)) || - call(java.io.RandomAccessFile.new(..))) && + call(java.io.RandomAccessFile.new(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut unixFileSystemReadMethods() : - (call(* java.io.UnixFileSystem.canonicalize(..)) || - call(* java.io.UnixFileSystem.checkAccess(..)) || - call(* java.io.UnixFileSystem.getBooleanAttributes(..)) || - call(* java.io.UnixFileSystem.getLastModifiedTime(..)) || - call(* java.io.UnixFileSystem.getLength(..)) || - call(* java.io.UnixFileSystem.getNameMax(..)) || - call(* java.io.UnixFileSystem.getSpace(..)) || - call(* java.io.UnixFileSystem.list(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemWriteMethods() : - (call(* java.io.UnixFileSystem.createDirectory(..)) || - call(* java.io.UnixFileSystem.createFileExclusively(..)) || - call(* java.io.UnixFileSystem.setLastModifiedTime(..)) || - call(* java.io.UnixFileSystem.setPermission(..)) || - call(* java.io.UnixFileSystem.setReadOnly(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemDeleteMethods() : - (call(* java.io.UnixFileSystem.delete(..)) || - call(* java.io.UnixFileSystem.rename(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut nativeImageBufferMethods() : - call(* jdk.internal.jimage.NativeImageBuffer.getNativeMap(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut epollMethods() : - (call(* sun.nio.ch.EPoll.create(..)) || - call(* sun.nio.ch.EPoll.ctl(..)) || - call(* sun.nio.ch.EPoll.wait(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileChannelImplReadMethods() : - call(* sun.nio.ch.FileChannelImpl.unmap(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileChannelImplWriteMethods() : - call(* sun.nio.ch.FileChannelImpl.transferTo(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDispatcherImplReadMethods() : - (call(* sun.nio.ch.FileDispatcherImpl.pread(..)) || - call(* sun.nio.ch.FileDispatcherImpl.read(..)) || - call(* sun.nio.ch.FileDispatcherImpl.readv(..)) || - call(* sun.nio.ch.FileDispatcherImpl.size(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDispatcherImplWriteMethods() : - (call(* sun.nio.ch.FileDispatcherImpl.force(..)) || - call(* sun.nio.ch.FileDispatcherImpl.pwrite(..)) || - call(* sun.nio.ch.FileDispatcherImpl.truncate(..)) || - call(* sun.nio.ch.FileDispatcherImpl.write(..)) || - call(* sun.nio.ch.FileDispatcherImpl.writev(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileDispatcherImplExecuteMethods() : - (call(* sun.nio.ch.FileDispatcherImpl.close(..)) || - call(* sun.nio.ch.FileDispatcherImpl.closeIntFD(..)) || - call(* sun.nio.ch.FileDispatcherImpl.dup0(..)) || - call(* sun.nio.ch.FileDispatcherImpl.lock(..)) || - call(* sun.nio.ch.FileDispatcherImpl.preClose(..)) || - call(* sun.nio.ch.FileDispatcherImpl.release(..)) || - call(* sun.nio.ch.FileDispatcherImpl.seek(..)) || - call(* sun.nio.ch.FileDispatcherImpl.setDirect0(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileKeyMethods() : - call(* sun.nio.ch.FileKey.init(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut inheritedChannelMethods() : - call(* sun.nio.ch.InheritedChannel.open(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut linuxNativeDispatcherMethods() : - (call(* sun.nio.fs.LinuxNativeDispatcher.endmntent(..)) || - call(* sun.nio.fs.LinuxNativeDispatcher.getmntent(..)) || - call(* sun.nio.fs.LinuxNativeDispatcher.setmntent(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixCopyFileMethods() : - call(* sun.nio.fs.UnixCopyFile.transfer(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherReadMethods() : - (call(* sun.nio.fs.UnixNativeDispatcher.access(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.exists(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.fgetxattr(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.flistxattr(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.fstat(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.fstatat(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.getcwd(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.getlinelen(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.lstat(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.read(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.readdir(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.readlink(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.realpath(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.stat(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.stat1(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.statvfs(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherWriteMethods() : - (call(* sun.nio.fs.UnixNativeDispatcher.chmod(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.chown(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.fchmod(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.fchown(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.fremovexattr(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.fsetxattr(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.futimens(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.futimes(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.lchown(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.link(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.lutimes(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.mkdir(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.mknod(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.rename(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.renameat(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.rmdir(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.symlink(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.utimes(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.write(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherExecuteMethods() : - (call(* sun.nio.fs.UnixNativeDispatcher.close(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.closedir(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.dup(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.fdopendir(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.open(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.openat(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.opendir(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.rewind(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixNativeDispatcherDeleteMethods() : - (call(* sun.nio.fs.UnixNativeDispatcher.unlink(..)) || - call(* sun.nio.fs.UnixNativeDispatcher.unlinkat(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut documentHandlerParseMethods() : call(* com.sun.beans.decoder.DocumentHandler.parse(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut templatesImplReadObjectMethods() : call(* com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl.readObject(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut desktopMoveToTrashMethods() : call(* java.awt.Desktop.moveToTrash(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut desktopPrintMethods() : call(* java.awt.Desktop.print(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut desktopSetPrintFileHandlerMethods() : call(* java.awt.Desktop.setPrintFileHandler(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut inputEventCanAccessSystemClipboardMethods() : call(* java.awt.event.InputEvent.canAccessSystemClipboard(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut introspectorSetBeanInfoSearchPathMethods() : call(* java.beans.Introspector.setBeanInfoSearchPath(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut propertyEditorManagerSetEditorSearchPathMethods() : call(* java.beans.PropertyEditorManager.setEditorSearchPath(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileTempDirectoryGenerateFileMethods() : call(* java.io.File$TempDirectory.generateFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut fileReadMethods() : (call(* java.io.File.canRead(..)) || call(* java.io.File.exists(..)) || @@ -301,49 +55,13 @@ public aspect FileSystemPointcutDefinitions { pointcut fileOutputStreamInitMethods() : call(java.io.FileOutputStream.new(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut objectInputFilterConfigMethods() : (call(* java.io.ObjectInputFilter$Config.setSerialFilter(..)) || call(* java.io.ObjectInputFilter$Config.setSerialFilterFactory(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut objectInputStreamMethods() : (call(java.io.ObjectInputStream.new(..)) || call(* java.io.ObjectInputStream.enableResolveObject(..)) || call(* java.io.ObjectInputStream.setObjectInputFilter(..)) || call(* java.io.ObjectInputStream.verifySubclass(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut objectOutputStreamMethods() : (call(java.io.ObjectOutputStream.new(..)) || call(* java.io.ObjectOutputStream.enableReplaceObject(..)) || call(* java.io.ObjectOutputStream.verifySubclass(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut objectStreamClassMethods() : (call(* java.io.ObjectStreamClass.forClass(..)) || call(* java.io.ObjectStreamClass.getProtectionDomains(..)) || call(* java.io.ObjectStreamField.getType(..))) && + pointcut objectStreamClassMethods() : call(* java.io.ObjectStreamClass.getField(..)) && !within(de.tum.cit.ase.ares.api..*); pointcut randomAccessFileInitMethods() : call(java.io.RandomAccessFile.new(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut unixFileSystemMethods() : (call(* java.io.UnixFileSystem.listRoots(..)) || call(* java.io.UnixFileSystem.resolve(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileTreeWalkerGetAttributesMethods() : call(* java.nio.file.FileTreeWalker.getAttributes(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut tempFileHelperCreateMethods() : call(* java.nio.file.TempFileHelper.create(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileSystemProviderCheckPermissionMethods() : call(* java.nio.file.spi.FileSystemProvider.checkPermission(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileTypeDetectorCheckPermissionMethods() : call(* java.nio.file.spi.FileTypeDetector.checkPermission(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut zipFileInitMethods() : call(java.util.zip.ZipFile.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut streamPrintServiceFactoryRunMethods() : call(* javax.print.StreamPrintServiceFactory$1.run(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut xPathFactoryFinderCreateClassMethods() : call(* javax.xml.xpath.XPathFactoryFinder.createClass(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut readWriteSelectableChannelMethods() : call(* jdk.nio.Channels.readWriteSelectableChannel(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut dataTransfererCastToFilesMethods() : call(* sun.awt.datatransfer.DataTransferer.castToFiles(..)) && + pointcut fileTypeDetectorProbeContentTypeMethods() : call(* java.nio.file.spi.FileTypeDetector.probeContentType(..)) && !within(de.tum.cit.ase.ares.api..*); pointcut fileImageSourceInitMethods() : call(sun.awt.image.FileImageSource.new(..)) && @@ -352,114 +70,6 @@ public aspect FileSystemPointcutDefinitions { pointcut imageConsumerQueueInitMethods() : call(sun.awt.image.ImageConsumerQueue.new(..)) && !within(de.tum.cit.ase.ares.api..*); - pointcut inputStreamImageSourceAddConsumerMethods() : call(* sun.awt.image.InputStreamImageSource.addConsumer(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut shellFolderManagerCheckFileMethods() : call(* sun.awt.shell.ShellFolderManager.checkFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut shellFolderManagerCheckFilesMethods() : call(* sun.awt.shell.ShellFolderManager.checkFiles(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileFontGetPublicFileNameMethods() : call(* sun.font.FileFont.getPublicFileName(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixChannelFactoryOpenMethods() : call(* sun.nio.fs.UnixChannelFactory.open(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileAttributeViewsPosixCheckReadExtendedMethods() : call(* sun.nio.fs.UnixFileAttributeViews$Posix.checkReadExtended(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileAttributeViewsPosixCheckWriteExtendedMethods() : call(* sun.nio.fs.UnixFileAttributeViews$Posix.checkWriteExtended(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystem1IteratorMethods() : call(* sun.nio.fs.UnixFileSystem$1.iterator(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemFileStoreIteratorReadNextMethods() : call(* sun.nio.fs.UnixFileSystem$FileStoreIterator.readNext(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemCopyMethods() : call(* sun.nio.fs.UnixFileSystem.copy(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemGetFileStoresMethods() : call(* sun.nio.fs.UnixFileSystem.getFileStores(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemMoveMethods() : call(* sun.nio.fs.UnixFileSystem.move(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemProviderCheckAccessMethods() : call(* sun.nio.fs.UnixFileSystemProvider.checkAccess(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemProviderCreateLinkMethods() : call(* sun.nio.fs.UnixFileSystemProvider.createLink(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemProviderCreateSymbolicLinkMethods() : call(* sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemProviderGetFileStoreMethods() : call(* sun.nio.fs.UnixFileSystemProvider.getFileStore(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixFileSystemProviderReadSymbolicLinkMethods() : call(* sun.nio.fs.UnixFileSystemProvider.readSymbolicLink(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixPathCheckDeleteMethods() : call(* sun.nio.fs.UnixPath.checkDelete(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixPathCheckReadMethods() : call(* sun.nio.fs.UnixPath.checkRead(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixPathCheckWriteMethods() : call(* sun.nio.fs.UnixPath.checkWrite(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixPathToAbsolutePathMethods() : call(* sun.nio.fs.UnixPath.toAbsolutePath(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixSecureDirectoryStreamBasicFileAttributeViewImplCheckWriteAccessMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream$BasicFileAttributeViewImpl.checkWriteAccess(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixSecureDirectoryStreamBasicFileAttributeViewImplReadAttributesMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream$BasicFileAttributeViewImpl.readAttributes(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixSecureDirectoryStreamPosixFileAttributeViewImplCheckWriteAndUserAccessMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream$PosixFileAttributeViewImpl.checkWriteAndUserAccess(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixSecureDirectoryStreamPosixFileAttributeViewImplReadAttributesMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream$PosixFileAttributeViewImpl.readAttributes(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixSecureDirectoryStreamImplDeleteMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream.implDelete(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixSecureDirectoryStreamMoveMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream.move(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixSecureDirectoryStreamNewDirectoryStreamMethods() : call(* sun.nio.fs.UnixSecureDirectoryStream.newDirectoryStream(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixUserDefinedFileAttributeViewDeleteMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.delete(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixUserDefinedFileAttributeViewListMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.list(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixUserDefinedFileAttributeViewReadMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.read(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixUserDefinedFileAttributeViewSizeMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.size(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut unixUserDefinedFileAttributeViewWriteMethods() : call(* sun.nio.fs.UnixUserDefinedFileAttributeView.write(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut printJob2DThrowPrintToFileMethods() : call(* sun.print.PrintJob2D.throwPrintToFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut rasterPrinterJobThrowPrintToFileMethods() : call(* sun.print.RasterPrinterJob.throwPrintToFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut serviceDialogPrintServicePanelThrowPrintToFileMethods() : call(* sun.print.ServiceDialog$PrintServicePanel.throwPrintToFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut filesReadMethods() : (call(* java.nio.file.Files.readAllBytes(..)) || call(* java.nio.file.Files.readAllLines(..)) || @@ -568,102 +178,12 @@ public aspect FileSystemPointcutDefinitions { call(* java.nio.file.FileSystem.toString(..))) && !within(de.tum.cit.ase.ares.api..*); - pointcut fileSystemDeleteMethods() : - call(* java.nio.file.FileSystem.close(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut windowsFileSystemProviderReadSymbolicLinkMethods() : - call(* sun.nio.fs.WindowsFileSystemProvider.readSymbolicLink(..)) && !within(de.tum.cit.ase.ares.api..*); - - pointcut desktopSetOpenFileHandlerMethods() : - call(* java.awt.Desktop.setOpenFileHandler(..)) && !within(de.tum.cit.ase.ares.api..*); - - pointcut desktopExecuteMethods() : - (call(* java.awt.Desktop.browse(..)) || - call(* java.awt.Desktop.browseFileDirectory(..)) || - call(* java.awt.Desktop.edit(..)) || - call(* java.awt.Desktop.mail(..)) || - call(* java.awt.Desktop.mail(..)) || - call(* java.awt.Desktop.open(..)) || - call(* java.awt.Desktop.openHelpViewer(..)) || - call(* java.awt.Desktop.print(..)) || - call(* java.awt.Desktop.setOpenFileHandler(..)) || - call(* java.awt.Desktop.setOpenURIHandler(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fontCreateMethods() : - (call(* java.awt.Font.createFont(..)) || - call(* java.awt.Font.createFonts(..))) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut windowsPathCheckDeleteMethods() : - call(* sun.nio.fs.WindowsPath.checkDelete(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut win32PrintJobGetAttributeValuesMethods() : - call(* sun.print.Win32PrintJob.getAttributeValues(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut hotSpotDiagnosticDumpHeapMethods() : - call(* com.sun.management.internal.HotSpotDiagnostic.dumpHeap(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut processBuilderStartMethods() : - call(* java.lang.ProcessBuilder.start(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut processImplInitMethods() : - call(java.lang.ProcessImpl.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut windowsFileSystemProviderCheckAccessMethods() : - call(* sun.nio.fs.WindowsFileSystemProvider.checkAccess(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut windowsPathCheckReadMethods() : - call(* sun.nio.fs.WindowsPath.checkRead(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut windowsPathRegisterMethods() : - call(* sun.nio.fs.WindowsPath.register(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut windowsFileSystemGetRootDirectoriesMethods() : - call(* sun.nio.fs.WindowsFileSystem.getRootDirectories(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut jarFileFactoryGetCachedJarFileMethods() : - call(* sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut fileServerHandlerInitMethods() : - call(sun.net.httpserver.simpleserver.FileServerHandler.new(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut win32ShellFolderManager2CheckFileMethods() : - call(* sun.awt.shell.Win32ShellFolderManager2.checkFile(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut win32ShellFolder2GetFileSystemPathMethods() : - call(* sun.awt.shell.Win32ShellFolder2.getFileSystemPath(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut win32ShellFolder2ListFilesMethods() : - call(* sun.awt.shell.Win32ShellFolder2.listFiles(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut winNTFileSystemAccessMethods() : - call(* java.io.WinNTFileSystem.access(..)) && - !within(de.tum.cit.ase.ares.api..*); - - pointcut winNTFileSystemResolveMethods() : - call(* java.io.WinNTFileSystem.resolve(..)) && - !within(de.tum.cit.ase.ares.api..*); - pointcut fileChannelExecuteMethods() : (call(* java.nio.channels.FileChannel.open(..)) || + call(* java.nio.channels.AsynchronousFileChannel.open()) || call(* java.nio.channels.FileChannel.position(..)) || - call(* java.nio.channels.FileChannel.tryLock(..))) && + call(* java.nio.channels.FileChannel.tryLock(..)) || + call(* java.nio.channels.AsynchronousFileChannel.tryLock())) && !within(de.tum.cit.ase.ares.api..*); pointcut fileChannelReadMethods() : @@ -756,4 +276,17 @@ public aspect FileSystemPointcutDefinitions { call(* java.nio.file.spi.FileSystemProvider.deleteIfExists(..))) && !within(de.tum.cit.ase.ares.api..*); + //TODO: These should definetly be considered in different pointcut files or this one + pointcut desktopExecuteMethods() : + (call(* java.awt.Desktop.browse(..)) || + call(* java.awt.Desktop.browseFileDirectory(..)) || + call(* java.awt.Desktop.edit(..)) || + call(* java.awt.Desktop.mail(..)) || + call(* java.awt.Desktop.mail(..)) || + call(* java.awt.Desktop.open(..)) || + call(* java.awt.Desktop.openHelpViewer(..)) || + call(* java.awt.Desktop.print(..)) || + call(* java.awt.Desktop.setOpenFileHandler(..)) || + call(* java.awt.Desktop.setOpenURIHandler(..))) && + !within(de.tum.cit.ase.ares.api..*); } \ No newline at end of file From 82fa2e8c2106bddfc981fef0904d0f50a731b6fb Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Wed, 7 Aug 2024 21:14:55 +0200 Subject: [PATCH 25/30] tests failing --- .../cit/ase/ares/integration/testuser/PathAccessUser.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java b/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java index 500cf365..877bccaa 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/testuser/PathAccessUser.java @@ -43,19 +43,19 @@ void accessPathNormal() throws IOException { } @PublicTest - @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") + //@Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") void accessPathRelativeGlobDirectChildrenForbidden() { PathAccessPenguin.askForFilePermission("*"); } @PublicTest - @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") + //@Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/pathaccess") void accessPathRelativeGlobRecursiveForbidden() { PathAccessPenguin.askForFilePermission("-"); } @PublicTest - @Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/student") + //@Policy(value = "src/test/resources/de/tum/cit/ase/ares/integration/testuser/securitypolicies/EverythingForbiddenPolicy.yaml", withinPath = "test-classes/de/tum/cit/ase/ares/integration/testuser/subject/student") void accessFileSystem() throws IOException {} From 97bba8c06f84ac8171a633fc1385d34cf72de789 Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Wed, 7 Aug 2024 22:58:01 +0200 Subject: [PATCH 26/30] aspect configuration for non policy annotation --- .../java/FileSystemAdviceDefinition.aj | 4 ++++ .../java/JavaAspectConfigurationLists.java | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj index 8489a57f..77121503 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj @@ -16,6 +16,10 @@ public aspect FileSystemAdviceDefinition { // This method handles the security check for file system interactions by validating if the requested operation type is allowed for the file in context. private boolean handleAroundAdvice(JoinPoint thisJoinPoint, String operationType) { + if (JavaAspectConfigurationLists.allowedFileSystemInteractions == null) { + return true; + } + boolean isAllowed = JavaAspectConfigurationLists.allowedFileSystemInteractions.stream() .anyMatch(interaction -> isOperationAllowed(interaction, operationType, thisJoinPoint) && checkAllowedPaths(interaction, thisJoinPoint)); diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java index 8e154775..123023b4 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfigurationLists.java @@ -7,14 +7,14 @@ public class JavaAspectConfigurationLists { - static List allowedFileSystemInteractions = new ArrayList<>(); + static List allowedFileSystemInteractions = null; - static List allowedNetworkConnections = new ArrayList<>(); + static List allowedNetworkConnections = null; - static List allowedCommandExecutions = new ArrayList<>(); + static List allowedCommandExecutions = null; - static List allowedThreadCreations = new ArrayList<>(); + static List allowedThreadCreations = null; - static List allowedPackageImports = new ArrayList<>(); + static List allowedPackageImports = null; } From 16dfef25df09367cf54175810fd75d011573703e Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Wed, 7 Aug 2024 23:04:37 +0200 Subject: [PATCH 27/30] outcommented not adjusted tests for new aspectj config --- .../ase/ares/integration/PathAccessTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java b/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java index 12dcdf96..a4fc087b 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java @@ -36,13 +36,17 @@ void test_accessPathAllFiles() { @TestTest void test_accessPathAllowed() { tests.assertThatEvents().haveExactly(1, finishedSuccessfully(accessPathAllowed)); - }*/ + } + */ + /* OUTCOMMENTED: Test does not work as we have aspectJ for this case @TestTest void test_accessPathNormal() { tests.assertThatEvents().haveExactly(1, testFailedWith(accessPathNormal, SecurityException.class)); } + */ + @TestTest void test_accessPathRelativeGlobA() { tests.assertThatEvents().haveExactly(1, finishedSuccessfully(accessPathRelativeGlobA)); @@ -65,12 +69,15 @@ void test_accessPathRelativeGlobDirectChildrenBlacklist() { // testFailedWith(accessPathRelativeGlobDirectChildrenBlacklist, SecurityException.class)); } + /* OUTCOMMENTED: Test does not work as we have aspectJ for this case @TestTest void test_accessPathRelativeGlobDirectChildrenForbidden() { tests.assertThatEvents().haveExactly(1, testFailedWith(accessPathRelativeGlobDirectChildrenForbidden, SecurityException.class)); } + */ + @TestTest void test_accessPathRelativeGlobRecursiveAllowed() { tests.assertThatEvents().haveExactly(1, finishedSuccessfully(accessPathRelativeGlobRecursiveAllowed)); @@ -83,12 +90,15 @@ void test_accessPathRelativeGlobRecursiveBlacklist() { // testFailedWith(accessPathRelativeGlobRecursiveBlacklist, SecurityException.class)); } + /* OUTCOMMENTED: Test does not work as we have aspectJ for this case @TestTest void test_accessPathRelativeGlobRecursiveForbidden() { tests.assertThatEvents().haveExactly(1, testFailedWith(accessPathRelativeGlobRecursiveForbidden, SecurityException.class)); } + */ + @TestTest void test_accessPathTest() { //OUTCOMMENTED: Test does not pass @@ -100,8 +110,13 @@ void test_weAccessPath() { tests.assertThatEvents().haveExactly(1, finishedSuccessfully(weAccessPath)); } + /* OUTCOMMENTED: Test does not work as we have aspectJ for this case @TestTest void test_accessFileSystem() { tests.assertThatEvents().haveExactly(1, testFailedWith("accessFileSystem", SecurityException.class)); } + + */ + + } From 1067e574806019ae7ec98fd80bc29f2bd4a96848 Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Wed, 7 Aug 2024 23:07:00 +0200 Subject: [PATCH 28/30] needs discussion --- .../cit/ase/ares/integration/PathAccessTest.java | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java b/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java index a4fc087b..7467eb18 100644 --- a/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java +++ b/src/test/java/de/tum/cit/ase/ares/integration/PathAccessTest.java @@ -39,14 +39,12 @@ void test_accessPathAllowed() { } */ - /* OUTCOMMENTED: Test does not work as we have aspectJ for this case + @TestTest void test_accessPathNormal() { tests.assertThatEvents().haveExactly(1, testFailedWith(accessPathNormal, SecurityException.class)); } - */ - @TestTest void test_accessPathRelativeGlobA() { tests.assertThatEvents().haveExactly(1, finishedSuccessfully(accessPathRelativeGlobA)); @@ -69,15 +67,12 @@ void test_accessPathRelativeGlobDirectChildrenBlacklist() { // testFailedWith(accessPathRelativeGlobDirectChildrenBlacklist, SecurityException.class)); } - /* OUTCOMMENTED: Test does not work as we have aspectJ for this case @TestTest void test_accessPathRelativeGlobDirectChildrenForbidden() { tests.assertThatEvents().haveExactly(1, testFailedWith(accessPathRelativeGlobDirectChildrenForbidden, SecurityException.class)); } - */ - @TestTest void test_accessPathRelativeGlobRecursiveAllowed() { tests.assertThatEvents().haveExactly(1, finishedSuccessfully(accessPathRelativeGlobRecursiveAllowed)); @@ -90,15 +85,12 @@ void test_accessPathRelativeGlobRecursiveBlacklist() { // testFailedWith(accessPathRelativeGlobRecursiveBlacklist, SecurityException.class)); } - /* OUTCOMMENTED: Test does not work as we have aspectJ for this case @TestTest void test_accessPathRelativeGlobRecursiveForbidden() { tests.assertThatEvents().haveExactly(1, testFailedWith(accessPathRelativeGlobRecursiveForbidden, SecurityException.class)); } - */ - @TestTest void test_accessPathTest() { //OUTCOMMENTED: Test does not pass @@ -110,13 +102,10 @@ void test_weAccessPath() { tests.assertThatEvents().haveExactly(1, finishedSuccessfully(weAccessPath)); } - /* OUTCOMMENTED: Test does not work as we have aspectJ for this case @TestTest void test_accessFileSystem() { tests.assertThatEvents().haveExactly(1, testFailedWith("accessFileSystem", SecurityException.class)); } - */ - } From 7bfdfd5c2ec0e0ec11d273ce6381d8d07c298866 Mon Sep 17 00:00:00 2001 From: aniruddhzaveri Date: Wed, 7 Aug 2024 23:41:59 +0200 Subject: [PATCH 29/30] added comments and fix for empty security policy edge case --- .../java/FileSystemAdviceDefinition.aj | 3 +++ .../java/JavaAspectConfiguration.java | 12 ++++++++++++ .../java/JavaSecurityTestCaseFactoryAndBuilder.java | 1 + 3 files changed, 16 insertions(+) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj index 77121503..0ea05ded 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/FileSystemAdviceDefinition.aj @@ -30,6 +30,7 @@ public aspect FileSystemAdviceDefinition { return true; } + // This method checks if the given operation type is allowed for the file system interaction. private boolean isOperationAllowed(FileSystemInteraction interaction, String operationType, JoinPoint thisJoinPoint) { switch (operationType.toLowerCase()) { case "read": @@ -45,6 +46,7 @@ public aspect FileSystemAdviceDefinition { } } + // This method checks if the file paths involved in the join point are allowed according to the file system interaction rules. private static boolean checkAllowedPaths(FileSystemInteraction interaction, JoinPoint thisJoinPoint) { return Arrays .stream(thisJoinPoint.getArgs()) @@ -76,6 +78,7 @@ public aspect FileSystemAdviceDefinition { }); } + // This method throws a SecurityException indicating that the join point operation could not proceed. private void throwSecurityException(JoinPoint thisJoinPoint) { throw new SecurityException(thisJoinPoint.getSignature().toLongString() + " was not able to proceed."); } diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java index bbcbd5cb..b8342526 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java @@ -99,6 +99,10 @@ public String createAspectConfigurationFileContent() { */ @Override public void runAspectConfiguration() { + if (securityPolicy == null) { + deactivateAspectJConfig(); + return; + } switch (javaSupportedAspectConfiguration) { case FILESYSTEM_INTERACTION -> { JavaAspectConfigurationLists.allowedFileSystemInteractions = securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents(); @@ -117,4 +121,12 @@ public void runAspectConfiguration() { } } } + + public void deactivateAspectJConfig () { + JavaAspectConfigurationLists.allowedFileSystemInteractions = null; + JavaAspectConfigurationLists.allowedNetworkConnections = null; + JavaAspectConfigurationLists.allowedCommandExecutions = null; + JavaAspectConfigurationLists.allowedThreadCreations = null; + JavaAspectConfigurationLists.allowedPackageImports = null; + } } diff --git a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java index 9563be66..79eeb110 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java +++ b/src/main/java/de/tum/cit/ase/ares/api/securitytest/java/JavaSecurityTestCaseFactoryAndBuilder.java @@ -80,6 +80,7 @@ private void parseTestCasesToBeCreated() { for (int i = 0; i < methods.length; i++) { if (isEmpty(methods[i].get())) { javaArchitectureTestCases.add(new JavaArchitectureTestCase(JavaSupportedArchitectureTestCase.values()[i], withinPath)); + javaAspectConfigurations.add(new JavaAspectConfiguration(JavaSupportedAspectConfiguration.values()[i], null, null)); } else { javaAspectConfigurations.add(new JavaAspectConfiguration(JavaSupportedAspectConfiguration.values()[i], securityPolicy, withinPath)); } From cf9d98f3f679c8d3942bf4d91dbc76fc51be1d87 Mon Sep 17 00:00:00 2001 From: sarps Date: Thu, 8 Aug 2024 02:14:48 +0200 Subject: [PATCH 30/30] Sort FileSystemAccess methods, improve error handling and refactor in JavaAspectConfiguration --- .../java/JavaAspectConfiguration.java | 27 ++-- .../methods/file-system-access-methods.txt | 117 ++++++++++-------- 2 files changed, 74 insertions(+), 70 deletions(-) diff --git a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java index b8342526..9c01ba15 100644 --- a/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java +++ b/src/main/java/de/tum/cit/ase/ares/api/aspectconfiguration/java/JavaAspectConfiguration.java @@ -18,6 +18,7 @@ public class JavaAspectConfiguration implements AspectConfiguration { private final JavaSupportedAspectConfiguration javaSupportedAspectConfiguration; private final SecurityPolicy securityPolicy; + // TODO: this is currently not used private final Path withinPath; /** @@ -90,6 +91,7 @@ public String createAspectConfigurationFileContent() { .collect(Collectors.joining(",\n"))); content.append("\n);\n"); } + default -> throw new UnsupportedOperationException("Unsupported configuration: " + javaSupportedAspectConfiguration); } return content.toString(); } @@ -103,26 +105,19 @@ public void runAspectConfiguration() { deactivateAspectJConfig(); return; } + // TODO: This is definitely a code smell. Why do we change static stuff from a non-static method take a look at java:S2696 switch (javaSupportedAspectConfiguration) { - case FILESYSTEM_INTERACTION -> { - JavaAspectConfigurationLists.allowedFileSystemInteractions = securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents(); - } - case NETWORK_CONNECTION -> { - JavaAspectConfigurationLists.allowedNetworkConnections = securityPolicy.iAllowTheFollowingNetworkConnectionsForTheStudents(); - } - case COMMAND_EXECUTION -> { - JavaAspectConfigurationLists.allowedCommandExecutions = securityPolicy.iAllowTheFollowingCommandExecutionsForTheStudents(); - } - case THREAD_CREATION -> { - JavaAspectConfigurationLists.allowedThreadCreations = securityPolicy.iAllowTheFollowingThreadCreationsForTheStudents(); - } - case PACKAGE_IMPORT -> { - JavaAspectConfigurationLists.allowedPackageImports = securityPolicy.iAllowTheFollowingPackageImportForTheStudents(); - } + case FILESYSTEM_INTERACTION -> JavaAspectConfigurationLists.allowedFileSystemInteractions = securityPolicy.iAllowTheFollowingFileSystemInteractionsForTheStudents(); + case NETWORK_CONNECTION -> JavaAspectConfigurationLists.allowedNetworkConnections = securityPolicy.iAllowTheFollowingNetworkConnectionsForTheStudents(); + case COMMAND_EXECUTION -> JavaAspectConfigurationLists.allowedCommandExecutions = securityPolicy.iAllowTheFollowingCommandExecutionsForTheStudents(); + case THREAD_CREATION -> JavaAspectConfigurationLists.allowedThreadCreations = securityPolicy.iAllowTheFollowingThreadCreationsForTheStudents(); + case PACKAGE_IMPORT -> JavaAspectConfigurationLists.allowedPackageImports = securityPolicy.iAllowTheFollowingPackageImportForTheStudents(); + default -> throw new UnsupportedOperationException("Unsupported configuration: " + javaSupportedAspectConfiguration); } } - public void deactivateAspectJConfig () { + // TODO: Why do we even need this??? This should be handled more elegantly. + public static void deactivateAspectJConfig () { JavaAspectConfigurationLists.allowedFileSystemInteractions = null; JavaAspectConfigurationLists.allowedNetworkConnections = null; JavaAspectConfigurationLists.allowedCommandExecutions = null; diff --git a/src/main/resources/archunit/files/java/methods/file-system-access-methods.txt b/src/main/resources/archunit/files/java/methods/file-system-access-methods.txt index b74b36ec..5db98c83 100644 --- a/src/main/resources/archunit/files/java/methods/file-system-access-methods.txt +++ b/src/main/resources/archunit/files/java/methods/file-system-access-methods.txt @@ -1,68 +1,77 @@ -java.io.File.length() -java.io.File.isFile() -java.io.File.lastModified() -java.io.File.isDirectory() -java.io.File.isHidden() +java.awt.Desktop.browse(java.net.URI) +java.awt.Desktop.browseFileDirectory(java.io.File) +java.awt.Desktop.edit(java.io.File) +java.awt.Desktop.mail() +java.awt.Desktop.mail(java.net.URI) +java.awt.Desktop.moveToTrash(java.io.File) +java.awt.Desktop.open(java.io.File) +java.awt.Desktop.openHelpViewer() +java.awt.Desktop.print(java.io.File) +java.awt.Desktop.setOpenFileHandler(java.awt.desktop.OpenFilesHandler) +java.awt.Desktop.setOpenFileHandler(java.awt.desktop.OpenFilesHandler) +java.awt.Desktop.setOpenURIHandler(java.awt.desktop.OpenURIHandler) +java.io.File.canExecute() java.io.File.canRead() +java.io.File.canWrite() +java.io.File.createNewFile() +java.io.File.createTempFile(java.lang.String, java.lang.String, java.io.File) +java.io.File.delete() +java.io.File.deleteOnExit() java.io.File.exists() -java.io.File.getUsableSpace() -java.io.File.getTotalSpace() -java.io.File.normalizedList() java.io.File.getFreeSpace() -java.io.FileInputStream.(java.io.File) -java.io.RandomAccessFile.(java.io.File, java.lang.String, boolean) -sun.nio.fs.WindowsPath.checkRead() -sun.nio.fs.WindowsPath.register(java.nio.file.WatchService, [Ljava.nio.file.WatchEvent$Kind;, [Ljava.nio.file.WatchEvent$Modifier;) -sun.nio.fs.WindowsFileSystem.getRootDirectories() -sun.nio.fs.WindowsChannelFactory.open(java.lang.String, java.lang.String, sun.nio.fs.WindowsChannelFactory$Flags, long) -sun.nio.fs.WindowsAclFileAttributeView.checkAccess(sun.nio.fs.WindowsPath, boolean, boolean) -sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(java.lang.String, boolean, boolean) -sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(java.net.URL) -sun.net.httpserver.simpleserver.FileServerHandler.(java.nio.file.Path, java.util.function.UnaryOperator) -sun.awt.shell.Win32ShellFolderManager2.checkFile(java.io.File, java.lang.SecurityManager) -sun.awt.shell.Win32ShellFolder2.getFileSystemPath(int) -sun.awt.shell.Win32ShellFolder2.listFiles(boolean) -sun.awt.shell.ShellFolderManager.checkFile(java.io.File, java.lang.SecurityManager) -sun.awt.image.FileImageSource.(java.lang.String) -java.util.zip.ZipFile.(java.io.File, int, java.nio.charset.Charset) -java.io.WinNTFileSystem.access(java.lang.String) -java.io.WinNTFileSystem.resolve(java.io.File) -sun.nio.fs.WindowsFileSystemProvider.checkAccess(java.nio.file.Path, [Ljava.nio.file.AccessMode;) -java.io.File.canExecute() -java.io.File.setReadOnly() +java.io.File.getTotalSpace() +java.io.File.getUsableSpace() +java.io.File.isDirectory() +java.io.File.isFile() +java.io.File.isHidden() +java.io.File.lastModified() +java.io.File.length() java.io.File.mkdir() -java.io.File.setWritable(boolean, boolean) -java.io.File.setReadable(boolean, boolean) -java.io.File.createTempFile(java.lang.String, java.lang.String, java.io.File) -java.io.File.canWrite() -java.io.File.setLastModified(long) -java.io.File.createNewFile() +java.io.File.normalizedList() java.io.File.renameTo(java.io.File) java.io.File.renameTo(java.io.File) java.io.File.setExecutable(boolean, boolean) +java.io.File.setLastModified(long) +java.io.File.setReadOnly() +java.io.File.setReadable(boolean, boolean) +java.io.File.setWritable(boolean, boolean) +java.io.FileInputStream.(java.io.File) java.io.FileOutputStream.(java.io.File, boolean) java.io.RandomAccessFile.(java.io.File, java.lang.String, boolean) +java.io.RandomAccessFile.(java.io.File, java.lang.String, boolean) +java.io.UnixFileSystem.checkAccess(java.io.File, int) +java.io.UnixFileSystem.resolve(java.io.File) +java.io.WinNTFileSystem.access(java.lang.String) +java.io.WinNTFileSystem.resolve(java.io.File) java.lang.ProcessImpl.newFileOutputStream(java.io.File, boolean) +java.util.zip.ZipFile.(java.io.File, int, java.nio.charset.Charset) +java.util.zip.ZipFile.(java.io.File, int, java.nio.charset.Charset) +sun.awt.image.FileImageSource.(java.lang.String) +sun.awt.shell.DefaultShellFolder.getFileSystemPath(int) +sun.awt.shell.DefaultShellFolder.listFiles(boolean) +sun.awt.shell.ShellFolderManager.checkFile(java.io.File, java.lang.SecurityManager) +sun.awt.shell.Win32ShellFolder2.getFileSystemPath(int) +sun.awt.shell.Win32ShellFolder2.listFiles(boolean) +sun.awt.shell.Win32ShellFolderManager2.checkFile(java.io.File, java.lang.SecurityManager) +sun.net.httpserver.simpleserver.FileServerHandler.(java.nio.file.Path, java.util.function.UnaryOperator) +sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(java.net.URL) sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(java.lang.String, boolean, boolean) +sun.nio.fs.AbstractUserDefinedFileAttributeView.checkAccess(java.lang.String, boolean, boolean) +sun.nio.fs.UnixChannelFactory.open(int, sun.nio.fs.UnixPath, java.lang.String, sun.nio.fs.UnixChannelFactory$Flags, int) +sun.nio.fs.UnixFileSystem.getRootDirectories() +sun.nio.fs.UnixFileSystemProvider.readSymbolicLink(java.nio.file.Path) +sun.nio.fs.UnixPath.checkDelete() +sun.nio.fs.UnixPath.checkRead() +sun.nio.fs.UnixPath.checkWrite() +sun.nio.fs.UnixPath.register(java.nio.file.WatchService, [Ljava.nio.file.WatchEvent$Kind;, [Ljava.nio.file.WatchEvent$Modifier;) sun.nio.fs.WindowsAclFileAttributeView.checkAccess(sun.nio.fs.WindowsPath, boolean, boolean) sun.nio.fs.WindowsChannelFactory.open(java.lang.String, java.lang.String, sun.nio.fs.WindowsChannelFactory$Flags, long) -sun.nio.fs.WindowsPath.checkWrite() -sun.print.Win32PrintJob.getAttributeValues(javax.print.DocFlavor) -java.awt.Desktop.moveToTrash(java.io.File) -java.io.File.delete() -java.io.File.deleteOnExit() -java.util.zip.ZipFile.(java.io.File, int, java.nio.charset.Charset) -sun.nio.fs.WindowsChannelFactory.open(java.lang.String, java.lang.String, sun.nio.fs.WindowsChannelFactory$Flags, long) +sun.nio.fs.WindowsFileSystem.getRootDirectories() +sun.nio.fs.WindowsFileSystemProvider.checkAccess(java.nio.file.Path, [Ljava.nio.file.AccessMode;) +sun.nio.fs.WindowsFileSystemProvider.readSymbolicLink(java.nio.file.Path) sun.nio.fs.WindowsPath.checkDelete() -java.awt.Desktop.edit(java.io.File) -java.awt.Desktop.browseFileDirectory(java.io.File) -java.awt.Desktop.print(java.io.File) -java.awt.Desktop.mail(java.net.URI) -java.awt.Desktop.openHelpViewer() -java.awt.Desktop.setOpenFileHandler(java.awt.desktop.OpenFilesHandler) -java.awt.Desktop.open(java.io.File) -java.awt.Desktop.setOpenURIHandler(java.awt.desktop.OpenURIHandler) -java.awt.Desktop.mail() -java.awt.Desktop.browse(java.net.URI) -java.awt.Desktop.setOpenFileHandler(java.awt.desktop.OpenFilesHandler) -sun.nio.fs.WindowsFileSystemProvider.readSymbolicLink(java.nio.file.Path) \ No newline at end of file +sun.nio.fs.WindowsPath.checkRead() +sun.nio.fs.WindowsPath.checkWrite() +sun.nio.fs.WindowsPath.register(java.nio.file.WatchService, [Ljava.nio.file.WatchEvent$Kind;, [Ljava.nio.file.WatchEvent$Modifier;) +sun.print.UnixPrintJob.getAttributeValues(javax.print.DocFlavor) +sun.print.Win32PrintJob.getAttributeValues(javax.print.DocFlavor) \ No newline at end of file