Autopsy 4.22.1
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 */
19package org.sleuthkit.autopsy.coreutils;
20
21import java.util.regex.Matcher;
22import java.util.regex.Pattern;
23import org.sleuthkit.autopsy.casemodule.Case;
24import org.sleuthkit.autopsy.core.RuntimeProperties;
25
30public 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()) {
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 synchronized boolean isRunningInTarget()
static boolean isValid(String path, Case.CaseType caseType)
static boolean pathIsMedia(String filePath)
static boolean isValidForMultiUserCase(String path, Case.CaseType caseType)
static boolean isValidForRunningOnTarget(String path)
static boolean pathOnCDrive(String filePath)
static boolean isValidForCaseType(String path, Case.CaseType caseType)
synchronized static boolean isUNC(Path inputPath)

Copyright © 2012-2024 Sleuth Kit Labs. Generated on:
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.