8353001: Remove leftover Security Manager parsing code in sun.security.util.Debug

Reviewed-by: mullan
This commit is contained in:
Koushik Thirupattur 2025-05-06 18:10:46 +00:00 committed by Sean Mullan
parent 08dd4a75c5
commit 5d17a28c4e
2 changed files with 1 additions and 125 deletions

View File

@ -31,8 +31,6 @@ import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.HexFormat;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.Locale;
/**
@ -65,7 +63,7 @@ public class Debug {
}
if (args != null) {
args = marshal(args);
args = args.toLowerCase(Locale.ENGLISH);
if (args.equals("help")) {
Help();
} else if (args.contains("all")) {
@ -349,69 +347,6 @@ public class Debug {
return sb.toString();
}
/**
* change a string into lower case except permission classes and URLs.
*/
private static String marshal(String args) {
if (args != null) {
StringBuilder target = new StringBuilder();
StringBuilder source = new StringBuilder(args);
// obtain the "permission=<classname>" options
// the syntax of classname: IDENTIFIER.IDENTIFIER
// the regular express to match a class name:
// "[a-zA-Z_$][a-zA-Z0-9_$]*([.][a-zA-Z_$][a-zA-Z0-9_$]*)*"
String keyReg = "[Pp][Ee][Rr][Mm][Ii][Ss][Ss][Ii][Oo][Nn]=";
String keyStr = "permission=";
String reg = keyReg +
"[a-zA-Z_$][a-zA-Z0-9_$]*([.][a-zA-Z_$][a-zA-Z0-9_$]*)*";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(source);
StringBuilder left = new StringBuilder();
while (matcher.find()) {
String matched = matcher.group();
target.append(matched.replaceFirst(keyReg, keyStr));
target.append(" ");
// delete the matched sequence
matcher.appendReplacement(left, "");
}
matcher.appendTail(left);
source = left;
// obtain the "codebase=<URL>" options
// the syntax of URL is too flexible, and here assumes that the
// URL contains no space, comma(','), and semicolon(';'). That
// also means those characters also could be used as separator
// after codebase option.
// However, the assumption is incorrect in some special situation
// when the URL contains comma or semicolon
keyReg = "[Cc][Oo][Dd][Ee][Bb][Aa][Ss][Ee]=";
keyStr = "codebase=";
reg = keyReg + "[^, ;]*";
pattern = Pattern.compile(reg);
matcher = pattern.matcher(source);
left = new StringBuilder();
while (matcher.find()) {
String matched = matcher.group();
target.append(matched.replaceFirst(keyReg, keyStr));
target.append(" ");
// delete the matched sequence
matcher.appendReplacement(left, "");
}
matcher.appendTail(left);
source = left;
// convert the rest to lower-case characters
target.append(source.toString().toLowerCase(Locale.ENGLISH));
return target.toString();
}
return null;
}
public static String toString(byte[] b) {
if (b == null) {
return "(null)";

View File

@ -1,59 +0,0 @@
/*
* Copyright (c) 2006, 2007, 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.
*/
/*
* @test 1.1, 06/11/07
* @author Xuelei Fan
* @bug 6466247
* @summary java.security.debug permission=<classname> and codebase=<URL>
* options do not work
* @modules java.base/sun.security.util
* @run main/othervm -Djava.security.debug="stacknothing--=-30logincontextacCess:stack-domain,combiner;access:fAilure-jarpermission=sun.dummy.DummyPermission;peRmiSsion=sun.Dummy.DummyPermission2=permission=sun.dummy.DummyPermission3:codEbAse=/dir1/DIR2/Dir3/File.java,codebase=http://www.sun.com/search?q=SunMicro,codEbAse=/dir1/DIR2/Dir3/File.java;coDebase=www.sun.com;codebase=file:///C:/temp/foo%20more/a.txt" MultiOptions
*/
import sun.security.util.Debug;
public class MultiOptions
{
public static void main(String args[]) throws Exception {
if (!Debug.isOn("access") ||
!Debug.isOn("stack") ||
!Debug.isOn("logincontext") ||
!Debug.isOn("domain") ||
!Debug.isOn("combiner") ||
!Debug.isOn("failure") ||
!Debug.isOn("jar") ||
!Debug.isOn("permission=sun.dummy.DummyPermission") ||
Debug.isOn("permission=sun.dummy.dummypermission") ||
!Debug.isOn("permission=sun.Dummy.DummyPermission2") ||
!Debug.isOn("permission=sun.dummy.DummyPermission3") ||
!Debug.isOn("codebase=/dir1/DIR2/Dir3/File.java") ||
Debug.isOn("codebase=/dir1/dir2/dir3/file.java") ||
!Debug.isOn("codebase=www.sun.com") ||
!Debug.isOn("codebase=file:///C:/temp/foo%20more/a.txt") ||
!Debug.isOn("codebase=http://www.sun.com/search?q=SunMicro") ) {
throw new Exception("sun.security.Debug failed to parse options");
}
}
}