Autopsy  4.20.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-2020 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 isValidForCaseType(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  // check that path is not a UNC path. Solr 8 does not allow UNC paths for indexes.
52  if (UNCPathUtilities.isUNC(path)) {
53  return false;
54  }
55  }
56 
57  return true;
58  }
59 
60  public static boolean isValidForRunningOnTarget(String path) {
61  if (checkForLiveAutopsy()) {
62  if (PlatformUtil.isWindowsOS()) {
63  if (pathOnCDrive(path)) {
64  return false;
65  }
66  } else if (System.getProperty("os.name").toLowerCase().contains("nux") && !pathIsMedia(path)) {
67  return false;
68  }
69  }
70  return true;
71  }
72 
78  private static boolean checkForLiveAutopsy() {
80  }
81 
89  private static boolean pathIsMedia(String filePath) {
90  Matcher matcher = unixMediaDrivePattern.matcher(filePath);
91  return matcher.find();
92  }
93 
101  private static boolean pathOnCDrive(String filePath) {
102  Matcher m = driveLetterPattern.matcher(filePath);
103  return m.find();
104  }
105 
117  @Deprecated
118  public static boolean isValid(String path, Case.CaseType caseType) {
119  return isValidForCaseType(path, caseType);
120  }
121 
130  @Deprecated
131  public static boolean isValidForMultiUserCase(String path, Case.CaseType caseType) {
132  return isValidForCaseType(path, caseType);
133  }
134 }
static boolean isValidForRunningOnTarget(String path)
static boolean isValidForMultiUserCase(String path, Case.CaseType caseType)
synchronized static boolean isUNC(Path inputPath)
static boolean isValidForCaseType(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-2022 Basis Technology. Generated on: Tue Aug 1 2023
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.