Skip to content

Commit cb8a82e

Browse files
committed
8272317: jstatd has dependency on Security Manager which needs to be removed
Reviewed-by: cjplummer, rriggs
1 parent 6de90ad commit cb8a82e

File tree

4 files changed

+14
-25
lines changed

4 files changed

+14
-25
lines changed

make/modules/jdk.jstatd/Launcher.gmk

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -27,5 +27,4 @@ include LauncherCommon.gmk
2727

2828
$(eval $(call SetupBuildLauncher, jstatd, \
2929
MAIN_CLASS := sun.tools.jstatd.Jstatd, \
30-
JAVA_ARGS := -Djava.security.manager=allow, \
3130
))

src/jdk.jstatd/share/classes/sun/tools/jstatd/Jstatd.java

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
2525

2626
package sun.tools.jstatd;
2727

28+
import java.io.ObjectInputFilter;
2829
import java.rmi.*;
2930
import java.rmi.server.*;
3031
import java.rmi.registry.Registry;
@@ -47,6 +48,8 @@ public class Jstatd {
4748
private static boolean startRegistry = true;
4849
private static RemoteHost remoteHost;
4950

51+
private static final String rmiFilterPattern = "sun.jvmstat.monitor.remote.RemoteVm;com.sun.proxy.jdk.proxy*;java.lang.reflect.Proxy;java.rmi.server.RemoteObjectInvocationHandler;java.rmi.server.RemoteObject;!*";
52+
5053
private static void printUsage() {
5154
System.err.println("usage: jstatd [-nr] [-p port] [-r rmiport] [-n rminame]\n" +
5255
" jstatd -?|-h|--help");
@@ -72,7 +75,6 @@ static void bind(String name, RemoteHost remoteHost)
7275
}
7376
}
7477

75-
@SuppressWarnings({"removal","deprecation"}) // Use of RMISecurityManager
7678
public static void main(String[] args) {
7779
String rminame = null;
7880
int rmiPort = 0;
@@ -132,10 +134,6 @@ public static void main(String[] args) {
132134
System.exit(1);
133135
}
134136

135-
if (System.getSecurityManager() == null) {
136-
System.setSecurityManager(new RMISecurityManager());
137-
}
138-
139137
StringBuilder name = new StringBuilder();
140138

141139
if (port >= 0) {
@@ -149,11 +147,10 @@ public static void main(String[] args) {
149147
name.append("/").append(rminame);
150148

151149
try {
152-
// use 1.5.0 dynamically generated subs.
153-
System.setProperty("java.rmi.server.ignoreSubClasses", "true");
154150
remoteHost = new RemoteHostImpl(rmiPort);
151+
ObjectInputFilter filter = ObjectInputFilter.Config.createFilter(rmiFilterPattern);
155152
RemoteHost stub = (RemoteHost) UnicastRemoteObject.exportObject(
156-
remoteHost, rmiPort);
153+
remoteHost, rmiPort, filter);
157154
bind(name.toString(), stub);
158155
System.out.println("jstatd started (bound to " + name.toString() + ")");
159156
System.out.flush();

test/jdk/sun/tools/jstatd/JstatdTest.java

+7-11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@
4343
* <pre>
4444
* {@code
4545
* // start jstatd process
46-
* jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy
46+
* jstatd -J-XX:+UsePerfData
4747
*
4848
* // run jps and verify its output
4949
* jps -J-XX:+UsePerfData hostname
@@ -244,20 +244,16 @@ private void cleanUpThread(ProcessThread thread) throws Throwable {
244244
/**
245245
* Depending on test settings command line can look like:
246246
*
247-
* jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy
248-
* jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy -p port
249-
* jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy -p port -r rmiport
250-
* jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy -n serverName
251-
* jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy -p port -n serverName
247+
* jstatd -J-XX:+UsePerfData
248+
* jstatd -J-XX:+UsePerfData -p port
249+
* jstatd -J-XX:+UsePerfData -p port -r rmiport
250+
* jstatd -J-XX:+UsePerfData -n serverName
251+
* jstatd -J-XX:+UsePerfData -p port -n serverName
252252
*/
253253
private String[] getJstatdCmd() throws Exception {
254254
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstatd");
255255
launcher.addVMArg("-XX:+UsePerfData");
256256
String testSrc = System.getProperty("test.src");
257-
File policy = new File(testSrc, "all.policy");
258-
assertTrue(policy.exists() && policy.isFile(),
259-
"Security policy " + policy.getAbsolutePath() + " does not exist or not a file");
260-
launcher.addVMArg("-Djava.security.policy=" + policy.getAbsolutePath());
261257
if (port != null) {
262258
addToolArg(launcher,"-p", port);
263259
}

test/jdk/sun/tools/jstatd/all.policy

-3
This file was deleted.

0 commit comments

Comments
 (0)