1
1
/*
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.
3
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
4
*
5
5
* This code is free software; you can redistribute it and/or modify it
25
25
26
26
package sun .tools .jstatd ;
27
27
28
+ import java .io .ObjectInputFilter ;
28
29
import java .rmi .*;
29
30
import java .rmi .server .*;
30
31
import java .rmi .registry .Registry ;
@@ -47,6 +48,8 @@ public class Jstatd {
47
48
private static boolean startRegistry = true ;
48
49
private static RemoteHost remoteHost ;
49
50
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
+
50
53
private static void printUsage () {
51
54
System .err .println ("usage: jstatd [-nr] [-p port] [-r rmiport] [-n rminame]\n " +
52
55
" jstatd -?|-h|--help" );
@@ -72,7 +75,6 @@ static void bind(String name, RemoteHost remoteHost)
72
75
}
73
76
}
74
77
75
- @ SuppressWarnings ({"removal" ,"deprecation" }) // Use of RMISecurityManager
76
78
public static void main (String [] args ) {
77
79
String rminame = null ;
78
80
int rmiPort = 0 ;
@@ -132,10 +134,6 @@ public static void main(String[] args) {
132
134
System .exit (1 );
133
135
}
134
136
135
- if (System .getSecurityManager () == null ) {
136
- System .setSecurityManager (new RMISecurityManager ());
137
- }
138
-
139
137
StringBuilder name = new StringBuilder ();
140
138
141
139
if (port >= 0 ) {
@@ -149,11 +147,10 @@ public static void main(String[] args) {
149
147
name .append ("/" ).append (rminame );
150
148
151
149
try {
152
- // use 1.5.0 dynamically generated subs.
153
- System .setProperty ("java.rmi.server.ignoreSubClasses" , "true" );
154
150
remoteHost = new RemoteHostImpl (rmiPort );
151
+ ObjectInputFilter filter = ObjectInputFilter .Config .createFilter (rmiFilterPattern );
155
152
RemoteHost stub = (RemoteHost ) UnicastRemoteObject .exportObject (
156
- remoteHost , rmiPort );
153
+ remoteHost , rmiPort , filter );
157
154
bind (name .toString (), stub );
158
155
System .out .println ("jstatd started (bound to " + name .toString () + ")" );
159
156
System .out .flush ();
0 commit comments