mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-17 17:07:53 +00:00
8353001: Remove leftover Security Manager parsing code in sun.security.util.Debug
Reviewed-by: mullan
This commit is contained in:
parent
08dd4a75c5
commit
5d17a28c4e
@ -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)";
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user