Autopsy  4.14.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
PathValidator.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2013-2018 Basis Technology Corp.
5  * Contact: carrier <at> sleuthkit <dot> org
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 package org.sleuthkit.autopsy.coreutils;
20 
21 import java.util.regex.Matcher;
22 import java.util.regex.Pattern;
25 
30 public final class PathValidator {
31 
32  private static final Pattern driveLetterPattern = Pattern.compile("^[Cc]:.*$");
33  private static final Pattern unixMediaDrivePattern = Pattern.compile("^\\/(media|mnt)\\/.*$");
34 
43  public static boolean isValidForMultiUserCase(String path, Case.CaseType caseType) {
44 
45  if (caseType == Case.CaseType.MULTI_USER_CASE) {
46  // check that path is not on "C:" drive
47  if (pathOnCDrive(path)) {
48  return false;
49  }
50  } else {
51  // single user case - no validation needed
52  }
53 
54  return true;
55  }
56 
57  public static boolean isValidForRunningOnTarget(String path) {
58  if (checkForLiveAutopsy()) {
59  if (PlatformUtil.isWindowsOS()) {
60  if (pathOnCDrive(path)) {
61  return false;
62  }
63  } else if (System.getProperty("os.name").toLowerCase().contains("nux") && !pathIsMedia(path)) {
64  return false;
65  }
66  }
67  return true;
68  }
69 
75  private static boolean checkForLiveAutopsy() {
77  }
78 
86  private static boolean pathIsMedia(String filePath) {
87  Matcher matcher = unixMediaDrivePattern.matcher(filePath);
88  return matcher.find();
89  }
90 
98  private static boolean pathOnCDrive(String filePath) {
99  Matcher m = driveLetterPattern.matcher(filePath);
100  return m.find();
101  }
102 
114  @Deprecated
115  public static boolean isValid(String path, Case.CaseType caseType) {
116  return isValidForMultiUserCase(path, caseType);
117  }
118 }
static boolean isValidForRunningOnTarget(String path)
static boolean isValidForMultiUserCase(String path, Case.CaseType caseType)
static boolean isValid(String path, Case.CaseType caseType)
static boolean pathOnCDrive(String filePath)
static boolean pathIsMedia(String filePath)
static synchronized boolean isRunningInTarget()

Copyright © 2012-2020 Basis Technology. Generated on: Wed Apr 8 2020
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.