mirror of
https://github.com/octoleo/plantuml.git
synced 2024-06-03 09:00:48 +00:00
57 lines
1.4 KiB
Java
57 lines
1.4 KiB
Java
package net.sourceforge.plantuml.security;
|
|
|
|
import org.junit.jupiter.api.AfterAll;
|
|
import org.junit.jupiter.api.BeforeAll;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.io.TempDir;
|
|
|
|
import java.io.File;
|
|
import java.nio.file.Path;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
/**
|
|
* Tests some features of {@link SFile}.
|
|
*/
|
|
class SFileTest {
|
|
|
|
private static String oldSecurity;
|
|
|
|
@TempDir
|
|
Path tempDir;
|
|
|
|
@BeforeAll
|
|
static void storeSecurityProperty() {
|
|
oldSecurity = System.getProperty(SecurityUtils.PATHS_SECURITY);
|
|
}
|
|
|
|
@AfterAll
|
|
static void loadSecurityProperty() {
|
|
if (oldSecurity != null) {
|
|
System.setProperty(SecurityUtils.PATHS_SECURITY, oldSecurity);
|
|
} else {
|
|
System.getProperties().remove(SecurityUtils.PATHS_SECURITY);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Checks, if we cannot see a secret file in a security folder.
|
|
*
|
|
* @throws Exception Hopefully not
|
|
*/
|
|
@Test
|
|
void testFileDenied() throws Exception {
|
|
File secureFolder = tempDir.toFile();
|
|
System.setProperty(SecurityUtils.PATHS_SECURITY, secureFolder.getCanonicalPath());
|
|
|
|
// A file is needed:
|
|
File secretFile = File.createTempFile("user", ".credentials", secureFolder);
|
|
|
|
assertThat(secretFile).describedAs("File should be visible with standard java.io.File").exists();
|
|
|
|
SFile file = new SFile(secretFile.getAbsolutePath());
|
|
|
|
assertThat(file.exists()).describedAs("File should be invisible for SFile").isFalse();
|
|
}
|
|
}
|