/* * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
// delete the master conf file
Files.delete(Path.of(copyJdkDir.toString(), "conf", "security","java.security"));
// launch JDK without java.security file being present or specified
exerciseSecurity(1, "Error loading java.security file",
copiedJava.toString(), "-cp", System.getProperty("test.classes"), "-Djava.security.debug=all", "-Djavax.net.debug=all", "ConfigFileTest", "runner");
// test the override functionality also. Should not be allowed since // "security.overridePropertiesFile=true" Security property is missing.
exerciseSecurity(1, "Error loading java.security file",
copiedJava.toString(), "-cp", System.getProperty("test.classes"), "-Djava.security.debug=all", "-Djavax.net.debug=all", "-Djava.security.properties==file:///" + extraPropsFile, "ConfigFileTest", "runner");
if (!overrideDetected) { thrownew RuntimeException("Override scenario not seen");
}
}
}
privatestaticvoid exerciseSecurity(int exitCode, String output, String... args) throws Exception {
ProcessBuilder process = new ProcessBuilder(args);
OutputAnalyzer oa = ProcessTools.executeProcess(process);
oa.shouldHaveExitValue(exitCode)
.shouldContain(output);
// extra checks on debug output if (exitCode != 1) { if (oa.getStderr().contains("overriding other security properties files!")) {
overrideDetected = true; // master file is not in use - only provider properties are set in custom file
oa.shouldContain("security.provider.2=SunRsaSign")
.shouldNotContain(EXPECTED_DEBUG_OUTPUT)
.shouldNotContain(UNEXPECTED_DEBUG_OUTPUT);
} else {
oa.shouldContain(EXPECTED_DEBUG_OUTPUT)
.shouldNotContain(UNEXPECTED_DEBUG_OUTPUT);
}
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.